高防CDN接入后源站IP还会暴露吗:五条泄露途径、收口顺序与暴露后的处置

2026-10-04 2 0

会。高防CDN的作用是把通过域名解析进来的流量引到边缘节点清洗后再回源,它隐藏的只是这一条链路上的源站IP。源站服务器的公网IP还可能从别的地方漏出去:历史解析记录、没接入CDN的子域名、外发邮件、证书扫描、程序主动外联。攻击者一旦拿到这个IP,就可以绕过CDN直接打源站,高防节点完全不经手这些流量。

所以接入之后,源站安全取决于两件事:

  1. IP尽量不泄露:把能漏出IP的途径逐个堵上。
  2. 即使泄露,源站也只接受CDN回源:用防火墙或安全组只放行回源IP段。

第二件事比第一件更关键,因为历史记录这类泄露已经无法撤回。

先判断你处在哪种情况

  • 源站正在被直接攻击:CDN控制台流量平稳,源站带宽却被打满、被云厂商黑洞,或者服务器连接数异常。这说明源站IP已经暴露,请直接看后文「源站已经被直打:先堵漏,再换IP」。
  • 刚接入或准备接入高防CDN:按下面的顺序先自查,再收口。

源站IP通常从这五个地方漏出去

高防CDN正常回源链路与源站IP五条泄露途径对照示意图

1. 接入CDN之前的历史解析记录

域名接入CDN前如果直接解析到源站,SecurityTrails、Netcraft 这类平台可能已经把当时的A记录归档。只要源站至今没换过IP,任何人都能查到。

自查方法:在这类历史解析平台搜索自己的域名,看历史A记录里有没有现在的源站IP。

2. 子域名直连源站

主域名走了CDN,但 mail、test、dev、api、ftp 这类子域名还直接解析到同一台机器,等于把IP写在了公开的DNS里。子域名很容易被字典枚举出来。

自查方法:把DNS控制台里的全部记录导出,逐条确认哪些指向源站IP。

3. 网站外发邮件

注册验证码、找回密码、订单通知等邮件,如果由源站本机发出,邮件头里会带上服务器的真实出口IP。攻击者只需注册一个账号、触发一封邮件,就能拿到这个IP。

自查方法:给自己发一封站内邮件,查看原始邮件头里的 Received 字段。

4. 证书被网络空间测绘扫描

源站443端口直接对公网开放,而且任何人连上来都能拿到你域名的SSL证书时,Censys、Shodan、FOFA 这类测绘引擎全网扫描后,会从证书的公用名(CN)和使用者可选名称(SAN)里读出域名,自动把IP和域名关联起来。这个过程你完全感知不到。此外,Web服务没有设置默认站点时,直接用IP访问源站也会返回真实网站内容。

自查方法:在测绘引擎里搜索自己的域名或证书;也可以从一台外部机器执行 curl -kv https://源站IP,看握手时返回的是哪张证书、页面是不是你的网站。

5. 程序主动外联和信息泄露

站点上遗留的 phpinfo 等探针页面、对外暴露的配置文件会直接写出服务器信息。如果存在SSRF漏洞,攻击者可以让服务器去请求他控制的地址,从对方日志里就能看到源站的出口IP。

自查方法:清点站点目录下的探针和测试文件;凡是允许用户填写URL、由服务器去抓取的功能,都要重点检查。

接入后的收口顺序

第一步:源站只放行高防回源IP

这是最重要的一步。在云服务器的安全组,或主机防火墙(iptables / firewalld)上,只允许高防CDN的回源IP段访问业务端口,其余来源一律拒绝。回源IP段到服务商控制台或文档里获取。服务商调整回源节点后,白名单要同步更新,否则会出现回源失败。

iptables 的写法示意如下,网段需替换成服务商实际提供的回源IP段:

# 放行高防回源网段访问 80/443(每个网段一条)
iptables -A INPUT -p tcp -s 回源网段1 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 回源网段2 -m multiport --dports 80,443 -j ACCEPT
# 其余来源访问 80/443 一律丢弃
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j DROP

操作前先单独放行你自己的SSH管理来源,避免把自己锁在门外。规则确认无误后再做持久化保存。

第二步:给Web服务设置默认站点

即使有了白名单,也建议在Nginx里加一个兜底的 default_server。用IP访问,或用未配置的域名访问时,直接断开连接,不返回真实证书和页面:

server {
    listen 80 default_server;
    listen 443 ssl default_server;
    ssl_reject_handshake on;   # Nginx 1.19.4 及以上可用;旧版本可改为挂一张自签名假证书
    server_name _;
    return 444;
}

这样一来,测绘引擎直接扫描IP时拿不到带你域名的证书,第四条泄露途径就基本断了。

第三步:收敛子域名

不需要对外的子域名,比如测试、开发环境,直接删除解析记录。需要对外的子域名,同样接入CDN,或者放到另一台与业务源站无关的机器上。

第四步:邮件与源站分离

把发信功能交给独立的第三方SMTP或邮件推送服务,源站本机不再直接对外发信。

第五步:清理探针,修补外联类漏洞

删除 phpinfo、测试页和备份配置文件。对服务端抓取URL的功能,限制可访问的目标地址,禁止访问内网和任意外部地址。

最后:验证

从一台不在白名单里的外部机器,用 curl 或 telnet 访问源站IP的80和443端口,结果应该是超时或连接被拒;通过域名访问网站则一切正常。两边都符合,才算收口完成。

源站已经被直打:先堵漏,再换IP

处置顺序很重要:先把上面五条泄露途径全部切断,再更换源站公网IP。 如果先换IP,邮件、子域名、证书扫描很快又会把新IP暴露出去,换IP就白做了。新IP上线前,要先配好回源白名单和默认站点,确保它从第一天起就只接受CDN回源。

还有一点需要分清:回源白名单能拦住直连源站的连接和应用层请求,但拦不住大流量把源站带宽打满。流量在到达你的防火墙之前,就已经占满了线路,云厂商可能直接把这个IP黑洞。所以在大流量直打的情况下,换IP才是根本办法。

如果暂时没法换IP,并且你所用的云平台支持,可以在源站前放一个内网负载均衡,让高防回源经由负载均衡转发到源站。这样即使源站自身的公网IP被黑洞,高防的回源链路也不受影响。这需要调整架构,是否可行要先和云平台确认。

如果源站正在被直打、需要协助重新接入并完成收口,可以直接联系 RockCloud。整个接入过程可以参考网站正在被大流量攻击时快速挂载CDN的接入顺序。

非网站业务另当别论

以上方法针对 HTTP/HTTPS 网站。游戏、私有协议的 TCP/UDP 服务通常不走高防CDN,源站隐藏要靠四层代理或SDK封装方案,需要单独设计。可以先看非网站业务能用高防CDN吗判断协议适合哪种接入方式。游戏类业务可以了解 RockCloud 的游戏盾,它通过私有协议封装支持 TCP/UDP,并隐藏源站。

相关文章

游戏服务器该选高防IP还是高防CDN:按协议拆模块,分层接入
高防CDN能防CC攻击吗:靠什么拦、什么情况会被打穿、接入后怎么自查
非网站业务能用高防CDN吗:先认协议,再选高防CDN、四层代理或游戏盾
高防IP和高防CDN哪个便宜:先看业务协议,再算保底、弹性和加速三笔账
高防IP和高防CDN能同时用吗:两种组合架构、配置要点与取舍判据
如何判断网站遭遇的是DDoS还是CC攻击:四步排查与对应处置

评论(0)

暂无评论

发布评论