部署 CDN 后源站 IP 被扫描怎么隐藏真实地址?

文章导读
最直接有效的办法是在服务器防火墙只放行 CDN 节点 IP 段,同时配置 Web 服务器拒绝所有直接通过 IP 的访问请求,确保流量必须经过 CDN 中转。若源站 IP 已确认泄露,更换服务器公网 IP 是唯一彻底解决方案。
📋 目录
  1. A 核心配置与命令
  2. B CDN 回源配置要点
  3. C 源站 IP 已泄露的应急方案
  4. D 怎么验证是否生效
  5. E 常见坑与排查
A A

最直接有效的办法是在服务器防火墙只放行 CDN 节点 IP 段,同时配置 Web 服务器拒绝所有直接通过 IP 的访问请求,确保流量必须经过 CDN 中转。若源站 IP 已确认泄露,更换服务器公网 IP 是唯一彻底解决方案。

先说结论:源站 IP 暴露后,单纯切换 CDN 不够,必须配合防火墙白名单和 Web 服务器配置。若 IP 已泄露,建议更换源站 IP。

  • 先判断:使用 nslookup 或 curl 检查域名解析是否返回 CDN 节点 IP,以及直接访问源站 IP 是否仍能获取网站内容。
  • 优先做:在云控制台安全组或系统防火墙中,仅允许 CDN 服务商公布的 IP 段访问 80/443 端口。
  • 再验证:配置完成后,再次尝试直连源站 IP,确认返回 444 断开或 403 禁止,且域名访问正常。

核心配置与命令

以下是 Nginx 配置示例,用于拒绝非域名访问和直连 IP 请求。注意 443 端口配置 default_server 时必须绑定有效证书,否则服务无法启动。

server {
    listen 80 default_server;
    server_name _;
    return 444;
}

server {
    listen 443 ssl default_server;
    server_name _;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    return 444;
}

若使用 iptables 限制访问来源(需替换为实际 CDN 网段,操作前请确保 SSH 端口已放行):

iptables -A INPUT -p tcp `--dport` 80 -s 173.245.48.0/20 -j ACCEPT
iptables -A INPUT -p tcp `--dport` 443 -s 173.245.48.0/20 -j ACCEPT
iptables -A INPUT -p tcp `--dport` 80 -j DROP
iptables -A INPUT -p tcp `--dport` 443 -j DROP

CDN 回源配置要点

在 CDN 后台设置回源时,地址类型选择至关重要:

  • 公共 CDN:必须填写服务器公网 IP 或域名 CNAME。公共 CDN 节点无法通过内网或本地回环地址访问你的源站。
  • 同云厂商内网加速:若 CDN 与源站位于同一云厂商且支持内网互通(如阿里云内网 CDN),可填写服务器内网 IP,避免流量经过公网。
  • 严禁填写 127.0.0.1:除非 CDN 节点部署在你本地服务器内部,否则填写 127.0.0.1 会导致 CDN 无法回源,网站无法访问。

源站 IP 已泄露的应急方案

若通过历史 DNS 记录查询工具发现源站 IP 已公开,仅靠防火墙无法阻止针对该 IP 的直接攻击,建议执行以下操作:

  1. 更换公网 IP:在云控制台申请更换弹性公网 IP(EIP),或释放当前 IP 重新分配。
  2. 更新 DNS 解析:确保域名 A 记录指向新的 CDN CNAME 或节点 IP,而非新源站 IP。
  3. 配置新防火墙:在新 IP 生效前,先配置好安全组白名单,防止新 IP 上线瞬间被扫描。
  4. 清理旧信息:虽然无法删除第三方 DNS 历史收录,但更换 IP 后旧记录将自然失效。

怎么验证是否生效

1. 检查 DNS 解析

部署 CDN 后源站 IP 被扫描怎么隐藏真实地址?

在本地终端执行 nslookup 你的域名,确认返回的 IP 是 CDN 节点 IP,而非服务器真实公网 IP。

2. 测试直连阻断

在终端执行 curl -H "Host: 你的域名" http://源站真实 IP。如果配置生效,应该无法获取网站内容,连接被断开或返回 443/403 错误。若仍能返回 200 状态码和网站内容,说明源站 IP 仍可被直接访问。

3. 验证 CDN 中转

执行 curl -I http://你的域名,查看响应头是否包含 cf-ray 或其他 CDN 特征字段。在网站代码中获取客户端 IP,访问域名看到的应该是 CDN 节点 IP,而不是你自己的公网 IP。

部署 CDN 后源站 IP 被扫描怎么隐藏真实地址?

常见坑与排查

1. 子域名未接入 CDN

很多网站主域名接了 CDN,但 test、dev、mail 等子域名直接解析到源站 IP。攻击者通过子域名枚举找到真实 IP 后,可进一步扫描整个 C 段。确保所有解析到该服务器的子域名都经过 CDN 代理。

2. 历史 DNS 缓存无法删除

第三方 DNS 历史平台(如 SecurityTrails 等)通常不支持用户删除已收录的历史记录。不要浪费时间提交删除申请,直接更换源站 IP 是最有效手段。

3. 邮件头泄露

若服务器直接发送系统邮件,邮件头中可能包含源站 IP。建议配置 SMTP 中继或使用第三方邮件服务,避免服务器直接对外发送邮件。