标签归档:CloudFlare 规则

WordPress 网站如何配置 Cloudflare 页面规则?

Cloudflare 使你可以对页面规则进行重新排序,以使某些规则优先于其他规则。由于免费帐户仅可以设定 3 个页面规则,因此我建议大家根据本文提供的教程设置下图中的 #1、#2 页面规则。图中的 #3 规则是个 301 自动重定向规则,其实是可以忽略或者通过宝塔面板的重定向功能代替。

20200905190232489
Cloudflare 允许设置 3 条免费页面规则

# 1 页面规则实例

添加 WordPress 后台链接 www.domain.com/*preview=true*
注意:www.domain.com 为演示域名,请自行替换!

  • 将『浏览器完整性检查』设置为『开』
  • 将『浏览器缓存ТТL』设置为 『30分钟』
  • 将『Always Online』设置为『关』
  • 将『安全级别』设置为『高』
  • 将『缓存级别』设置为『绕过』
  • 将『禁用应用』设置为『应用处于禁用状态』
  • 将『禁用性能』设置为『性能处于禁用状态』
20200905190254600
#1 WordPress 绕过预览 preview=true 缓存规则

# 2 页面规则实例

添加 WordPress 后台链接 www.domain.com/wp-admin*
注意:www.domain.com 为演示域名,请自行替换!

  • 将『浏览器完整性检查』设置为『开』
  • 将『浏览器缓存ТТL』设置为 『30分钟』
  • 将『Always Online』设置为『关』
  • 将『安全级别』设置为『高』
  • 将『缓存级别』设置为『绕过』
  • 将『禁用应用』设置为『应用处于禁用状态』
  • 将『禁用性能』设置为『性能处于禁用状态』
20200905190245985
#2 WordPress 绕过后台 wp-admin 缓存规则

# 3 页面规则实例

这就是一条简单的 301 重定向规则,你可以忽略本条规则。

20200905194054912
@ 根域名 301 重定向到 www 子域名规则

分享两个 CloudFlare 的 WAF 规则

本文转自明月登楼的博客,作为 cloudflare 配置资料方便自己检索。

第一个规则

1693931751-1-1024x620-1

这个规则主要是针对 CC 攻击以及各种恶意爬虫、漏洞扫描的,主要依据是 ASN、CloudFlare 合法爬虫、用户代理(UA)来作为判断标准的。

第一项是 ASN

什么是 ASN(Autonomous System Number 自治系统号)

在互联网中,一个自治系统(AS)是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。一个自治系统有时也被称为是一个路由选择域(routing domain)。一个自治系统将会分配一个全局的唯一的号码,有时我们把这个号码叫做自治系统号(ASN)。

在互联网中,一个自治系统(英文:Autonomous system, AS)是指在一个(有时是多个)实体管辖下的所有 IP 网络和路由器的全体,它们对互联网执行共同的路由策略。参看 RFC 1930 中更新的定义。比如国内阿里云 ASN:37963、腾讯云 ASN:133478、华为云 ASN:55990 等等,当然还有移动、联通、电信都有他们各自的 ASN 甚至各个地区都有。

被 CC 攻击过的如果仔细观察日志会发现每次实施 CC 攻击的时候用的代理 IP 都不一样,看似很没有规律几乎遍布全球各地,其实借助上述的 ASN 可以非常好的过滤和应对这些 IP,准确率几乎都在 80%以上。

第二项合法机器人爬虫

这个是 CloudFlare 的大数据了,理论上来说合法的爬虫 IP 地址库都是固定的,至少不会经常的变,像谷歌爬虫官方都专门发布过具体的 IP 地址段和 UA,所以 CloudFlare 拥有一个这样的大数据也一点儿都不奇怪了,规则里加上这条主要是为了不拦截合法爬虫的。

第三项用户代理

这里的用户代理就是我们常说的 UserAgent(简称 UA),至于恶意 UA 随便百度一下就一大堆,大家根据自己的需要搜索添加即可,当然也可以复制下面明月分享的表达式粘贴到 CloudFlare 使用:


(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 里创建 WAF 规则点击“编辑表达式”后粘贴进去保存即可,如下图:

1693931773-2-1024x294-1

CloudFlare 所有的 WAF 规则都可以以这样的方式汇总编辑修改的,可以说是非常科学的。

第二个规则

1693931785-3-1024x726-1

对于国内网站来说借助 DNS 的多线路解析可以很好的拦截境外恶意请求,那么对于境外站点呢?当然也是有办法的,CloudFlare 的规则里可以非常灵活的来解决,就想上面这个规则就仅允许中国、香港、台湾、澳门的 IP 请求,其他地区的一律需要“托管质询”(可以理解为国内 CDN 的验证)。

当然下面还有几个条件,统一解释下来的意思就是请求来源 IP 不是中国、香港、台湾、澳门范围内的 IP 且不是合法爬虫或者IP 威胁分数(CloudFlare 的大数据表现之一)大于等于 30 分又或者用户代理包含了"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"})

CloudFlare Web 应用防火墙规则,一键阻挡恶意访问。

CloudFlare Web应用防火墙是一种智能、集成且可扩展的解决方案,可保护您的关键业务 Web 应用程序免受恶意攻击,并且无需更改现有基础架构。

创建

登陆 https://dash.cloudflare.com/ 后,选防火墙——防火墙规则——创建防火墙规则;如果你的域名还没接入CloudFlare Cdn,请按官方提示接入后再操作。

v2-839ece1246a604920704dc96ab7fb1fe_1440w.webp

规则

我们可以使用编辑表达式的方式导入规则,也可以按图手动设置规则;

首先设置一条通过规则,让合法机器人爬虫通过(除非你不想搜索引擎收录你的网站,则可以不设);

通过规则表达式

(cf.client.bot)

设置为允许

v2-839ece1246a604920704dc96ab7fb1fe_1440w.webp

然后设置人机验证规则,例如我们网站的用户是国内较多,那么可以设置:
国家/地区不是中国大陆、香港、台湾、澳门,且不是合法机器人爬虫,且威胁分数大于或等于5,且浏览器UA不含Mozilla/,且http版本较低的访问;进行人机质询,便可以阻挡大部分恶意爬虫。

人机验证规则表达式

(not ip.geoip.country in {"CN" "HK" "TW" "MO"} and not cf.client.bot) or (cf.threat_score ge 5) or (not http.user_agent contains "Mozilla/") or (not http.request.version in {"HTTP/2" "HTTP/3" "SPDY/3.1"})

设置为Js质询或者质询都可以;然后到 防火墙——自动程序——自动程序攻击模式——开 打开CloudFlare的自动阻止规则
v2-839ece1246a604920704dc96ab7fb1fe_1440w.webp

如果还想进一步阻挡非浏览器的访问,可以在 SSl/TLS——边缘证书——最低 TLS 版本——TLS 1.3 提高TLS版本进行阻挡非浏览器以及低版本的浏览器的访问。

更多规则

手机QQ

(http.user_agent contains "QQBrowser" and http.user_agent contains "QQTheme")

微信

(http.user_agent contains "Wechat") or (http.user_agent contains "WeChat")

其它

可以给某个路径,例如:登陆路径Js质询、非大陆地区找回密码质询等等,按需求灵活配置。