1.1 监测规则:确保Prometheus/Cloud监控、流量阈值(例如每秒连接数、带宽峰值)提前配置。设置告警:入站带宽超过正常峰值3倍或SYN/NEW连接速率骤增触发告警。
1.2 快速确认命令:ssh到边界设备或云VPC采样流量:sudo tcpdump -n -i eth0 'tcp' -c 200;查看连接表:ss -s;查看流量top:iftop或nload。用这些能快速判断是L3/L4泛洪还是L7慢速攻击。
2.1 本地防护:在边界或负载均衡器上先开启IP黑名单/限速,示例iptables:sudo ipset create ddos hash:ip -exist;sudo ipset add ddos 1.2.3.4;sudo iptables -I INPUT -m set --match-set ddos src -j DROP。
2.2 限速举例:nginx使用limit_conn和limit_req;HAProxy use stick-table + http-request deny if rate超限。先用保守策略避免误杀正常流量。
3.1 导出pcap样本:sudo tcpdump -nn -s 0 -w /tmp/attack.pcap 'host x.x.x.x' -c 100000。不要在高负载时长时间运行,采样100-200k包足够。
3.2 记录元数据:时间段、源IP分布、协议分布(UDP/TCP/ICMP)、端口目标、SYN/ACK比、每秒包率。把pcap与这些指标发给香港高防/清洗服务以便快速建立规则集。
4.1 紧急联络:拨打供应商紧急热线并提供:攻击开始时间、受影响IP/端口、流量峰值、pcap样本和BGP ASN。要求启用Scrubbing或BGP转发。
4.2 BGP/路由操作:如需将流量引到清洗中心,要求对方提供BGP community或指定下一跳。准备好你方Router的权限、联系人以及预先签署的SLA/应急协议。
5.1 网络层(Volumetric):使用流量阈值、最大带宽限制、黑洞/清洗转发。优先对源IP大量重复、无状态UDP/ICMP包采用丢弃或转发到scrubber。
5.2 会话层/应用层:对大量SYN采用SYN Cookie、对HTTP洪水用挑战页(CAPTCHA)、速率限制、连接预热与缓存规则;对慢速POST/PUT尝试增加请求体大小限制。
6.1 精准封堵:使用ipset批量导入恶意IP段;iptables示例脚本:for ip in $(cat bad_ips.txt); do ipset add ddos $ip; done。
6.2 流量整形:在Linux上可用tc做限速与优先级,示例:tc qdisc add dev eth0 root handle 1: htb default 30;tc class add ... 用于保留管理链路带宽。
7.1 Web服务:启用nginx缓存、open_file_cache,设置keepalive_timeout短一些;对动态接口增加验证、令牌或二次验证。
7.2 WAF与规则:启用ModSecurity或云WAF的攻击指纹,写入拦截规则(特征请求头、URI模式、异常User-Agent、速率阈值),并以防阻断误判先observe模式再启用阻断。
8.1 持续监控:观察清洗后真实流量、错误率、正常用户登录率等指标。确认正常业务恢复再逐步关闭严格规则。
8.2 逐步回滚:按顺序解除:先缩小ipset黑名单范围→降低WAF阻断强度→解除BGP转发,期间每一步均需30-60分钟观察。
9.1 日志保全:保留pcap、edge防火墙日志、清洗厂商日志、应用日志至少30天;导出为压缩包并记录时间线。
9.2 复盘要点:分析攻击向量、是否为持续性或周期性攻击、是否存在内部被利用的漏洞,更新runbook并在防护策略中加入新的黑名单与检测规则。
答:当本地带宽接近链路饱和(例如>80%且无法通过本地限速缓解),或攻击是大流量泛洪(>Gbps级别)且影响业务可用性时,立即启动BGP/流量转发到scrubbing center;小规模SYN/应用攻击可先尝试本地规则抑制。
答:建立回滚命令清单,比如快速清空临时ipset、撤销iptables规则、关闭WAF阻断规则;每一步加入观察间隔(5-10分钟)。建议先把防护策略切到observe模式,再完全回滚,确保不会再触发大流量。
答:提前准备好应急联系人、BGP授权和SLA、常用脚本(ipset导入、pcap采样脚本、tc速率脚本)、演练流程和监控告警阈值。与香港高防供应商定期演练并保持样本交换通道,能把响应时间从小时减少到分钟级。