网站遭遇DDoS攻击后最致命的往往不是带宽被堵死,而是运维团队在头30分钟里做了大量无效操作,导致业务恢复时间从分钟级拖到小时级。止损的核心逻辑只有一条:先保登录入口和核心交易链路,再谈清洗和溯源。不要一上来就重启服务器,更不要急着改DNS,这两件事在攻击流量未识别清楚之前只会扩大故障面。
第一步是确认攻击类型和当前瓶颈点。登录服务器查看连接状态,执行 netstat -an | grep SYN_RECV | wc -l 这类命令,如果SYN_RECV数量异常高,基本可以判断是SYN Flood。如果连接数正常但带宽占满,用iftop或nload看流量来源IP分布,大概率是UDP反射放大或HTTP Flood。判断清楚类型后,才能决定是调内核参数、封IP段还是上流量清洗。很多团队一上来就封IP,结果攻击源是伪造的,封了正常用户还挡不住攻击。
快速启用服务器本地防御参数在等待外部清洗服务生效前,服务器自身的参数调优能扛住一部分攻击。以Linux为例,先打开SYN Cookie机制,这能有效缓解SYN Flood:
sysctl -w net.ipv4.tcp_syncookies=1 sysctl -w net.ipv4.tcp_synack_retries=1 sysctl -w net.ipv4.tcp_max_syn_backlog=4096 sysctl -w net.ipv4.tcp_syn_retries=1
同时降低超时时间,让半连接尽快释放。如果是HTTP Flood,在Nginx层做连接数限制和请求速率限制,比单纯封IP更灵活。配置limit_conn和limit_req模块,针对单一IP限制每秒请求数,超过阈值直接返回444或503。但要注意阈值不能设太低,否则移动大出口IP的用户会集体被误伤。
接入高防IP或清洗服务是止损的关键动作如果攻击流量超过服务器带宽,本地调参已经没有意义,必须立刻把业务入口切到高防IP。切换时不要改域名解析,因为DNS生效慢且缓存时间长,正确做法是在负载均衡层或网关层做流量转发。如果用的是云厂商的负载均衡,直接把后端绑定到高防IP,前端用户无感知。自建机房的话,联系上游运营商做黑洞路由或流量牵引,同时把业务切到备用节点。
这里有一个经常被忽略的点:高防IP上线后,源站IP必须立刻更换或隐藏。攻击者一旦拿到源站真实IP,会绕过清洗直接打源站。检查历史DNS记录、邮件头、证书透明日志,凡是暴露过源站IP的地方都要处理。源站安全组只允许高防节点回源,其他来源全部拒绝。
业务层降级与静态化是保命手段如果攻击目标是动态接口,比如搜索、登录、下单,单纯靠流量清洗可能不够,因为请求本身是合法的,只是频率极高。这时候要果断做业务降级:把搜索接口暂时关闭或换成缓存结果,登录加图形验证码或行为验证,下单接口做排队机制。首页和商品详情页全部静态化推到CDN,动态请求只保留最小集合。CDN边缘节点扛得住大部分静态流量,源站压力会骤降。
很多电商和游戏公司在遭受大流量攻击时,会把整站切成静态公告页,只保留客服入口。这不是技术不行,而是成本最优解。与其让用户看到一堆报错,不如明确告知“系统维护中”,同时后台继续处理核心数据。
利用CDN和边缘计算分散攻击面CDN不仅是加速工具,更是抗DDoS的第一道防线。把域名解析切到CDN后,攻击流量会被分散到各个边缘节点,源站隐藏在CDN后面。选择CDN时要确认其是否支持DDoS防护,以及防护阈值是否覆盖当前攻击规模。部分CDN服务商提供按次计费的清洗服务,攻击结束后可以关闭,成本可控。
边缘计算节点可以做一些简单的限流和过滤逻辑,比如根据User-Agent、Referer、Cookie等字段过滤明显是脚本的请求。在边缘层拦截掉80%的垃圾流量,回源压力就小很多。但要注意,边缘层过滤规则不能太复杂,否则影响正常用户访问速度。
日志分析与攻击溯源要放在事后做攻击进行中不要花大量时间分析日志,那是恢复之后的事。恢复访问后,把攻击期间的访问日志、流量采样数据、防火墙拦截记录全部导出来,分析攻击特征:攻击类型、峰值带宽、包速率、来源IP分布、攻击时长、是否混合攻击。这些数据对后续防护策略调整和向运营商或执法部门报案都有用。
如果攻击持续且规模巨大,保留证据的同时联系云厂商安全团队或专业安全公司协助分析。攻击溯源在技术层面往往只能追到被控制的肉鸡或反射器,真正的攻击者很难定位,但攻击特征和手法可以用于后续的威胁情报匹配。
建立应急响应预案比临时救火更重要一次DDoS攻击恢复后,团队必须复盘并形成文档:攻击发生时间、发现方式、响应耗时、止损动作、恢复时间、损失评估、改进项。把这些内容固化成应急预案,明确每个角色的职责和操作步骤。下次再遇到攻击,直接按预案执行,而不是在群里问“现在怎么办”。
预案里要包含联系人清单:云厂商技术支持、高防服务商、CDN服务商、机房运维、业务负责人。还要准备好备用资源:备用服务器、备用IP段、备用域名解析方案。定期做攻击演练,模拟不同类型和规模的攻击,检验预案的有效性。很多公司第一次被打时手忙脚乱,就是因为预案只停留在纸面上。
止损的本质是缩短不可用时间,而不是追求完美防御。在攻击面前,快速恢复业务比什么都重要。先让用户能访问,再逐步恢复完整功能,这个顺序不能反。把每一次攻击当成一次压力测试,用真实流量检验架构的薄弱点,然后针对性加固,这才是DDoS防护的正确思路。
