1.
了解威胁来源:主要包括DDoS攻击、暴力破解、Web应用漏洞利用、后门植入与供应链风险等。
机房特性差异:台湾机房常见带宽计费、骨干互联优点与本地法规、ISP清洗能力差异需要评估。
服务边界定义:明确VPS、域名解析、CDN和负载均衡器各自的安全责任与防护边界。
优先级划分:按影响面(流量、业务可用性、数据泄露)给出加固优先级,优先保障可用性与访问控制。
合规与备份:兼顾数据备份加密、日志保留策略与地方法律合规要求,例如备份异地存放与保留周期。
度量成功标准:制定SLA与MTTR目标(例如DDoS恢复≤15分钟、入侵检测误报率≤2%)。
2.
最小化镜像:选择精简系统镜像并移除不必要软件,示例:Ubuntu 20.04 LTS 精简镜像。
账号与权限:禁用root远程登录,创建sudo用户并限制sudo命令,示例 /etc/sudoers.d/ 配置。
强口令与二步验证:密码长度≥12位并启用公钥认证与TOTP MFA(例如Google Authenticator)。
SSH端口与登录限制:修改默认22端口、启用Fail2ban限速策略,配置示例见下方代码段。
系统补丁与自动更新:配置unattended-upgrades或定期Patch计划,并对内核/组件打安全补丁。
账户审计与删除:定期审计/禁用长期未使用账户与API密钥,保留变更日志以便追溯。
3.
使用CDN前置:对静态资源启用CDN(例如Cloudflare/阿里云CDN)可减少源站流量暴露。
带宽与清洗能力评估:选择台湾机房或上游ISP时评估DDoS清洗能力,例如可清洗峰值100Gbps为佳。
流量过滤与黑白名单:在VPS内外结合iptables/nftables + 云端ACL做源IP白名单与地理限制。
速率限制与连接追踪:配置conntrack和rate-limit策略,防止PPS洪泛性攻击。
分流与冗余:采用多机房/多线BGP或负载均衡器做流量分散,减少单点带宽压力。
自动化规则触发:结合监控(例如Prometheus+Alertmanager)自动切换到清洗线路或启用更严格ACL。
4.
禁用密码登录:仅允许基于公钥的SSH认证,示例 /etc/ssh/sshd_config: PasswordAuthentication no。
限制来源IP:对管理端口开启IP白名单或VPN接入,例如仅允许公司MPLS或JumpHost访问。
使用跳板机与堡垒机:对操作进行集中审计与会话录像,减少直接对VPS的远程管理暴露。
API密钥管理:使用最小权限原则,定期轮换密钥并记录使用日志。
多因子认证:对控制面板与域名注册商启用MFA,防止社工或凭证泄露带来高风险。
示例SSH简单策略:
iptables -A INPUT -p tcp --dport 2222 -s 203.0.113.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 2222 -j DROP # 将22改为2222并禁止root登录
5.
最小权限文件夹:将网站目录设为非root用户并严格设置755/644权限。
WAF与规则集:部署Web应用防火墙(ModSecurity或云WAF)并针对常见漏洞(OWASP Top10)配置规则。
自动签名与镜像校验:对上传文件做hash校验并限制可执行权限,避免后门脚本执行。
数据库加固:数据库不对外网暴露,启用强口令、连接白名单及定期备份(示例:MySQL 8.0 自动备份策略)。
依赖组件管理:定期扫描依赖漏洞(比如使用依赖扫描工具Snyk或依赖清单)并及时升级。
日志与审计:启用访问日志、错误日志并将日志推送到集中日志系统(ELK/Graylog)做长期分析。
6.
基础监控项:CPU、内存、磁盘IO、网络带宽、连接数与HTTP 5xx等为关键指标。
流量异常检测:监控PPS与流量峰值,设置阈值(例如流量相比基线增幅>300%触发告警)。
事件响应流程:制定IR流程包含识别、隔离、根因、修复与回顾,并明确通信通道与负责人。
备份与恢复演练:定期进行备份恢复演练,目标恢复时间MTTR与恢复点RPO需要量化。
保留证据:入侵发生时保存内存/磁盘镜像与流量包作为取证资料,避免覆盖日志。
示例告警策略:带宽超出基线3倍→自动启用CDN“我在维护”模式并通知运维值班。
7.
案例背景:一家台湾电商在促销期间遭受DDoS,高峰流量达28Gbps、PPS峰值约120k,影响结账服务。
采取措施:立即启用云端清洗(ISP清洗+Cloudflare),在源站启用严格ACL并将非授权流量丢弃。
恢复与改进:服务在12分钟内恢复,事后将带宽升级到1Gbps专线并部署更细化的速率限制规则。
配置示例(VPS规格与策略表):
| 项 | 示例值 |
|---|---|
| 机房 | 台湾(台北) |
| VPS规格 | 4 vCPU / 8 GB RAM / 100 GB NVMe |
| 带宽 | 1 Gbps 专线 / 高峰清洗能力 100 Gbps |
| 防护措施 | CDN+WAF+云端清洗+本地ACL |
| 恢复时间 | 平均MTTR 12 分钟(该案例) |
工具与命令示例:使用nftables简单限制连接数:
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; }
nft add rule inet filter input ct state established,related accept
nft add rule inet filter input tcp dport {80,443} ct count over 2000 drop
总结建议:结合云端与本地防护、定期演练与日志审计是保证台湾机房VPS可用性与安全的关键。