云 WAF 接入后源站 IP 泄露怎么排查和隐藏真实 IP?

文章导读
如果确认源站 IP 已经泄露,最稳妥的办法是更换服务器 IP 并在防火墙层面只允许 WAF 回源 IP 访问,同时清理互联网上的历史 DNS 记录。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
A A

如果确认源站 IP 已经泄露,最稳妥的办法是更换服务器 IP 并在防火墙层面只允许 WAF 回源 IP 访问,同时清理互联网上的历史 DNS 记录。

先说结论:IP 泄露后单纯隐藏已不够,需结合换 IP 与访问控制策略。

  • 先判断:通过多地 Ping 和历史 DNS 查询确认泄露范围
  • 优先做:更换源站 IP 并配置安全组仅放行 WAF 回源段
  • 再验证:直接访问新 IP 应被拒绝,域名访问正常

命令速用版

以下命令用于快速检查当前 IP 是否暴露及测试连通性:

# 检查域名解析到的 IP 是否唯一
dig +short yourdomain.com

# 测试直接访问源站 IP 是否通(应失败)
curl -v http://YOUR_ORIGIN_IP -H "Host: yourdomain.com"

# 查看当前服务器对外显示的 IP
curl ifconfig.me

# iptables 配置示例(仅允许 WAF 回源段,请替换<WAF_CIDR>)
iptables -I INPUT -p tcp `--dport` 80 -s <WAF_CIDR> -j ACCEPT
iptables -I INPUT -p tcp `--dport` 443 -s <WAF_CIDR> -j ACCEPT
iptables -A INPUT -p tcp `--dport` 80 -j DROP
iptables -A INPUT -p tcp `--dport` 443 -j DROP

为什么会这样

云 WAF 原理是作为反向代理,用户请求先经过 WAF 节点再转发给源站。泄露通常发生在接入 WAF 之前 DNS 已被收录,或者接入后源站主动向外发起连接(如发送邮件、请求外部 API)带走了真实 IP。此外,子域名未接入 WAF、SSL 证书透明度日志(CT Logs)以及互联网上的 DNS 历史缓存都可能导致真实 IP 被关联。

云 WAF 接入后源站 IP 泄露怎么排查和隐藏真实 IP?

分步处理

1. 确认泄露情况
使用第三方 DNS 历史查询工具检查域名是否解析过其他 IP。如果查到的 IP 与当前源站一致,说明已泄露。

2. 查询 WAF 回源 IP 段
登录云厂商控制台,查找 WAF 产品的文档或 IP 列表页面。例如阿里云 WAF 可在控制台“防护配置”中查看回源段,腾讯云需在文档中心搜索“WAF 回源 IP 段”。务必获取最新的 CIDR 列表。

3. 更换源站 IP(如已泄露)
若 IP 已公开,隐藏手段效果有限,建议向云厂商申请更换弹性公网 IP。新 IP 生成后,先不要绑定域名。

4. 配置访问控制
云服务器安全组:登录控制台 -> 实例 -> 安全组 -> 入站规则。添加规则允许 WAF 回源 IP 段访问 80/443 端口,优先级设为高。添加规则拒绝 0.0.0.0/0 访问 80/443 端口。
系统防火墙:使用上述 iptables 命令或 firewalld 配置同等策略。

云 WAF 接入后源站 IP 泄露怎么排查和隐藏真实 IP?

5. 关于历史记录
公共 DNS 历史记录服务通常不支持人工申请清除。核心对策是更换 IP 使旧记录失效,旧 IP 对应的历史记录将不再指向有效服务。

怎么验证是否生效

在本地 hosts 文件将域名指向新源站 IP,尝试访问网站。如果配置正确,请求应被防火墙拦截或超时。同时使用域名正常访问,业务应无影响。检查服务器日志,确认所有流入流量均来自 WAF 节点 IP 段。

常见坑

1. 邮件头泄露:源站直接发送邮件时,邮件头会包含真实 IP。建议改用第三方邮件服务。检查命令:grep -i "received" /var/log/mail.log 或发送测试邮件后查看原始邮件头。
2. 子域名遗漏:主域名接了 WAF,但 test.domain.com 直接解析到源站,攻击者可通过子域名反查。
3. 外部请求:服务器主动请求外部 API 时,对方日志会记录源站 IP。需确保出站流量也经过代理或接受该风险。
4. SSL 证书关联:证书透明度(CT)日志会记录域名证书信息。如果某些子域名未接入 WAF 且解析到源站,攻击者可通过 CT 日志搜索域名找到关联 IP。需确保所有子域名均接入 WAF。