LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

Cloudflare 安全功能 WAF 防火墙实战:用 5 条免费规则挡住 90% 的攻击

admin
2026年4月21日 8:1 本文热度 62

系列:Cloudflare 实战

难度:⭐⭐☆☆☆ 不需要写代码,复制表达式粘贴即可

预计时间:20 分钟

适合谁:有网站、想加固安全防护,但不想花钱买安全产品的人


先说清楚:免费版能做什么?

很多人以为 Cloudflare 的安全功能要付费才能用,其实不是。

免费版已经自带:

  • DDoS 防护:自动,无需配置
  • 托管规则集:基础版,拦截 SQL 注入、XSS 等常见攻击
  • Bot Fight Mode:自动识别并对抗恶意机器人
  • 自定义规则每个域名 5 条,这是本文的重点

5 条规则听起来不多,但用对了能覆盖绝大多数攻击场景。本文的目标就是教你把这 5 条用到极致。


规则优先级说明

Cloudflare WAF 的规则按顺序执行,从上到下,第一条匹配就执行对应动作,不再往下看。

所以规则顺序很重要:

  1. 规则1(最高优先级)→规则2规则3规则4规则5(最低优先级)

通用原则

  • 放行规则放最前:先把合法爬虫、自己的 IP 放行,后面的规则才不会误伤
  • 封锁规则放后面:在确认不会误伤之后再封
  • 宽松动作(质询)优先于严格动作(封锁):质询让真实用户有机会过关,封锁直接拒绝

5 条规则的最优分配方案

根据实际防护效果和误伤率,推荐以下分配:

顺序
规则名
动作
覆盖场景
1
放行合法爬虫和自己的 IP
跳过(Skip)
防止误伤 Googlebot 等
2
拦截空 UA 和异常 HTTP 版本
托管质询
扫描器、低级机器人
3
保护后台登录页
托管质询
WordPress/后台暴力破解
4
封锁恶意爬虫 User-Agent
封锁(Block)
已知恶意工具
5
地区过滤
托管质询/封锁
非目标地区的攻击流量

下面逐条说明,每条都给出可直接复制的表达式。


规则 1:放行合法爬虫和白名单 IP(优先级最高)

为什么最先放行?

后面几条规则会覆盖面较广,如果不提前放行 Googlebot、Bingbot 等合法爬虫,它们可能被误拦截,导致网站搜索引擎收录受影响。

进入 WAF 自定义规则

控制台 → 点击你的域名 → 左侧「安全性」→「自定义规则」→「创建规则」

规则名: 放行合法爬虫和白名单

表达式(复制后粘贴到「编辑表达式」输入框):

  1. (cf.client.bot)or(ip.src in{你的IP地址})

