1. 事件背景与目标
说明:目标是通过香港高防机房配合外港清洗(scrubbing)将突发流量从国际链路切走,保护业务可用性。
场景举例:目标IP遭到每秒百万级SYN/UDP/HTTP混合攻击,带宽被耗尽且应用响应超时。
目标输出:在5~15分钟内完成流量引导到清洗中心,保持业务正常,记录取证与复盘。
2. 事前准备(必须做的网络与账号)
步骤:1)准备可下发路由的前缀(/24优先)及授权的BGP ASN;2)与清洗服务商确认清洗节点IP、BGP会话或GRE/VPNTunnel信息;3)备份当前路由与防火墙配置。
账户权限:确保有权在机房路由器或云控制台变更BGP/路由、在服务器上修改内核参数与iptables/nftables。
3. 触发清洗 — 路由引导方式(BGP Anycast / 旁路引流)
步骤详细:A. BGP旁路(推荐):与清洗商建立BGP对等,准备把受保护前缀短时改为通过清洗商宣传。操作:在路由器执行neighbor x.x.x.x remote-as y;announce 你的/24给对方(或允许对方向上游广播你的前缀)。
B. 隧道引流(GRE/VXLAN):在本地路由器或防火墙创建GRE隧道到清洗点:ip tunnel add gre1 mode gre remote
local ttl 255;ip link set gre1 up;ip addr add 10.0.0.1/30 dev gre1;然后把目标流量的路由下一跳改为隧道。适用于没有BGP权限的场景。
4. 服务器端内核与防火墙快速硬化
步骤(可立即执行命令):1)开启SYN cookie:sysctl -w net.ipv4.tcp_syncookies=1;2)调高conntrack:sysctl -w net.netfilter.nf_conntrack_max=2000000;3)降低超时时间:sysctl -w net.ipv4.tcp_fin_timeout=30;4)drop INVALID包并限制新连接速率(iptables示例):iptables -N ddos_protect; iptables -A INPUT -m conntrack --ctstate INVALID -j DROP; iptables -A INPUT -p tcp --syn -m limit --limit 100/s --limit-burst 200 -j ACCEPT;
5)使用ipset批量黑名单:ipset create blacklist hash:net; ipset add blacklist 1.2.3.0/24; iptables -I INPUT -m set --match-set blacklist src -j DROP。
5. 清洗策略与规则配置(与清洗商协同)
清洗需求:明确允许的合法源IP段、应用层白名单(API/登录IP)、协议限速(SYN、UDP、ICMP、HTTP)。
规则示例:对SYN基于速率和源地址散列限速;对UDP基于端口与包长度统计;对HTTP进行URI/Host/Rate/Geo验证并启用JS/challenge验证码。要求清洗商提供按攻击类型和跳数细化的放行规则并导出日志。
6. 监控、告警与切换回滚策略
监控项:带宽(每口/方向)、连接数、每协议流量占比、top源IP、top目标端口、应用错误码。工具:sFlow/NetFlow、Prometheus+Grafana、ELK。
切换策略:①触发条件(如链路饱和或响应超时);②执行流量引导(BGP或隧道);③验证清洗后业务正常再逐步回撤(先逐段收回路由);④若清洗失效,回滚到原路由并触发应急方案。
7. 实战操作流程(从触发到恢复,按分钟级步骤)
0-2分钟:确认攻击类型(tcp/udp/http)、流量规模并截图取证。
2-5分钟:联系清洗商请求开启清洗;若使用BGP,准备在路由器上announce前缀或允许对方announce;若无BGP权限,准备隧道并修改本地路由指向隧道。
5-15分钟:切换完成后观察流量走向是否到达清洗中心并返回;验证业务正常;记录清洗规则与日志。
8. 演练与优化(攻防后复盘)
演练步骤:1)定期(季度)和清洗商进行演练,测试BGP切换和隧道恢复流程;2)在非生产时段模拟不同攻击类型(限流)以验证阈值与规则;3)优化规则库,将误判的IP/ASN加入白名单或黑名单。
复盘要点:攻击源分布、被滥用协议、清洗效果与时延、日志完整性。
9. 合规与取证:日志、抓包、证据保存
保存清洗日志:要求清洗商提供原始pcap下载或至少每5分钟的流量统计;本地保存tcpdump样本:tcpdump -i eth0 -s 0 -w attack_dump.pcap 'host <目标IP>'。
法律合规:根据公司法务要求保存日志期限并记录所有变更(路由更改、时间戳、运维人员、命令历史)。
10. 常见问题问答 1
Q1:外港清洗会导致业务访问延迟显著增加吗?
答:短期内会有少量额外延迟(通常几十到数百毫秒)因为流量绕路到清洗中心并返回,但优质清洗商通过Anycast或多点清洗节点与高速回传链路把延迟最小化。实际操作时可先在非高峰做一次流量切换演练,测量RTT并根据业务选择清洗节点。
11. 常见问题问答 2
Q2:没有BGP权限能否使用外港清洗?
答:可以。替代方案是使用GRE/VXLAN隧道或SD-WAN/云加速方案,把流量本地重定向到清洗商提供的隧道接口。缺点是需要在边界设备做路由调整并确保隧道带宽与稳定性。
12. 常见问题问答 3
Q3:如何判断清洗是否对真正用户产生误伤?
答:通过A/B测试和灰度回切来验证。先把少量流量(或次要服务)切到清洗,观察错误率、用户会话丢失、登录失败率等指标;清洗商也应提供白名单机制和基于签名/地理/速率的细化规则,快速放行误伤流量。
来源:实战案例香港高防服务器外港清洗成功抵御大型DDoS攻击