正确组合使用 WAF(Web 应用防火墙)、CDN(内容分发网络)和 DDoS 高防(抗 DDoS 服务)是构建企业级 Web 安全防护体系的关键。三者功能有重叠(如流量清洗、IP 黑白名单、TLS 终止),若配置不当易引发请求链路中断、证书冲突、源站暴露、规则失效或性能劣化等严重问题。以下是经过生产环境验证的最佳实践组合方案与避坑指南:
✅ 一、推荐部署架构(黄金顺序)
用户 → DDoS 高防 → WAF → CDN(可选前置)→ 源站
但更常见且推荐的生产级串联顺序为:
用户
↓
[DDoS 高防] ←—(承载 4/7 层混合攻击清洗,首道流量入口)
↓ (仅放行清洗后合法流量)
[WAF] ←—(深度应用层防护:SQLi/XSS/CC/爬虫/0day 规则)
↓ (可选:WAF 后接 CDN 缓存静态资源)
[CDN] ←—(仅缓存静态内容;*不建议 WAF 前置 CDN*)
↓
[源站服务器]
🔑 核心原则:按攻击层级由外向内分层防御
- DDoS 高防:处理海量 SYN Flood、UDP Flood、HTTP Flood(L3/L4 + L7 基础 Flood)
- WAF:专注应用层威胁(L7),需看到完整 HTTP 头、Body、Cookie 等
- CDN:提速 & 基础缓存,非安全设备(其 WAF 功能较弱,规则更新慢,日志不可控)
✅ 二、关键配置协同要点(避免冲突)
| 配置项 | DDoS 高防 | WAF | CDN(纯提速用途) | ✅ 协同要求 |
|---|---|---|---|---|
| 回源 IP | 提供固定高防回源 IP 段(如 100.64.0.0/10) |
必须仅允许高防 IP 段 + WAF 自身 IP 回源 | 若 CDN 在 WAF 后,CDN 回源 IP 应加入 WAF 白名单 | ❌ 禁止源站直接暴露公网 IP;所有回源必须经高防/WAF X_X;源站防火墙只放行可信回源段 |
| HTTPS 终止 | 建议 L4 透传(不终止 TLS),避免证书管理复杂化 | ✅ 推荐在 WAF 终止 HTTPS(集中管理证书、HSTS、OCSP Stapling) | 若 CDN 在 WAF 后,CDN 使用 HTTP 回源(避免双重加密) | ✔️ 统一在 WAF 终止 TLS:简化证书轮换、支持 SNI、获取真实 Client IP(通过 X-Forwarded-For + X-Real-IP) |
| 真实 IP 传递 | 开启 X-Forwarded-For / True-Client-IP 头 |
必须识别并信任高防头(如 X-Forwarded-For),禁用 CDN 添加的重复头 |
若 CDN 在 WAF 后,CDN 必须关闭 X-Forwarded-For 覆盖(保留上游头) |
✔️ 源站 Nginx/Apache 需配置 set_real_ip_from 仅信任 WAF IP,并用 real_ip_header X-Forwarded-For; |
| 缓存策略 | 不参与缓存 | 禁用动态内容缓存(或仅缓存公开静态资源) | ✅ 仅缓存 Cache-Control: public, max-age=3600 类资源 |
❌ WAF 前禁止 CDN 缓存(否则绕过 WAF 规则);CDN 缓存键中勿包含敏感头(如 Cookie、Authorization) |
| 自定义 Header | 可添加 X-DDoS-Protected: 1 |
添加 X-WAF-Status: OK, X-RateLimit-Remaining |
若启用,确保 WAF 能识别并透传(不丢弃) | ✔️ 所有中间件需透传必要业务头(如 Authorization, X-User-ID),WAF 规则可基于这些头做精细化控制 |
✅ 三、典型错误配置(务必规避)
| 错误做法 | 风险 | 正确做法 |
|---|---|---|
| CDN 直连源站(绕过 WAF/高防) | 源站 IP 泄露 → 被直接攻击;WAF 规则完全失效 | ✅ 强制所有流量经高防 → WAF → 源站;源站绑定私有 IP 或云内网,公网 DNS 解析指向高防 VIP |
| WAF 和 CDN 都开启 HTTPS 终止 | 双重加解密 → 性能下降;证书管理混乱;X-Forwarded-Proto 冲突导致跳转死循环 |
✅ 仅 WAF 终止 HTTPS;CDN 到 WAF 使用 HTTP(或私有证书 HTTPS);WAF 设置 X-Forwarded-Proto: https |
| WAF 回源白名单未限制高防 IP | 攻击者伪造 X-Forwarded-For 直接访问 WAF(绕过高防) |
✅ WAF 防火墙只允许高防提供的固定回源 IP 段(非所有公网 IP);拒绝非高防 IP 的直接连接 |
| CDN 缓存了含 Set-Cookie 的响应 | 用户会话错乱、登录态丢失、CSRF 风险 | ✅ CDN 缓存策略严格限制:Set-Cookie / Vary: Cookie / Authorization 响应永不缓存 |
| 未同步黑白名单 | 高防封禁的 IP,WAF 仍放行(应用层攻击) | ✅ 使用云厂商联动能力(如阿里云 Anti-DDoS Pro + WAF 共享 IP 黑名单);或通过 API 定期同步 |
✅ 四、进阶协同建议
-
日志与溯源统一
- 启用三者全链路 TraceID(如
X-Request-ID),在日志中串联请求路径,快速定位拦截环节。 - 将高防攻击日志、WAF 访问日志、CDN 日志统一接入 SIEM(如 ELK/Splunk),关联分析攻击手法。
- 启用三者全链路 TraceID(如
-
弹性扩容联动
- 当高防检测到流量突增(>80%阈值),自动触发 WAF CC 防护等级提升 + CDN 缓存预热,避免雪崩。
-
灰度发布机制
- 新 WAF 规则上线前,先在高防后、WAF 前镜像流量(不阻断),验证规则误杀率 < 0.001% 后再启用。
-
源站最小化暴露
- 源站仅监听内网 IP(如
10.0.0.10:8080); - 云上源站安全组:仅放行 WAF 回源 IP 段 + 运维跳板机;
- 源站 Web Server 配置:
allow from 100.64.0.0/10; deny all;(Nginx)。
- 源站仅监听内网 IP(如
✅ 五、云厂商配置示例(以阿里云为例)
| 服务 | 关键设置 |
|---|---|
| DDoS 高防(Anti-DDoS Pro) | – 接入模式:七层X_X – 回源地址:填写 WAF 的 CNAME(如 waf-xxx.aliyuncs.com)– 开启 X-Forwarded-For 传递– 关闭“HTTPS 终止”(选择“透传”) |
| WAF(Web Application Firewall) | – 接入方式:CNAME 接入(非 IP) – 回源地址:源站内网 IP + 端口 – 回源协议:HTTP(若高防透传 HTTPS) – 白名单:仅添加高防回源段 100.64.0.0/10– TLS 设置:上传证书,在 WAF 终止 HTTPS |
| CDN(Content Delivery Network) | – 仅用于静态资源提速(JS/CSS/IMG) – 源站类型:自定义源站 → 填写 WAF 的 CNAME – 回源协议:HTTP – 缓存规则: *.js, *.css, *.png → max-age=3600;/api/*, /login → no-cache– 关闭“自动添加 X-Forwarded-For”(由高防/WAF 提供) |
💡 总结:一句话口诀
“高防扛洪流,WAF守大门,CDN只提速;证书在WAF终,回源靠白名单,IP头要透传,日志带TraceID。”
如需进一步落地,可提供您的具体技术栈(如 Nginx/OpenResty、Cloudflare/Aliyun/Tencent Cloud、源站框架),我可为您定制配置模板与检测脚本(如验证真实 IP 是否被正确传递)。
云小栈