1. 总体架构与准备
目标:降低网络层与应用层攻击影响。
小节:①清点VPS公网IP、带宽上限与服务端口;②确认主机操作系统(Ubuntu/CentOS)与虚拟化类型;③准备远程控制渠道(备用管理IP或控制台)。
2. 评估与分层防护策略
步骤:①划分防护层:边缘(CDN/清洗)、网络(上游流量过滤)、主机(内核与防火墙)、应用(WAF/限流);②确定关键资产与优先端口(如80/443/22);③制定RTO/RPO与告警阈值。
3. 接入边缘清洗与Anycast/CDN
实操:①选择供应商(Cloudflare、Akamai、阿里云/腾讯云抗D等);②在DNS层将域名指向CDN提供的CNAME或Anycast IP;③启用“仅CDN访问源站”策略,设置真实IP回传(X-Forwarded-For或Proxy Protocol);④验证:curl --head 检查返回头部是否是CDN。
4. 上游与BGP/流量清洗合作
操作要点:①与VPS提供商沟通是否支持黑洞路由(null-route)与流量清洗服务;②在遭受大流量时请求上游启用清洗或限速;③保留联络链与SLA文档,预置触发流程与信息模板。
5. Linux内核与网络栈优化(sysctl)
推荐修改(以root执行并写入/etc/sysctl.conf):
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_max_syn_backlog=4096
sysctl -w net.core.somaxconn=1024
sysctl -w net.netfilter.nf_conntrack_max=262144
说明:保存后执行 sysctl -p,使调整生效。
6. 主机防火墙:iptables/nftables 实战规则
基本策略:默认DROP,允许必要端口。示例iptables流程:
iptables -F; iptables -P INPUT DROP; iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT;
允许SSH并限速:iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name SSH;
iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 6 --name SSH -j DROP;
对HTTP限流(基于连接/速率)使用connlimit与limit模块。
7. 反向代理与Nginx/Haproxy限流配置
Nginx示例(nginx.conf):
http { limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 10; limit_req_zone $binary_remote_addr zone=req:10m rate=10r/s; }
在server中应用limit_conn/limit_req来防止短时间连接风暴;启用real_ip模块配合CDN或代理协议。
8. WAF与应用层防护部署
建议:部署WAF(ModSecurity/OpenResty+Lua或托管WAF),启用已知攻击签名、URL白名单与POST大小限制;对登录/接口添加验证码或速率限制;对API使用token或签名验证以减少滥用风险。
9. 监控、告警与日志落地
步骤:①部署基础监控(Prometheus node_exporter + Grafana 或 Zabbix);②流量监控(vnstat/ifstat 或上游提供的流量图);③设置告警阈值(入站带宽>70%触发);④启用日志轮转并把访问日志备份到异地。
10. 应急演练与自动化应对
实操流程:①建立SOP:发现-确认-通知-缓解(启用WAF、切换到CDN清洗、上游黑洞);②脚本化常用操作(调用提供商API切换IP/黑洞、修改DNS TTL),并保存审批记录;③定期演练并记录时间线。
11. 运维注意事项与合规
要点:①避免在高峰时改动路由或大量重启服务;②记录变更并保留备份配置;③确保对外声明渠道(状态页)与客户沟通模板,遵守当地法律与服务商条款。
12. 常见问题问答 1
问:
香港VPS在遭受DDoS时首要哪步?
答:第一步是确认是否为DDoS(流量突增或连接异常),立刻切换到CDN/清洗服务并通知上游,随后按SOP逐步执行主机端限流与黑名单策略。
13. 常见问题问答 2
问:如何在不影响正常用户的情况下限流?
答:使用基于连接数与速率的限流(如nginx limit_req/limit_conn、iptables connlimit)并结合白名单(关键IP或ASN)与验证码验证,以精确控制误伤。
14. 常见问题问答 3
问:防御体系如何定期检验有效性?
答:进行可控的压力测试(通过专业合规的测试服务)、定期演练SOP、检查告警触发与自动化脚本,并与上游供应商进行联调以确保清洗通道可用。
来源:构建多层次ddos香港vps防护体系的技术与部署要点