有奖捉虫:行业应用 & 管理与支持文档专题 HOT
文档中心 > Web 应用防火墙 > 最佳实践 > 接入相关 > WAF 与 CDN 联动使用最佳实践
本文将介绍如果网络中增加了 CDN 网络层,用户将如何接入 WAF,提供更有效的安全防护。
内容分发网络(CDN)提供强大的网站静态内容的加速分发处理能力,显著提升网站资源加载速度,分布在不同区域的终端用户均可享受到快速流畅的网页体验。在用户高并发期间可缓解源站服务器压力,保证服务稳定和网页的流畅访问。
Web 应用防火墙提供实时防护能力,可有效拦截 Web 攻击,保障用户业务的数据和信息安全。


测试环境

cvm:存在一个 Web 服务。
备案域名。
Web 应用防火墙。
CDN 内容分发网络。

接入步骤

步骤1: 配置 Web 应用防火墙

1. 登录 Web 应用防火墙控制台,在左侧导航中,选择接入管理
2. 在域名接入页面,单击添加域名
3. 在添加域名页面,配置相关参数,单击确定

参数名称
说明
域名
在域名输入框中添加需要防护的域名 ,本示例中填写 youlin.life。
代理情况
根据实际情况选择是否已使用了高防、CDN、云加速等代理。
注意:
因为本文需要接入 CDN,因此选择
否:表示 WAF 收到的业务请求来自发起请求的客户端。WAF 直接获取与 WAF 建立连接的 IP 地址作为客户端 IP。
是:表示 WAF 收到的业务请求来自其他七层代理服务转发,而非直接来自发起请求的客户端。为了保证 WAF 可以获取真实的客户端 IP,进行安全分析和防护,您需要进一步设置客户端 IP 判断方法。
取请求 Header 字段 X-Forwarded-For(XFF)中的第一个 IP 地址作为客户端 IP。
获取网络层的 remote_ip 作为客户端的源 IP,防止 XFF 伪造。
获取指定 header 字段的 IP 地址。
源站地址
根据实际需求选择 IP 或域名。
其他参数
详情请参见 步骤 1:域名添加
4. 完成配置后,可以在当前页面看到接入的域名。当前接入的 cname 为09a10b6316608b648da8eec6fffeb59b.qcloudwzgj.com


步骤2:配置 CDN

1. 登录 CND 控制台,在左侧导航中,选择域名管理
2. 在域名管理页面,单击添加域名,输入加速域名回源地址,配置相关参数,单击确认添加
说明:
加速域名:填写目标域名。
回源地址:填写 WAF 的cname 地址。
更多详情请参见 从零开始配置 CDN

3. 配置完成后,可以在当前页面看到添加的域名,以及生成的 CDN cname 地址。


步骤3:配置 DNS

1. 登录 云解析 DNS 控制台,在左侧导航中,选择我的解析
2. 在我的解析页面,选择要操作的域名,单击解析

3. 添加 cname 地址,其中记录值为 CDN 的 cname 地址。


测试验证

验证1 : 域名是否能正常访问

浏览器访问目标域名 http://xx.com,检测是否正常。

验证2 : WAF 是否接入成功

浏览器访问 http://xx.com/?test=alert(123),检测是否能被 WAF 拦截。


验证3:CDN 是否接入成功

打开浏览器的开发者模式,访问加速域名。
验证方法①:确认 Remote Address 的 IP是否属于 CDN 节点 IP。操作详情请参见 IP 归属查询
验证方法②:
判断是否缓存命中的方法:有返回以下任意一个,即代表缓存命中,否则代表缓存未命中。
X-Cache-Lookup: Hit From MemCache
X-Cache-Lookup: Hit From Disktank
X-Cache-Lookup: Cache Hit


验证4 : WAF 是否能正确识别客户端 IP

1. 在 攻击日志页面,最近一次记录的 attack_ip。

2. 验证 attack_ip 是否为客户端真实 IP,而非 CDN 的 IP。
可以与本地 IP 对比,是否为测试机器的 IP。
可以通过 CDN 的 IP 归属查询 功能进行验证。