Cloudflare Web 应用防火墙(Cloudflare WAF)会检查进入的网站和 API 请求,并基于规则集(rulesets)过滤不需要的流量。
本文指导您按建议的初始步骤配置 WAF,以便快速获得对常见攻击的基础防护。
请参阅 概念 了解 WAF 概念、核心组件与职责。
-
确认您已 创建 Cloudflare 账户 并已将 域名添加 到 Cloudflare。
-
Free 方案可使用 Cloudflare Free Managed Ruleset(Cloudflare 托管规则集的子集)。该规则集默认部署在 Free 方案中,本指南不单独展开介绍。
若您使用 Free 方案,可直接跳到 5. 在安全仪表板中回看流量。
Cloudflare 托管规则集 可防御常见漏洞与暴露(CVE)以及已知攻击向量。该规则集通过签名识别常见攻击,并尽量控制误报。规则变更会在每周发布于 WAF 更新日志;高优先级零日漏洞时,Cloudflare 也可能在应急发布中新增规则。
-
在 Cloudflare 仪表板中,前往 Security(安全) 的 Settings(设置) 页面。
Go to Settings ↗ -
可选:按 Web 应用程序漏洞(Web application exploits) 进行筛选。
-
开启 Cloudflare 托管规则集(Cloudflare managed ruleset)。
- 登录 Cloudflare 仪表板 ↗,并选择您的账户与域名。
- 进入 Security(安全) > WAF,选择 Managed rules(托管规则) 标签页。
- 在 Managed Rulesets(托管规则集) 下,选择 Cloudflare 托管规则集对应的 Deploy(部署)。
默认设置与规则集自定义
默认情况下,Cloudflare 托管规则集仅启用部分规则,在防护效果和误报之间保持平衡。您可根据应用技术栈逐步审核并开启更多规则。
在某些场景下,启用托管规则集可能引入误报。误报是指合法请求被 WAF 误判为威胁而被处理。有关误报处理方法,请参见 托管规则排查。
如果您在使用渗透测试工具验证 WAF,建议使用以下规则集配置开启全部规则:
- Ruleset action(规则集动作):拦截(Block)
- Ruleset status(规则集状态):已启用(Enabled)
有关在仪表板中配置 Cloudflare 托管规则集的更多信息,请参见 Cloudflare 托管规则集。
WAF 攻击评分 是一层机器学习能力,用于补充 Cloudflare 托管规则集,额外防护 SQL 注入 ↗(SQLi)、跨站脚本 ↗(XSS)以及多种 远程代码执行 ↗(RCE)攻击。它有助于识别规则绕过及可能的新型攻击。
如果您是 Enterprise 用户:
-
联系您的客户成功同事或客户经理,申请 WAF 攻击评分访问权限。
使用 攻击评分(Attack Score) 字段创建 自定义规则:
-
当入站请求匹配以下条件时:
字段 运算符(Operator) 值 WAF 攻击评分 小于(less than) 20 -
动作:拦截(Block)
-
如果您是 Business 方案,请按上述方式创建自定义规则,但将字段改为 WAF 攻击评分级别(WAF Attack Score Class)。例如:WAF 攻击评分级别 equals 攻击(Attack)。
Enterprise 的 Bot Management 用户建议先在 Security Settings(安全设置) 中配置 bot 防护,以提供基础保护:
-
在 Cloudflare 仪表板中,前往 Security settings(安全设置) 页面并按 Bot traffic(Bot 流量) 筛选。
Go to Settings ↗ -
根据业务需求配置 Definitely automated(确定自动化)、Likely automated(可能自动化) 和 Verified bots(已验证 bot)。
-
如需阻断 AI 爬虫,请开启 Block AI bots(阻断 AI Bot)。
这些内置设置会随着 bot 签名更新自动调优,不计入自定义规则配额。更多信息请参见 Bot Management。
若您需要更细化控制(例如设置不同分数阈值,或将 bot score 与其他字段联合判断),可使用 Bot Score 与 Verified Bot 字段创建 自定义规则:
-
当入站请求匹配以下条件时:
字段 运算符 值 逻辑 Bot Score 小于 20且 Verified Bot 等于 关闭 -
动作:受管质询(Managed Challenge)
该规则将阈值从默认值 30 调整为 20,可对得分在 20-29 区间的流量提供更严格的保护。
有关更完整的恶意 bot 基线防护示例,请参见 质询恶意机器人。
如需了解可在表达式中使用的 bot 相关字段,请参见 Bot Management 变量。
完成 Cloudflare 托管规则集及基于攻击评分、bot 评分的规则部署后,您会获得更稳健的基础防护,并可显著降低误报概率。
完成 Cloudflare 托管规则集和攻击评分配置后,您还可以部署 Cloudflare OWASP Core Ruleset。该托管规则集是 Cloudflare 对 OWASP ModSecurity Core Rule Set 的实现,覆盖的常见攻击向量(如 SQLi、XSS)与 Cloudflare 托管规则集高度重叠。
-
在 Cloudflare 仪表板中,前往 Security(安全) 的 Settings(设置) 页面。
Go to Settings ↗ -
可选:按 Web 应用程序漏洞(Web application exploits) 进行筛选。
-
开启 OWASP Core。
该设置会以默认配置部署 Cloudflare OWASP Core Ruleset:paranoia level = _PL1_(怀疑度级别),score threshold = _Medium - 40 and higher_(评分阈值,中等及以上,40 及以上)。
- 进入域名 Security(安全) > WAF,选择 Managed rules(托管规则) 标签。
- 在 Managed Rulesets(托管规则集) 下,选择 Cloudflare OWASP Core Ruleset 的 Deploy(部署)。
这会以默认配置部署规则集:paranoia level = _PL1_(怀疑度级别),score threshold = _Medium - 40 and higher_(评分阈值,中等及以上,40 及以上)。
规则集配置
与基于签名的 Cloudflare 托管规则集不同,Cloudflare OWASP Core Ruleset 为分数制。您可以选择一个怀疑度级别(paranoia level,范围 PL1 到 PL4,其中 PL1 最低)逐步启用更多规则,并设置评分阈值(score threshold),决定何时触发配置动作。较低怀疑度和较高阈值通常带来更少误报。更多评估示例请参见 OWASP 评估示例。
可按以下任一方式配置:
- 从严格策略开始(怀疑度级别(paranoia level)= PL4,评分阈值(score threshold)= Low - 60 and higher(低风险,60 及以上)),逐步下调阈值与怀疑度级别,直至获得合适的误报/真报比例。
- 或从更宽松策略开始(怀疑度级别(paranoia level)= PL1,评分阈值(score threshold)= High - 25 and higher(高风险,25 及以上)),再同步提高参数以增强防护并尽量维持低误报。
如需了解仪表板中配置 Cloudflare OWASP Core Ruleset 的更多细节,请参见 在仪表板中配置。
完成 WAF 配置后,可使用以下仪表板查看当前设置对流量的影响:
Enterprise 用户还可通过 Cloudflare Logs 获取 HTTP 请求与安全事件的更多数据。
基于前文配置完成后,您应具备较稳健的基础防护。可继续采用下列建议为特定场景提供额外保护:
创建自定义规则:仅允许白名单中的 IP 地址流量。
创建自定义规则:阻断来自特定国家/地区的流量。
创建速率限制规则:在登录端点应用速率限制。
使用 泄露凭据检测 来防止应用中的 credential stuffing 攻击。
使用 WAF 内容扫描 扫描应用中上传的内容,识别恶意载荷。
Cloudflare 提供对新型和已知应用攻击(包括 SQL 注入等)的 API 防护。API 专用安全产品可延伸到 API 发现、身份认证管理等 API 特定风险。
如需了解 Cloudflare API 安全能力,请参见 Cloudflare API Shield。
关于防止攻击者发现或过载源站服务器的分层方案(包含代理 DNS、IP 白名单与身份认证源拉取),请参见 保护源站服务器。