Cloudflare防火墙设置指南

设置Cloudflare WAF防火墙的记录,更好的屏蔽互联网非法流量,降低VPS服务器资源耗用。

很多非备案网站都挂了Cloudflare云服务。Cloudflare主要提供的安全服务是帮助网站阻止来自网络的黑客攻击、垃圾邮件等,并提升网页的浏览速度。目前Cloudflare在全球拥有152个数据中心,国外客户通过Cloudflare的全球网络智能路由将会极大提高网络访问速度;受限国内政策,只有备案的付费客户在国内才可以享受Cloudflare的快速访问。免费用户大部分只能跨过大洋到美国服务器访问,因此速度一般。

网站放在互联网上,里面充斥了大量的恶意攻击流量,造成网站浏览速度慢及损耗大量服务器资源。Cloudflare云服务还提供了强大的防火墙WAF(Web 应用程序防火墙),可以针对漏洞提供自动保护,也可以让用户灵活地创建自定义规则。免费用户只能创建5个。中小网站服务器服务器面板一般自带有waf,也能防住恶意流量,但是要损耗孱弱的服务器资源,我们利用Cloudflare的防火墙既可以阻挡不速之客,又不消耗服务器资源。

Cloudflare防火墙的策略分为:托管质询、阻止、js质询、允许、绕过、旧版CAPTCHA 6种策略。托管质询、js质询区别见 Cloudflare“托管质询”“JS质询”到底是什么, 一般我们使用前4种策略即可满足防护要求。
防火墙的策略是有顺序的,代表了访问网站流量允许或禁止的顺序。

Cloudflare防火墙设置指南

 

首先建立一个允许策略

允许策略主要是防止非法流量伪装正规搜索引擎,它们的用户代理User-Agent设置成和正规搜索引擎一样,如Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html),让人误解为是谷歌蜘蛛在爬网。设置为第一位主要原因是正规搜索引擎通过这一条规则直接访问网站而不受下面的防火墙规则影响。这里可以加入我们不想其访问的蜘蛛。”用户代理”设置为不包含其User-Agent,再在后面的防火墙规则里面禁止或质询。如图

Cloudflare防火墙设置指南

具体规则如下,自行修改。

(cf.client.bot and not http.user_agent contains "MJ12bot" and not http.user_agent contains "PetalBot")

这条不设置问题也不大。

第二个规则设为托管质询

这个策略主要是非法流量用各种url路径扫站。这些非法流量会用各种路径扫站,它们有大量的各种ip,直接屏蔽ip无法防范,可以用ASN号进行屏蔽。ASN通俗理解就是一个网络服务商提供的ip地址集合。由于是地址集合,所以里面必然有正常流量有非法流量。我们可以查询网络日志,找到可疑的ip到ipip.net的https://tools.ipip.net/as.php 进行查询。找到ASN号。在Cloudflare防火墙里新建一个规则,”字段”设置为”ASN”,运算符设置为”包含以下各项”,填入刚才的ASN号(可以填入多个,输入后回车即可输入下一个),结果“则”选为”托管质询”。
由于可能误伤正常流量,所以需要设置url路径含正常网页的url路径能通过。设置方法是:选择”AND”,”字段”设置为”url路径”,运算符设置为”不包含”,”值”为正常网页地址(根据自己网站的url路径设置)。网页地址可以写通配地址,如:/net 说明只要url地址含/net,/net/aaa/3.html等都不受这条规则限制。
如图:

Cloudflare防火墙设置指南

表达式如下:

(ip.geoip.asnum in {14618 16509 8075 4766 25532 64022 134768 8075 22362} and not http.request.uri.path contains ".ico" and not http.request.uri.path contains "/net" and not http.request.uri.path contains "/web" and not http.request.uri.path contains ".js") or (http.user_agent contains "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)")

这条规则要注意CSR质询解决率,越低越好。”已解决质询”的为0最好,说明质询的都是机器人而不是真人。Cloudflare是根据”已解决质询/发出质询”计算的,实际你应该按”已解决质询/24小时真人访问ip量”计算,尽量不要超过5%,以减少对真人的困扰,提高真人访问体验度。可以根据网站日志等细调。

第三个规则设为js质询

这条主要是防范机器扫站,因为机器不会应对js质询。这个规则利用的是”威胁分数”和”IP列表”和”用户代理”等来判断。结果“则”选为JS质询。
威胁分数是 Cloudflare 用来确定 IP 信誉的分数,由Cloudflare根据自己的大数据确定,范围由好到差评为0-100,一般设置大于30即要进行质询;
IP列表是互联网前辈的统计,可以结合自己实际表现进行增减。由于提供的IP列表数量较大,直接配置超过了防火墙规则的字符上限,因此需要通过【管理账户】-【配置】-【列表】-【创建新列表】创建一个包含高风险IP的列表(供导入的csv在下方),再在防火墙中直接匹配此列表。
“用户代理”可以设置为有辨识度的User-Agent,如有个扫站ip用的User-Agent为python-requests,还可以填入刚才不允许通过的广告蜘蛛,如MJ12bot。

Cloudflare防火墙设置指南

表达式为:

(ip.src in $risk_ip) or (cf.threat_score gt 30 and not cf.client.bot) or (http.user_agent contains "Pixalate.com/1.0") or (http.user_agent contains "python-requests") or (http.user_agent contains "MJ12bot") or (http.user_agent contains "PetalBot")

RISK风险ip点我下载

第四个规则设为阻止

则条规则主要针对扫站点的密码、后台地址、备份文件的非法流量。网站备份文件的后缀名一般为.zip .tar.gz,探测后台的一般扫描url地址含/admin  /dede  /mange 等。这些是通配地址,比如/admin可以阻挡住如/admin1、/adminabc 如此的url链接。我们”字段”设置为”url路径”,运算符设置为”包含”,”值”为可能探测的url路径。这里需要注意的是正常的url地址可能含上述路径,遇到这种情况需要设置一个不包含规则。如/admin 里有个js文件正常网站需要调用我们需要/admin下方点击”AND”设置一个”url路径”不包含的”值” .js。如图

Cloudflare防火墙设置指南

url路径选项里面有个”包含以下各项”,需要注意的是这个各项需要填入绝对地址如/admin/login.php,填入通配地址如/admin、admin等是无效的。

这样我们即可完成Cloudflare 的防火墙设置,自己要多看网站日志,网页F12检查,细调防火墙规则,既阻挡了非法流量又不影响正常流量。

技术不断升级,请注意文章时效性。
本站文章,欢迎转发。转载请注明出处:https://www.bandwh.com/web/81.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注