判断攻击流量有没有绕过清洗直接打到源站,最直接的办法是看源站入口是否收到高防回源IP之外的特征请求;一条tcpdump命令抓包,再对一下回源IP白名单,就能当场出结果。
很多站长的困惑在于:高防IP配了,网站却还是经常打不开,业内普遍的做法是先怀疑源站真实性被暴露,再怀疑清洗规则没生效,但大部分情况下,流量确实穿了清洗,问题出在源站自己身上端口全开、源站域名未收敛、回源IP白名单没做,导致绕过路径比清洗路径更短,下面按验证步骤、加固方法、兜底逻辑三层拆开讲。
如何判断攻击流量是否绕过清洗:先从入口特征查起
第一步:确认回源IP有哪些,心里有数
登录高防控制台,找到回源IP列表,如果没有这个列表,直接问服务商要,把回源IP记下来,后面所有判断都基于这个清单。
- 高防回源IP通常是一段固定IP池
- 未开启源站保护时,回源IP可能动态变化
- 部分服务商支持固定回源IP配置,务必开启
第二步:在源站入口抓包,看来源IP是否越界
在源站服务器上用tcpdump抓取80/443端口的流量,跑个两三分钟:
tcpdump -i eth0 tcp port 80 or port 443 -nn -c 500
抓完以后,把来源IP列表拉出来,和高防回源IP清单做比对,如果来源IP里有大量非回源IP直接命中源站,说明攻击流量已经绕过清洗,直接打在源站上,如果来源IP全部是回源IP,只是流量量级巨大,说明清洗中心放过了部分攻击流量,属于清洗策略问题。
第三步:查源站日志里的攻击特征
抓包只能看到IP层,应用层的绕过判断要看日志,以Nginx为例,执行:
grep -i "HTTP/1.1 403" /var/log/nginx/access.log | tail -n 100
主要看三类特征:
- 大量请求集中在单个URL但参数乱序、长短异常
- User-Agent大量重复或为空
- 访问频率显著高于正常峰值
如果上述特征出现在回源IP段内,属于清洗不够彻底;如果出现在回源IP段外围,属于绕过直接到源。
第四步:用源站防火墙临时拦一个源站域名来做对照试验
在源站上临时加一条防火墙规则,只放行回源IP,其他IP全部拒绝:
iptables -A INPUT -s 回源IP段 -p tcp --dport 443 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j DROP
观察现象,如果源站压力立刻下降,说明此前有大量非回源IP流量直连源站,即攻击流量绕过清洗穿透到了源站,如果压力无明显变化,说明流量确实来自高防回源,问题出在清洗策略或源站性能本身。
确认流量没有绕过清洗直接打到源站的核心手段:对比访问路径
路径对比法快速定位绕过节点
打开一个不支持缓存的URL,连续刷新三次,在浏览器开发者工具里分别观察:
- 直接访问高防IP,记录响应头里的Server标识与延迟
- 访问绑定高防IP的域名,记录相同字段
- 在源站上开临时端口(如8080)直接访问测试
对比三者的响应头Time字段,如果差异不大,说明源站已被绕过防护直接暴露;如果差异明显,说明源站还在高防保护之下。
查看源站access.log中的回源节点链路
日志里有一个字段常被忽略:$upstream_addr,它记录的是Nginx向上游转发时的实际连接地址,如果这个地址是公网IP而非内网回源IP,就说明流量并非从高防回源过来。
tail -n 50 /var/log/nginx/access.log | awk '{print $1, $7, $9}'
靠这个命令可以快速筛出异常来源,再结合高防回源IP池比对,能判断出攻击流量是否绕过清洗直接到达了源站节点。
借助第三方拨测平台交叉验证
用公共拨测工具从多个城市发起探测,观察源站是否直接响应,如果拨测结果里显示源站IP直接暴露在公网并能正常响应HTTPS请求,说明源站IP已泄露,攻击者可绕过高防直接攻击源站,这类工具包括17CE、简米云拨测、站长工具的HTTP检测等,操作很简单:输入域名,等待报告生成,看解析结果和响应IP。
合并拨测结果和本地日志,基本能定位绕过路径。
流量能绕过清洗直接打到源站,问题出在哪
源站IP被真实暴露是最大隐患
有以下几种常见泄露场景:
- 源站域名直接解析到源站IP,没有走高防CNAME
- 网站后台、邮件服务器等子域名解析到了源站
- 手机APP和微信小程序接口直接内嵌了源站IP
- 历史DNS解析记录仍可被第三方数据库查询
对应的处理方式:
-
关闭源站域名解析,只保留回源域名
- 源站服务器上不要绑定其他公网服务
- 历史解析记录无法消除,需通过IP收敛来兜底
源站所有端口对公网全开
多数用户源站的防火墙只放行了80/443,但SSH、数据库端口、备用WEB管理端口没有做来源限制,攻击者扫描到源站IP后,不一定要走HTTP协议,直接打22端口或3306端口就能把机器拖垮。
正确做法:
- 22端口只允许高防回源IP和办公网IP访问
- 数据库端口只绑内网IP,不监听公网
- 其他非业务端口一律禁止外部访问
回源方式与源站协议配置不一致
高防回源协议设置的是HTTP,源站只支持HTTPS,导致回源请求全部异常,反向代理超时设置太短,回源请求被中断,源站压力加大,行业内多数攻击穿透案例都源于这类配置不一致,而非清洗设备本身失效。
如何确认流量没有绕过清洗之后,如何彻底收紧:源站IP收敛三步法
源站防火墙只放行回源IP
这是源站真实IP如何验证是否还在高防后面的唯一可靠手段,操作简单,效果直接:
- 用iptables或安全组规则限制访问源站80/443的IP,只放行高防回源IP段
- 周期巡检,看防火墙拦截日志里是否有异常来源大量触发
- 在安全组规则里设置默认拒绝、显式放行
只有高防回源IP能触达源站时,攻击者即使拿到了源站IP,也无法绕过防护直接发起请求。
禁止服务器对外发起主动连接
服务器上如果跑了爬虫、API回调、邮件服务,防火墙规则拦入站不拦出站,攻击流量还是可以通过反弹方式进入源站,具体操作:
- 只允许服务器主动访问高防控制台和软件源域名
- 其他出站目标IP统一阻断,精确到端口
- 定期用netstat查看ESTABLISHED连接,排查被植入的连接
启用智能DNS轮询测试,验证各线路是否都走高防
流程如下:
- 将主域名切到智能DNS解析,A记录指向高防IP
- 将源站域名仅保留在DNS的解析记录中,不关联公网服务
- 通过多条网络线路(电信、联通、移动)分别解析域名,检查结果是否全部指向高防IP
- 若某线路解析结果直接返回源站IP,立即修正解析策略
清洗流量没有绕过但源站仍被打挂的场景以及兜底方案
大流量穿透与连接耗尽两类情况
| 流量特征 | 直接响应大流量压力 | 直接响应连接压力 |
|---|---|---|
| 症状 | 带宽跑满、源站普遍不可访问 | CPU高但带宽正常,网站卡顿 |
| 原因 | 清洗节点带宽或规则不足 | 源站自身连接数上限偏低 |
| 判断方式 | 查看源站网卡流量 | 查看active connection数 |
| 解决方向 | 升级清洗带宽/弹性防护 | 调高Nginx worker_connections |
清洗策略和源站性能需要同步优化
如果确认清洗链路正常但源站仍有压力,排查顺序是:
- 源站本身的连接处理能力是否撑得住回源流量
- 清洗规则中的限速阈值是否需要放宽
- 源站是否开启了CDN缓存,减少了回源量
备份链路与备用源站
配置两个不同机房的备用源站,一个为主源站,一个为备份源站,主源站故障时通过DNS或高防控制台切换流量,缓解单一线路压力,据工信部数据,近年来国内DDoS攻击峰值持续上升,大流量攻击频繁出现,具备跨机房容灾能力是日常防护的基础配置。
常见疑问解答
为什么高防回源IP的比例正常,源站仍然出现异常流量
两种可能:一是回源IP中混入了被攻击者伪造的源地址,需要检查高防服务商是否开启源站认证;二是清洗设备对异常连接保持的原路径继续转发,需在清洗策略中设置连接老化时间参数。
如何验证源站没有被绕过清洗直接暴露
用拨测工具模拟来自公网的访问,观察返回的IP是否与高防IP一致,再在源站上配防火墙白名单看是否影响正常访问,运行几分钟内状态正常则说明抗绕过有效,主要看异常请求是否被回源IP白名单拦截。
源站IP已经泄露还有必要做IP收敛吗
有必要,源站IP泄露仅代表风险存在,不意味着攻击流量已经绕过清洗,结合白名单策略、端口限制和入站规则,源站即使被扫描到也无法被直接访问,攻击流量大概率还是会被挡在清洗环节,收敛IP的同时保留高防清洗,双重防线能明显提高穿透门槛。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/653950.html





