Cloudflare通用防火墙规则及示例

  • A+
所属分类:Web技巧

CF向免费版用户提供了5条防火墙规则,可在 防火墙-防火墙规则处进行配置。自定义防火墙规则的目的,就是圈定包含一定特征(如IP、UA、地域、提供商等)的可疑对象,并对其进行验证码质询或阻止访问。充分认识这个目标,后续的所有逻辑都将围绕它来展开。

防火墙规则的触发机制是自上而下触发一次,高优先级的规则要放在上部。在规则设置中需要灵活组合匹配条件, and需要全部满足、 or为满足任一条件。下文提供的匹配规则,请通过编辑表达式功能修改并输入。

在开始配置防火墙规则之前,请先前往 防火墙-设置下,将Privacy Pass支持关闭,以避免一种绕过质询的可能(尽管如此,免费版的CAPTCHA依然存在可绕过的方式,所以在较严重的情况下应适当选择阻止部分访问)。

一、白名单放行
放在最高优先级的目标是允许已知的正常流量通过防火墙,因为我们后续的配置比如针对机房AS会使得验证施加于GoogleBot之类的搜索引擎爬虫,此外白名单IP可以包括自己的调试IP、已知的善意rss爬虫等。Bot可以直接选用CF提供的合法机器人爬虫,IP白名单选用包含以下各项,选择操作为允许

二、ASN验证

利用的是CF对ASN的判断。这里提到的ASN为自治网络的代码,如AS4134为中国电信。以下列表中基本是数据中心服务商的代号,因为对外提供租赁它们也是常见的网络攻击来源,而非海外真实访客常用的家庭宽带ISP。配置为ASN的包含以下各项,选择操作一般为验证码托管质询或者JS质询,在遭受严重攻击选择阻止

三、风险IP验证

利用威胁分数和IP列表的判断。前者是Cloudflare用来确定IP信誉的分数,范围由好到差评为0-100;后者由蜜罐等方式抓取,可以结合自己实际表现进行增减。
由于提供的IP列表数量较大,直接配置超过了防火墙规则的字符上限,因此需要通过 管理账户- 配置- 列表- 创建新列表创建一个包含高风险IP的列表(供导入的csv在下方),再在防火墙中直接匹配此列表。配置为IP源地址、在列表中以及威胁分数大于30。这一条由于覆盖范围较大误伤概率远高于上一条,选择操作建议为JS质询,在遭受攻击时再选择托管质询阻止

风险IP CSV:List-RiskIP下载

四、主机名细则
前面提到了通过 andor组合规则,对于一些杂项,可以通过主机名 and去限定区间,这里推荐一些常用的匹配方式。

匹配规则 解释
主机名 针对输入网站域名的配置
URL路径 针对输入网站域名的配置
国家/地区 针对访问IP来源地区的匹配
SSL/HTTPS 针对是否使用https访问的匹配

前三条内容与以上四个的组合可以很灵活地圈定范围,比如主机名+URL路径可以实现对特定目录、特定文件(比如登录页等)设置更高的验证要求。举个博主自己的例子,博主的静态资源所在目录会同步至海外源站,如下配置,就可以圈定php文件及不符合两个静态文件所在目录的访问,并阻止他们。类似的应用还有很多,可以多去思考和尝试~
Cloudflare通用防火墙规则及示例
这里也有前人总结的一些不友好的UA,对于阻止常见的扫描器等有一定的作用。这里没把它单独拿出来设置是博主觉得这是个防君子不防小人的做法,很容易绕过。在设置时,建议通过and组合主机名、http访问方式匹配,对全局开放的个人觉得意义不如前几个大,请自行结合实际去考量。

风险UA基础规则:

 

风险UA其他规则:

 

Cloudflare通用防火墙规则及示例

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: