加油
努力

阿里云WAF接入后如何处理源站的公网IP暴露问题?

接入阿里云 WAF(Web 应用防火墙)后,处理源站公网 IP 暴露的核心思路是:将流量路径从“用户直接访问源站”改为“用户 → WAF → 源站”,并通过配置确保源站只接受来自 WAF 的流量。以下是具体操作步骤和注意事项:


✅ 核心解决方案

1. 修改 DNS 解析

  • 将域名 A 记录/CNAME 指向 WAF 提供的 CNAME 地址(而非源站 IP)。
  • 示例:
    • 原解析:example.com → 203.0.113.10(源站公网 IP)
    • 新解析:example.com → waf.aliyuncs.com(WAF 提供的 CNAME)
  • ⚠️ 注意:修改 DNS 后需等待 TTL 生效,期间部分用户可能仍直连源站。

2. 隐藏源站真实 IP

  • 禁止外部直接访问源站 IP
    • 在源站服务器安全组/防火墙中,仅允许 WAF 回源 IP 段访问(如 8.8.8.8/3247.246.x.x/32 等,具体以阿里云文档为准),拒绝其他所有公网 IP 访问。
    • 阿里云提供 回源 IP 段列表,建议定期更新。
  • 禁用源站公网 IP 的直接访问
    • 若源站有独立公网 IP,可在云盾/安全组层面屏蔽该 IP 的所有入站流量(除 WAF 回源端口外)。
    • 或使用 EIP + NAT 网关 架构,让源站无公网 IP,仅通过内网或特定 EIP 被 WAF 访问。

3. 配置 WAF 回源策略

  • 在 WAF 控制台设置:
    • 回源协议:HTTP/HTTPS(根据源站支持情况选择)。
    • 回源 Host:填写原始域名(如 example.com),避免源站因 Host 不匹配返回错误。
    • 开启“隐藏源站 IP"功能(部分版本支持自动注入 X-Forwarded-For 头)。
  • 确保 WAF 与源站之间网络连通(如使用 VPC 对等连接、专线或公网回源且已放行白名单)。

4. 验证防护效果

  • 使用工具测试:

    # 检查域名是否指向 WAF
    dig example.com
    
    # 尝试直接访问源站 IP(应被阻断)
    curl -I http://<源站公网IP>
    # 预期结果:Connection refused / Timeout / 403 Forbidden
    
    # 通过 WAF 正常访问应成功
    curl -H "Host: example.com" https://<WAF 入口 IP>

🔒 增强安全措施(可选)

  • 启用 WAF 的“防爬虫”、“CC 防护”规则,减少异常请求打到源站。
  • 使用 阿里云 CDN + WAF 联动:CDN 缓存静态资源,动态请求经 WAF 回源,进一步降低源站压力。
  • 定期审计安全组规则,防止误开放端口。

❌ 常见误区

错误做法 风险
仅修改 DNS 但未限制源站安全组 攻击者仍可绕过 WAF 直接攻击源站 IP
未设置回源 Host 源站虚拟主机可能无法识别请求,返回默认页或 404
忽略 WAF 回源 IP 段变更 阿里云会不定期更新回源 IP,需及时同步到安全组

通过以上步骤,可有效实现“源站 IP 不可见”,即使攻击者获取了源站 IP,也无法直接发起攻击(除非他们能伪造 WAF 回源 IP,但概率极低且可被 WAF 检测)。

需要我提供具体的安全组配置示例或 WAF 控制台操作截图指引吗?

云服务器