月光博客 » 软件应用 » Cloudflare防火墙规则设置教程

Cloudflare防火墙规则设置教程

Cloudflare是一家提供网站安全管理、性能优化等相关技术的跨国科技企业,Cloudflare可以帮助受保护站点抵御包括分布式拒绝服务攻击(DDoS, Distributed Denial of Service)在内的大多数网络攻击,确保该网站长期在线,阻止网络攻击、垃圾邮件等,同时提升网站的性能、访问速度以改善访客体验。

Cloudflare提供用户免费使用,是防御DDos的最佳解决方案之一,Cloudflare的网络容量几乎等于其他6家领先的DDoS提供商的总清洗容量的总和,最令人惊讶的是,Cloudflare在包含免费计划的所有服务计划中提供的DDoS防御服务均不计容量且不设上限。

免费的Cloudflare防火墙可以设置5条规则,设置界面灵活且直观,可以对网站应用达到细粒度控制。

很多人使用了免费的Cloudflare,但是后台功能却不会使用,特别其功能强大的防火墙功能,不用一下实在是暴殄天物,下面就介绍一些常见的Cloudflare防火墙的设置规则。

1、根据IP信誉阻止请求

防火墙表达式

(not cf.client.bot and cf.threat_score gt 2)

执行操作

质询(Captcha)

Cloudflare防火墙规则设置教程

解释:

cf.threat_score(威胁分数)表示从0到100的Cloudflare威胁评分,其中0表示低风险。大于10的值可能代表垃圾邮件发送者或机器人,大于40的值表示互联网上的不良行为者。一个常见的建议是质询分数高于10的请求并阻止分数高于50的请求。

cf.client.bot(合法机器人爬虫)当数值为true,标识来自良好的机器人或爬虫的请求。

2、选择性防盗链

防火墙表达式

(not http.referer contains "williamlong.info")

执行操作

阻止

Cloudflare防火墙规则设置教程

解释:

引用方(http.referer)表示HTTP Referer请求头,其中包含链接到当前请求页面的网页地址。上述表达式的意思是,排除指定网站之外,其他网站的盗链均阻止。如果使用这个规则,需要在Scrape Shield应用程序中禁用热链接保护。

3、登陆保护

防火墙表达式

(not ip.src in {202.96.134.0/24} and lower(http.request.uri.path) contains "/wp-admin")

执行操作

阻止

Cloudflare防火墙规则设置教程

解释:当客户端IP地址不在指定范围,并且请求的URI路径包含后台管理路径时候,阻止访问。

4、根据ASN调整规则

防火墙表达式

(ip.geoip.asnum in {37963 45090 55990} and not cf.client.bot)

执行操作

质询(Captcha)

Cloudflare防火墙规则设置教程

解释:

ASN(ip.geoip.asnum)表示与客户端IP地址关联的自治系统 (Autonomous System) 编号。

上面的那条防火墙规则,可以屏蔽阿里云、腾讯云和华为云这三家云服务商的IP地址的访问,常言道,同行是冤家,使用阿里云、腾讯云和华为云来抓取你网站的,通常都不是善类,一般情况下都是恶意采集、恶意抓取、CC攻击和DDOS攻击等等,通过ASN屏蔽可以一次屏蔽数百万IP地址,非常高效。

此外,防火墙的执行顺序就是右侧的序号,拖动序号可修改防火墙规则的执行顺序。

挑战解决率 (CSR)可以评估每个防火墙规则的优劣,这个指标的含义是指被解决了发出挑战的百分比,公式为CSR=解决的挑战数量/发出的挑战数量,这个数值越低越好。将鼠标悬停在CSR上可以显示已发布和解决的CAPTCHA挑战的数量。

越低的CSR意味着越少向实际人类发出CAPTCHA挑战,降低CSR是防火墙规则的目标,应该不断调整防火墙规则来降低CSR数值。当CSR比率为0%的时候,意味着全部请求都是非人类发出的,这时候可以考虑将规则操作更改为阻止(Block)。

好了,以上就是常见的Cloudflare防火墙用例,更为详细的技术文档,可以参见Cloudflare官方文档(英文)。

Cloudflare防火墙规则设置教程

顶一下 ▲()   踩一下 ▼()

相关文章

  1. 1
    看看   说道:
    “37963”和“45102” 都是阿里云的
    1. 看看   说道:
      可以注意一下这两个IP段,是不是经常爬取你的网站 :114.116.*.* 和114.115.*.* ,华为云的,很讨厌,禁止了还是每天风打不动大量爬取。
      支持(3反对(0回复
    1. williamlong   说道:
      也有华为云的IP爬我的网站,不过IP范围是49.4.116.0/24和49.4.43.0/24
      支持(2反对(0回复
    支持(5反对(0回复
  1. 2
    小白   说道:
    你好月光,

    我的主机在中国,客户也是中国客户,如果使用cloudflare会不会影响国内的访问速度?感谢您!
    1. williamlong   说道:
      cf付费版速度有保证,在国内有节点,cf不是做公益的,免费版在国内速度不是很快。
      支持(3反对(1回复
    支持(3反对(0回复
  1. 3
    小鱼鱼   说道:
    月光大佬,你好。

    想咨询一下关于CF的配置问题。
    我站是php的,设置了伪静态html,网站本身后台本身也可以设置 缓存,属于文件缓存。我已经设置了。
    这时,我还需要用CF缓存吗?

    曾经用CF的设置是,缓存级别选择:标准,在 速度 选项下的 那个Auto Minify的
    JavaScript
    CSS
    HTML
    这3个都勾选。

    一段时间后,网站人数多一点的时候,就出现错误 提示连接不上数据了,Can not connect to database!

    刷新网站才能正常打开。在cf中去掉勾选的 HTML 这项,发现也没有好转。

    是不是我网站本身开启了缓存,又到cf设置缓存引起这个问题的?
    1. williamlong   说道:
      可能是你网站的缓存程序有问题,正常的缓存程序应该不会出现这种错误,访问量大的话,建议不要使用伪静态,就直接生成静态html,那样就不会有这种问题。
      支持(3反对(0回复
    支持(3反对(0回复
  1. 4
    23333333   说道:
    登录保护哪个
    URL路径貌似是区分大小写的
    把其中一个改大写就能绕
    1. williamlong   说道:
      修改为 (not ip.src in {202.96.134.0/24} and lower(http.request.uri.path) contains "/wp-admin") 即可。
      支持(2反对(0回复
    支持(2反对(0回复
  1. 5
    小小的我   说道:
    月光你好。
    关于文章中的 3、登陆保护

    在规则选择 字段哪里,看的你选择的是:IP 源地址

    但 字段中还有 一个 是 X_Forwarded_For

    这两个有什么区别啊?是不是都可以做同样的事情?
    都可以设置

    客户端IP 在某个范围内 或者 范围外 就如何如何
    是一样的吗?

    期待月光大哥的解答。谢谢!
    1. williamlong   说道:
      X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。
      支持(2反对(0回复
    支持(2反对(0回复

发表留言