本文为个人使用 Cloudflare 时提供可复用的安全规则配置参考,便于快速检索与部署。以下两条 WAF 自定义规则分别针对恶意流量识别与地域访问控制,适用于防御 CC 攻击、漏洞扫描、垃圾爬虫等常见威胁。
第一条规则:基于 ASN、合法爬虫标识与用户代理(UA)的恶意请求拦截
该规则通过三个维度综合判断请求是否可疑:
- ASN(自治系统号)过滤
ASN(Autonomous System Number)是互联网中用于标识独立网络实体的编号。例如:
阿里云:37963、45090
腾讯云:133478
华为云:55990
AWS:16509
Google Cloud:15169
攻击者常利用云服务商 IP 池发起分布式攻击,这些 IP 多归属于特定 ASN。通过屏蔽高风险 ASN,可有效拦截大量自动化攻击源。 - 排除 Cloudflare 认证的合法爬虫
cf.client.bot 是 Cloudflare 提供的布尔字段,当请求来自其认证的合法机器人(如 Googlebot、Bingbot 等)时值为 true。规则中使用 not cf.client.bot 确保不误杀搜索引擎爬虫。 - 拦截包含已知恶意关键词的 User-Agent
恶意爬虫、扫描器、自动化工具通常使用固定或特征明显的 UA。规则中列出大量典型恶意 UA 关键词(如 MJ12bot、AhrefsBot、SemrushBot、Chrome/4、Java/lib 等),一旦匹配即触发拦截。
完整表达式如下(带行号便于对照阅读):
(ip.geoip.asnum in {37963 45090 55990 45102 12816 12786 18450 197540 24961 26496 46606 54600 60068 22773 18978 7922 61317 6079 397391 46562 22616 26347 45916 22394 202594 40676 398101 396362 6167 54290 135981 21686 7303 138997 22418 140224 46475 20001 43959 41378 29802 10013 9824 4766 209 43260 7565 40676 3786 28438 13287 3786 24641 54548 43754 205544 6461 141995 8047 35916 396253 64096 40021 32097 394380 9286 16509 9370 9318 6921 7713 4788 262186 13489 21353 13213 20473 2914 24940 8100 45102 36352 63949 14061 54994 12876 14618 36351 16276 133478}
and not cf.client.bot
and http.user_agent contains "grapeshotMJ12botDotBotAhrefsBotSemrushBotUptimebotZoominfoBotBLEXBotExtLinksBotaiHitBotResearchscanDnyzBotspbotMegaIndex.ruMail.RucensysExpansegdnplusALittleproximictoutiaoPulsePointfenqarchive.orgadmantxAppEngineElectronpetalbotnetnewswireCriteobazquxnetsystemsresearchNeevaChrome/6Chrome/5Chrome/4Chrome/7Chrome/8Chrome/9Hello, worldThinkChaosJava/lib?pythonhttp-clientokhttpl9explorel9tcpid")
配置方式:
进入 Cloudflare 控制台 → 安全 → WAF → 创建自定义规则 → 选择“编辑表达式” → 粘贴上述代码 → 动作设为“阻止(Block)” → 部署。
第二条规则:限制非大中华区访问,仅允许 CN/HK/MO/TW 并放行合法爬虫
该规则适用于主要面向中国大陆及港澳台用户的网站,对境外请求实施严格验证,防止境外扫描、暴力破解或垃圾注册。
规则逻辑说明:
若请求满足以下任一条件,则触发“托管质询”(Managed Challenge):
来源国家/地区 不在 {"CN", "HK", "MO", "TW"} 范围内,且 不是 Cloudflare 认证的合法爬虫;
Cloudflare 威胁评分(cf.threat_score)≥ 30;
User-Agent 不包含 "Mozilla/"(排除非浏览器类脚本);
HTTP 协议版本 不是 HTTP/2、HTTP/3 或 SPDY/3.1(老旧协议更可能来自攻击工具)。
完整表达式如下(带行号):
(not ip.geoip.country in {"CN" "HK" "MO" "TW"} and not cf.client.bot)
or (cf.threat_score ge 30)
or (not http.user_agent contains "Mozilla/")
or (not http.request.version in {"HTTP/2" "HTTP/3" "SPDY/3.1"})
动作建议:
选择“托管质询”(Managed Challenge),而非直接阻止,以避免误伤真实用户。合法用户可通过简单验证继续访问,而自动化脚本通常无法通过。
使用提示
所有规则均基于 Cloudflare 的 自定义 WAF 规则引擎,需在对应站点启用代理(橙色云图标)后生效。
cf.client.bot 依赖 Cloudflare 的 Bot Management 服务,在免费计划中仍可使用基础判断,但高级机器人识别需付费。
建议先将规则动作设为“日志记录(Log)”观察几天,确认无误后再切换为“阻止”或“质询”。
ASN 列表可根据自身日志分析动态调整,移除误封的云服务商 ASN(如你自己的服务器所在 ASN)。
本文TAG: ASN 拦截攻击cf.client.bot 使用方法Cloudflare WAF 规则Cloudflare 免费计划安全设置Cloudflare 国内网站防护Cloudflare 地域限制Cloudflare 境外 IP 限制Cloudflare 威胁评分Cloudflare 安全配置CloudFlare 教程Cloudflare 自定义防火墙规则Cloudflare 表达式语法CloudFlare 规则Cloudflare 防 CC 攻击http.user_agent 包含判断ip.geoip.asnum 过滤WAF 规则WAF 阻止规则示例仅允许中国访问 Cloudflare恶意爬虫 UA 过滤托管质询规则明月登楼 Cloudflare防御漏洞扫描
为你推荐
- 2024-01-11PICGO+ Cloudflare R2 存储搭建图床教程
- 2023-12-17宝塔面板+oci 命令行实现Oracle甲骨文ARM VPS自动抢购脚本教程
- 2024-01-07国内网站配置 CloudFlare 如何限制国内国内关闭 Rocket Loader?
- 2023-12-01cloudflare 免费版如何防 CC 攻击?
- 2024-01-01CloudFlare Web 应用防火墙规则,一键阻挡恶意访问。
- 2024-01-01cloudflare pro 专业版如何设置防御CC攻击?
- 2024-02-24推荐几个常用的提高用户体验以及SEO优化的WordPress插件
- 2021-01-02Cloudflare 页面缓存(Page Rules)优化WordPress全站缓存配置规则教程
