
一、源站暴露为什么致命
WAF 的所有防护都建立在”流量必须经过 WAF”这个前提上。一旦攻击者拿到源站真实 IP,就可以绕开 WAF 直接攻击源站——此时 WAF 完全看不到这些流量,等于不存在。
正常情况:
攻击者 → WAF(拦截)→ ✗ 到不了源站
源站暴露后:
攻击者 → WAF(被绕过)
↘ 直连源站 IP → 攻击成功 ⚠️
二、怎么判断源站是否暴露
# 方法 1:直连源站测试
curl -Isk --resolve www.你的域名:443:源站IP https://www.你的域名/
# 若返回 200 → 源站可直连,暴露了 ❌
# 若超时/拒绝 → 已保护 ✅
# 方法 2:检查访问日志来源 IP
tail -200 /www/wwwlogs/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head
# 若出现大量访客真实 IP → 流量没经过 WAF
# 方法 3:遍历子域名
for sub in www mail dev test ftp admin api cdn static img; do
ip=$(dig +short $sub.你的域名 | head -1)
echo "$sub -> $ip"
done
# 若有子域解析到源站 IP → 泄露点
三、源站 IP 是怎么泄露的
| 途径 | 说明 | 修复难度 |
|---|---|---|
| 未接入的子域名 | 某个子域还指向源站 | 低(改解析) |
| 历史 DNS 记录 | 换解析前的记录被存档 | 中(换 IP) |
| 证书透明度日志 | CT 日志记录了域名信息 | 中(用 CNAME) |
| 邮件服务器头 | 发信源码含服务器 IP | 低(改邮件服务) |
| 第三方服务 | 监控/统计/回调记录 IP | 低(核查配置) |
| 同 IP 的其他站点 | 反查同 IP 的其他域名 | 中(换 IP 或独立 IP) |
四、修复方案(按优先级)
4.1 第一优先级:限制源站只收 WAF 回源
这是最关键的一步,能直接封死”绕过 WAF 直连源站”这条路径:
# 方式 1:iptables(系统层,推荐)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -s WAF回源网段 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -s WAF回源网段 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 443 -j DROP
service iptables save
# 方式 2:Nginx(应用层)
# server {
# allow WAF回源网段;
# deny all;
# }
注意:配置前一定要把 SSH 端口和宝塔面板端口单独放行,否则会把自己锁在外面。
4.2 第二优先级:清理未接入的子域名
# 1. 列出所有解析记录
# 在 DNS 控制台导出,或
for sub in www mail dev test ftp admin api cdn static img; do
echo -n "$sub: "; dig +short $sub.你的域名
done
# 2. 对每个子域:
# 仍在用的 → 接入 WAF(改 CNAME)
# 不用的 → 删除解析记录
# 3. 泛解析的注意:
# *.你的域名 若指向源站,所有未定义子域都泄露
# 应改为指向 WAF 或删除
4.3 第三优先级:隐藏源站 IP
隐藏措施:
├─ 源站 IP 不写入任何公开文档
├─ 换用第三方邮件服务发信(避免邮件头泄露)
├─ 核查监控/统计/支付回调的配置
├─ 若源站 IP 已泄露,考虑更换 IP
└─ 使用 CNAME 接入,让外网查不到源站
4.4 第四优先级:源站纵深防御
即使源站保护到位,也建议在源站再加一层软件 WAF,防止万一:
源站纵深:
├─ 部署开源 WAF(如 ModSecurity)
├─ 只开必要规则,避免误报
├─ 用途:防绕过、防内部横向
└─ 定位:兜底,不是主力
五、验证修复效果
修复后必须验证:
1. 直连源站应被拒绝
curl -Isk --resolve www.你的域名:443:源站IP https://www.你的域名/
→ 期望:超时 / 连接被拒
2. 经 WAF 访问应正常
curl -I https://www.你的域名/
→ 期望:200
3. 子域名全部不在源站
逐个 dig 检查
4. 源站日志中不应出现访客真实 IP
六、小结
源站暴露是 WAF”形同虚设”的根本原因。修复的第一优先级永远是”限制源站只允许 WAF 回源 IP 访问”——这一条能直接封死绕过路径。配合清理子域名、隐藏源站 IP、改造邮件服务,以及在源站加一层软件 WAF 兜底,就能把源站暴露的风险降到最低。修完一定要验证:直连源站应该被拒绝,经 WAF 访问应该正常。
如果你的站点正被恶意爬虫、CC 攻击困扰,或需要一套开箱即用的 Web 应用防护,可以了解百度云防护 Web 应用防火墙(专业版 299 元/月,年付 2399 元,可联系主机吧客服购买)——支持自定义访问策略、URI 频率限制、BOT 防护、威胁情报与 API 防护,无需改动源站代码,改 DNS 即可接入。包年包月计费,流量峰值买多少防多少,无后付费陷阱。