把 你的IP地址 换成你自己的公网 IP(可以在 https://ip.sb 查看)。如果有多个 IP 用空格分隔:

  1. (cf.client.bot)or(ip.src in{1.2.3.45.6.7.8})

动作:跳过(Skip)→ 跳过所有剩余自定义规则

cf.client.bot 是 Cloudflare 内置字段,会识别 Googlebot、Bingbot、Applebot 等经过验证的合法爬虫,自动放行,不需要手动列举。


规则 2:拦截空 UA 和异常 HTTP 版本

场景:绝大多数正常用户(浏览器、App)都会发送 User-Agent 头,HTTP 版本也是标准的 HTTP/1.1、HTTP/2、HTTP/3。没有 UA 或使用异常 HTTP 版本的请求,几乎都是扫描器或低级攻击工具。

规则名: 拦截异常请求特征

表达式

  1. (not http.user_agent contains "Mozilla"andnot cf.client.bot)or
  2. (not http.request.version in{"HTTP/1.1""HTTP/2""HTTP/3"})

动作:托管质询(Managed Challenge)

为什么用「托管质询」而不是「封锁」? 托管质询会弹出一个无感的 JavaScript 质询(大多数真实用户 0.5 秒内自动通过),机器人无法通过。封锁则直接返回 403,真实用户也会被挡。对于不确定的流量,质询比封锁更安全。


规则 3:保护后台登录页

场景: /wp-admin、 /admin、 /login 这些路径每天都有大量暴力破解尝试,用质询来过滤机器人。

规则名: 保护后台登录页

WordPress 站点

  1. (http.request.uri.path contains "/wp-admin")or
  2. (http.request.uri.path contains "/wp-login.php")or
  3. (http.request.uri.path contains "/xmlrpc.php")

通用后台(按实际路径修改):

  1. (http.request.uri.path contains "/admin")or
  2. (http.request.uri.path contains "/login")or
  3. (http.request.uri.path contains "/dashboard")

动作:托管质询

xmlrpc.php 是 WordPress 的一个远程调用接口,经常被用来发起暴力破解,建议直接封锁:

  1. (http.request.uri.path eq "/xmlrpc.php")

动作选封锁,除非你确实有程序在使用这个接口。


规则 4:封锁已知恶意爬虫 User-Agent

场景:有一批工具(安全扫描器、内容窃取爬虫、漏洞探测工具)的 User-Agent 特征比较固定,直接封锁。

规则名: 封锁恶意爬虫UA

表达式

  1. (http.user_agent contains "python-requests")or
  2. (http.user_agent contains "Go-http-client")or
  3. (http.user_agent contains "curl")or
  4. (http.user_agent contains "wget")or
  5. (http.user_agent contains "Scrapy")or
  6. (http.user_agent contains "zgrab")or
  7. (http.user_agent contains "Nmap")or
  8. (http.user_agent contains "sqlmap")or
  9. (http.user_agent contains "nikto")or
  10. (http.user_agent contains "masscan")or
  11. (http.user_agent contains "semrushbot")or
  12. (http.user_agent contains "AhrefsBot")or
  13. (http.user_agent contains "MJ12bot")or
  14. (http.user_agent contains "DotBot")

动作:封锁(Block)

注意: curl 和 python-requests 在合法的 API 调用场景中也会出现。如果你的网站有需要用这些工具访问的 API,要么把这条规则里的对应 UA 去掉,要么在规则 1 里先把对应 IP 白名单放行。


规则 5:地区过滤

这条规则根据你的网站目标用户来决定怎么配,有三种常见场景:


场景 A:网站主要面向中国大陆用户(封锁其他地区)

  1. (not ip.geoip.country in{"CN""HK""TW""MO"})

动作:托管质询

不建议直接封锁,否则自己出国时也访问不了后台。用质询,真实用户能过,机器人不能。


场景 B:网站面向全球,但要封掉 Tor 网络

  1. (ip.src.is_in_european_union or cf.edge.server_ip.is_in_european_union)and
  2. (ip.geoip.asnum in{})

更简单的方法:直接在「安全性」→「设置」里,把「Onion Routing(洋葱路由)」关掉。通过 Tor 访问你网站的,大概率不是正常用户。


场景 C:封锁高风险地区(高攻击来源)

  1. (ip.geoip.country in{"RU""KP""IR"})

动作:托管质询或封锁

这个配置比较激进,会误伤正常来访用户。建议先用质询观察一段时间,再决定是否升级为封锁。


额外配置:不需要用规则配额的安全设置

除了 5 条自定义规则,以下配置不占用规则配额,建议全部开启:

Bot Fight Mode(自动机器人对抗)

位置:「安全性」→「Bot」→ 开启「Bot Fight Mode」

这个功能会自动识别和质询已知的恶意机器人,覆盖大量不需要自定义规则的场景。

安全级别调整

位置:「安全性」→「设置」→「安全级别」

级别
说明
适合场景
只拦截最高风险请求
日常运营,误伤率最低
中(默认)
平衡安全与体验
大多数网站
更多请求被质询
遭受攻击时
I'm Under Attack!
所有访客先等待 5 秒
正在遭受 DDoS 时临时开启

「I'm Under Attack!」 非常时用:被大规模 DDoS 攻击时临时开启,可以立刻缓解压力。但它会让所有访客(包括正常用户)等待 5 秒,不适合长期开启。

关闭 Tor / 洋葱路由访问

位置:「安全性」→「设置」→「Onion Routing」→ 关闭

通过 Tor 访问的流量成分复杂,除非你有明确需求,否则建议直接关闭。


如何查看拦截效果

配置规则后,在「安全性」→「事件」可以看到所有被拦截的请求,包括:

  • 触发的规则名
  • 来源 IP 和国家
  • 请求的 URL
  • 执行的动作(质询/封锁)

这个日志非常有用:

  • 如果看到大量正常请求被误拦截,说明规则过严,需要调整
  • 如果看到某类攻击特征,可以针对性增加规则
  • 日志保留 72 小时(免费版),付费版更长

配置后的观察建议:新规则上线后头 24 小时多看几次事件日志,确认没有误拦截真实用户,再放心让规则长期运行。


完整的 5 条规则速查

#
规则名
核心表达式
动作
1
放行合法爬虫和白名单
cf.client.bot
 或 自己的 IP
跳过
2
拦截异常请求特征
无 UA 或异常 HTTP 版本
托管质询
3
保护后台登录页
/wp-admin
、 /login 等路径
托管质询
4
封锁恶意爬虫 UA
sqlmap、nikto、Scrapy 等
封锁
5
地区过滤
按目标用户群配置
托管质询/封锁

常见问题

Q:规则配额用完了怎么办?

A:升级到 Pro 计划($20/月)可以获得更多规则配额。或者把多个条件合并到一条规则里,用 or 连接,节省配额。比如规则 3 和规则 4 如果影响不重叠,可以合并成一条。

Q:被托管质询的用户会不会觉得体验差?

A:Cloudflare 的托管质询分两种:对于大多数现代浏览器,会在后台自动完成 JavaScript 质询,用户几乎感觉不到(不超过 0.5 秒)。只有极少数情况下才会弹出需要点击的验证码。所以托管质询对真实用户的影响非常小。

Q:封锁了某个国家,搜索引擎爬虫会受影响吗?

A:规则 1 里已经用 cf.client.bot 提前放行了合法爬虫,所以 Googlebot 等会优先走规则 1,不受后面地区过滤的影响。规则顺序非常重要,不能调换。

Q:攻击者伪造 User-Agent 怎么办?

A:确实,伪造 UA 是常见手法,规则 4 对此有局限。但大部分低级扫描工具懒得伪造,能挡住一大批。更高级的攻击者,靠 Bot Fight Mode 和 Cloudflare 的行为分析来对抗。5 条规则做不到 100% 防护,目标是用最低成本挡住大多数攻击。

Q:发现某个 IP 一直在攻击,能直接封掉吗?

A:可以,在「安全性」→「WAF」→「工具」→「IP 访问规则」里,直接填 IP 或 IP 段,选封锁动作。这个操作不占用 5 条自定义规则的配额,可以单独使用。


小结

5 条规则的最优配置:

  1. 放行规则最前:合法爬虫 + 自己的 IP,防止误伤
  2. 异常请求特征质询:空 UA、异常 HTTP 版本,低成本挡扫描器
  3. 后台路径质询: /wp-admin、 /login,挡暴力破解
  4. 恶意 UA 封锁:sqlmap、nikto 等已知工具,直接封
  5. 地区过滤质询:按实际用户分布配置,减少攻击面

配合「Bot Fight Mode」和适当的安全级别,这套组合能覆盖绝大多数日常攻击场景,而且完全免费。


下一篇:《Cloudflare Email Routing 实战:5 分钟搭建免费品牌域名邮箱》

系列目录:持续更新,欢迎关注公众号。


参考链接

  • Cloudflare WAF 自定义规则文档:https://developers.cloudflare.com/waf/custom-rules/
  • WAF 表达式字段参考:https://developers.cloudflare.com/ruleset-engine/rules-language/fields/
  • Bot Fight Mode 说明:https://developers.cloudflare.com/bots/get-started/free/
  • IP 访问规则:https://developers.cloudflare.com/waf/tools/ip-access-rules/
  • Cloudflare 安全事件日志:https://developers.cloudflare.com/waf/analytics/
  • WAF 规则动作说明:https://developers.cloudflare.com/waf/custom-rules/create-dashboard/


阅读原文:原文链接


该文章在 2026/4/21 10:13:33 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-2  粤公网安备44030602007207号