1.
攻击概述与CN2线路特性
① 香港 CN2 线路通常为联通/移动/电信国际优选路径,延迟低但带宽共享风险高。
② 常见攻击类型:UDP/ICMP 放大、SYN Flood、HTTP GET/POST 洪水、慢速连接攻击、反射攻击。
③ 攻击量级示例:常见对香港机房的攻击峰值可达 5-20 Gbps,峰值 PPS(包/秒) 可达 2M+。
④ 对运维影响:带宽耗尽、连接表爆满、业务超时、CDN回源暴露原始IP。
⑤ 建议优先级:监控→黑洞/限速→CDN/WAF→ISP清洗→事后复盘。
2.
预备工作与监控指标
① 必配监控:ifstat/vnstat、ntop、Prometheus + node_exporter、Netdata。
② 关键阈值示例:带宽利用率 70% 触发预警,PPS 超过 200k 触发流控。
③ 抓包与分析:tcpdump -n -s 0 -c 100000 -w /tmp/attack.pcap 'port 80 or port 443'。
④ 标签告警:带宽/连接数/HTTP 5xx 率;建议配置短信/钉钉告警。
⑤ 日志保留:至少保留 7 天 pcap 与 nginx/access 日志,便于事后溯源。
3.
第一线快速缓解(紧急切断与规则)
① 上游黑洞(nullroute):在极端情况下通过 ISP 或 BGP next-hop blackholing 丢弃流量。
② iptables 快速规则示例:iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 500 -j DROP。
③ SYN cookies 启用:sysctl -w net.ipv4.tcp_syncookies=1。
④ 简易速率限制:tc qdisc add dev eth0 root tbf rate 800mbit burst 32kb latency 400ms。
⑤ ACL 阻断策略:优先阻断高 P/S IP、异常国家/地区、已知反射源。
4.
中线策略:应用层防护与CDN接入
① 使用 CDN 层屏蔽源站,所有对外流量由 CDN 缓存或清洗。
② Nginx 限流示例:limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; server { ... limit_req zone=one burst=20 nodelay; }。
③ WAF 规则:启用速率限制、异常 UA 屏蔽、路径白名单、POST 大小限制。
④ 回源白名单:仅允许 CDN 回源 IP 访问源站 80/443。示例 iptables:iptables -A INPUT -p tcp -s CDN_IP -j ACCEPT; iptables -A INPUT -p tcp --dport 80 -j DROP。
⑤ 证书与健康检查:保证 HTTPS 与 CDN/源站的双向健康检查,避免回源因健康检查异常产生额外流量。
5.
深度清洗与与ISP/清洗服务合作
① 当攻击超过本地处理能力(如 > 1Gbps),应联系 ISP 或第三方清洗服务进行 BGP 宣告转发。
② BGP 清洗示例:向 ISP 提供受影响的前缀,临时宣告到清洗平台进行流量剥离。
③ 社区/黑洞策略:通过 BGP community 下发黑洞或清洗策略。
④ 成本与 SLA:商业清洗服务通常按 Gbps 计费,SLA 为分钟级响应。
⑤ 下表为某次实测清洗效果:
| 指标 | 攻击前 | 清洗后 |
| 峰值带宽 | 12 Gbps | 180 Mbps |
| 峰值 PPS | 2.1 Mpps | 40 kpps |
| 访问错误率(5xx) | 65% | 1.2% |
| 平均响应时间 | 1.2 s | 120 ms |
6.
运维自动化与演练
① 建立 Runbook:包含检测阈值、联系人、上游/清洗服务联系方式、临时黑洞操作步骤。
② 自动化脚本示例:使用 fail2ban 或自写脚本按 PPS/异常频率自动下发 iptables/nftables 规则。
③ 演练频率:至少每季度进行一次 DDOS 演练,模拟流量 2-5 Gbps。
④ 恢复流程:攻击结束后要逐步撤销限制,避免误伤正常流量并记录变更。
⑤ 日志与复盘:记录每次事件的时间线、规则变更与效果,形成 SOP 库。
7.
真实案例与服务器配置示例
① 案例概述:某香港 CN2 VPS(公网 /27)在 2025-03-12 遭遇 HTTP+UDP 混合攻击,峰值 9.6 Gbps、1.3Mpps。
② 服务器配置示例:CPU 16 核(Intel Xeon)、内存 64GB、SSD 1TB、网卡 10Gbps、带宽 1Gbps(上行被提升至共享 CN2)。OS Ubuntu 20.04。
③ 处置过程:0-2 分钟内启用 nginx 限流与 iptables SYN 限制;2-8 分钟联系上游进行 BGP 转发到清洗;8-12 分钟清洗平台返还净流量。
④ 命令与配置示例:sysctl -w net.ipv4.tcp_syncookies=1; iptables -A INPUT -p udp -m limit --limit 200/s -j ACCEPT; nginx limit_req_zone 如上。
⑤ 结果与建议:攻击时长 40 分钟,最终用户感知中断 < 5 分钟,清洗后带宽净化至 160-220 Mbps。事后建议:固定回源白名单、开启 CDN 全站代理、与 ISP 签署应急清洗流程。
来源:香港cn2线路服务器被攻击时运维人员必须掌握的缓解技巧