这是一个非常经典且高频的运维架构问题。很多刚接触云安全的朋友会有个误区,觉得只要买了 WAF(Web 应用防火墙),源站 IP 就自动“隐身”了。事实并非如此,WAF 本身只是一个流量清洗和防护节点,它不具备自动隐藏源站的能力。如果配置不当,攻击者依然可以通过 DNS 解析、历史缓存、子域名泄露等方式找到你的源站真实 IP,进而发起 CC 攻击或 DDoS 绕过 WAF。
要真正解决源站公网 IP 暴露的问题,核心逻辑只有一条:切断所有非 WAF 节点到源站的直接公网连接路径,确保所有流量必须经过 WAF。
以下是基于阿里云生态的具体实操方案,按优先级和可靠性排序:
1. 基础防线:源站安全组与 ECS 实例设置
这是最底层也最关键的一步。无论你怎么做 DNS 解析,只要源站的安全组允许任意 IP 访问,你就永远处于风险中。
-
修改安全组规则:
- 进入阿里云 ECS 控制台,找到你的 Web 服务器所在的安全组。
- 删除所有
0.0.0.0/0或::/0的入方向规则(特别是 80、443 端口)。 - 添加仅允许阿里云 WAF 回源 IP 段访问的规则。
- 注意:阿里云 WAF 的回源 IP 段是动态变化的,官方文档中有提供最新的 CIDR 列表。你需要定期更新这些规则,或者使用阿里云提供的“安全组自动化管理”功能(如果可用)来自动同步。
- 对于 SSH(22)、RDP(3389)等管理端口,务必限制为仅允许你自己的固定办公 IP 访问,严禁开放给任何人。
-
ECS 实例绑定弹性公网 IP (EIP) 而非普通公网 IP:
- 如果你的源站使用的是系统分配的普通公网 IP,建议解绑并替换为 EIP。这样即使未来需要迁移或调整网络结构,IP 地址可以保留或快速切换,便于统一管理。
2. 核心手段:DNS 解析劫持与 CNAME 接入
这是实现“IP 隐藏”的技术关键。WAF 有两种接入模式:CNAME 接入和主动推送(DNS 解析修改)。为了彻底隐藏 IP,强烈推荐使用 CNAME 接入模式。
-
为什么选 CNAME?
- 在 CNAME 模式下,你将域名的 DNS 记录指向 WAF 提供的 CNAME 地址(如
xxx.waf.aliyuncs.com)。 - 用户访问时,DNS 解析返回的是 WAF 的 IP,而不是你源站的 IP。
- 此时,你的源站 DNS 记录可以保持不变,甚至可以将源站 IP 从公共 DNS 中移除(如果可能),或者至少确保没有其他人能通过查询该域名获得源站 IP。
- 在 CNAME 模式下,你将域名的 DNS 记录指向 WAF 提供的 CNAME 地址(如
-
操作要点:
- 在阿里云 WAF 控制台选择“CNAME 接入”。
- 复制 WAF 给你的 CNAME 地址。
- 在你的域名解析服务商(阿里云 DNS、Cloudflare、GoDaddy 等)处,将主域名(www.example.com)和根域名(example.com)的 A 记录删除或修改为 CNAME 记录,指向上述地址。
- 重要:确保所有子域名都正确指向 WAF。如果有多个子域名,可能需要逐个配置或使用泛域名解析(需确认 WAF 支持泛域名回源)。
3. 高级加固:防止源站 IP 通过其他方式泄露
即使做了上述两步,仍有其他途径可能导致 IP 泄露:
-
检查历史 DNS 记录:
- 使用第三方工具(如 VirusTotal、SecurityTrails、Whois 历史查询)检查你的域名是否曾解析过旧的源站 IP。
- 如果发现了旧 IP,说明曾经有人知道这个 IP。虽然当前已切换至 WAF,但攻击者仍可能尝试直接 ping 该旧 IP。因此,第一步中的安全组规则至关重要——必须确保即使有人猜到旧 IP,也无法访问源站服务。
-
避免邮件头、错误页面、CDN 回源泄露:
- HTTP 响应头:检查你的网站响应头,移除
X-Powered-By、Server等可能暴露后端技术栈的信息。 - 错误页面:自定义 404、500 等错误页面,不要显示详细的服务器路径或内部结构。
- CDN 联动:如果你同时使用了阿里云 CDN,请注意 CDN 和 WAF 的协同。通常建议 WAF 在前,CDN 在后(即 WAF -> CDN -> 源站),或者 WAF 直接回源(WAF -> 源站)。如果采用 CDN + WAF 架构,需确保 CDN 的回源 IP 也被加入 WAF 的信任白名单,并且 CDN 的源站地址应设置为 WAF 的地址,而不是直接指向 ECS IP。
- HTTP 响应头:检查你的网站响应头,移除
-
子域名枚举与资产测绘:
- 攻击者常通过扫描大量子域名来寻找未接入 WAF 的服务(如 test.example.com, dev.example.com)。
- 确保所有对外暴露的子域名都已接入 WAF 或关闭服务。
- 使用阿里云“资产中心”或“云盾安骑士”进行定期漏洞扫描和资产发现,及时发现未被保护的入口。
4. 监控与告警:建立快速响应机制
- 开启 WAF 日志审计:
- 在阿里云 WAF 控制台中开启详细日志记录,监控是否有大量来自非 WAF 回源 IP 段的请求尝试访问源站(这通常意味着有人正在探测源站 IP)。
- 设置异常流量告警:
- 结合阿里云 SLS(日志服务)和 ARMS(应用实时监控服务),设置当检测到非 WAF 来源的 HTTP 请求到达源站时触发高优先级告警。
- 定期轮换 IP(可选):
- 对于极高安全需求的场景,可以考虑定期更换 ECS 实例的公网 IP(通过更换 EIP 实现),但这会带来业务中断风险,需谨慎评估。更推荐的做法是保持 IP 不变,但强化安全组和访问控制。
总结
处理源站 IP 暴露问题的本质不是“隐藏”,而是“隔离”。
- 物理隔离:通过安全组严格限制只有 WAF 回源 IP 能访问源站。
- 逻辑隔离:通过 CNAME 接入让所有用户流量先经过 WAF。
- 持续验证:定期检查历史 DNS、子域名、错误信息等潜在泄露点。
记住,没有任何单一产品能保证绝对安全。WAF 是重要的防护层,但它不能替代正确的网络架构设计。务必确保源站本身不直接面向互联网开放,这才是根本解决方案。
云技术博客