接入阿里云 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/32、47.246.x.x/32等,具体以阿里云文档为准),拒绝其他所有公网 IP 访问。 - 阿里云提供 回源 IP 段列表,建议定期更新。
- 在源站服务器安全组/防火墙中,仅允许 WAF 回源 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 控制台操作截图指引吗?
云小栈