Cloudflare 防火墙规则是什么?
Cloudflare 防火墙规则是一个灵活直观的框架,网站所有者可以使用它来过滤 HTTP 请求 – 让您完全控制哪些请求能够到达您的应用程序。
防火墙规则与现有的 Cloudflare 工具完美集成,因为它们允许您将多种技术组合成一套统一的规则。例如,您可以创建一条规则来阻止来自符合特定模式的用户的流量,而不必在多个地方使用三四条不同的规则来实现相同的结果。
它们还为您提供了持续检查网站流量并相应应对威胁的优势。您可以定义表达式来告知 Cloudflare 应该查看什么或不应该查看什么,以及当满足这些特定要求时应采取何种措施。
为什么您的网站需要防火墙?
Cloudflare 主要用于降低网页加载速度并保护您的网站免受在线威胁。它还可以抵御垃圾邮件发送者、恶意软件注入和 DDoS 攻击。
大约 70% 的 WordPress 安装容易受到黑客攻击,因此更有必要使用 Cloudflare 的防火墙来保护您的网站免受不必要的威胁。您的网站需要防火墙的一些原因是:
- Cloudflare 利用三种不同类型的压缩技术(JavaScript、CSS 和 HTML)来删除不需要的空格、换行符和不必要的字符,从而减小文件大小并提高加载速度。
- 随着 HTTP/3 的引入,Cloudflare 通过单个 TCP 连接并行支持多个页面元素以及推送技术和标头压缩。
- Cloudflare WAF 可保护您的网站免受流行 CMS 工具(WordPress、Joomla 等)易受攻击的许多漏洞的影响。Cloudflare WAF 拥有超过 145 条规则,可保护您的网站免受所有类型的 Web 应用程序攻击。
- Cloudflare 具有速率限制功能,可帮助缓解 DOS 攻击、暴力登录尝试和其他针对应用层的恶意攻击。速率限制功能允许您配置阈值、定义响应并深入了解网站。
如您所见,Cloudflare 不仅通过加快您的网站速度来改善 SEO,它还提供一系列高级安全功能来保护您的网站免受攻击。
Cloudflare 防火墙规则 – 匹配和操作
Cloudflare 防火墙规则由两个主要功能组成:匹配,可让您定义过滤器以精确匹配您的流量;操作,通过该操作,您可以确定设置匹配过滤器后 Cloudflare 将采取的操作。
匹配
匹配可让您过滤掉进入您网站的任何流量。例如,如果您想限制某些国家/地区、将访问者重定向到特定位置的页面或过滤掉特定的 IP 地址,那么您可以使用匹配规则来执行此操作。
Cloudflare 推出的最重要的功能之一是已知机器人(cf.client.bot) 字段。它为您提供通过反向 DNS 查找获得的 Cloudflare 认可的良好机器人列表。您将找到 Google、Yahoo、Bing、Linkedin、Apple 等网站认可的机器人的综合列表。
注意:由于“允许列表”功能已被删除,建议您将 cf.client.bot 包含在允许规则中。这将防止 Cloudflare 防火墙规则无意中阻止良好的爬虫。
此外,Cloudflare 防火墙规则还附带一种算法,该算法通过衡量 IP 的在线声誉来为其提供威胁分数。威胁分数范围从 0 到 100,分为以下类别:
- 高 – 分数从 0 到 13;
- 中等 — 适合分数在 14 至 23 之间;
- 低 – 分数在24至48之间;
- 基本关闭 – 分数大于 49。
但是,仅仅设置匹配规则并不能起到多大作用。这时 Actions 就派上用场了。
操作
通过设置匹配的过滤器,您可以指示 Cloudflare 防火墙规则应用标准 Cloudflare 操作(阻止、JavaScript 挑战和挑战)以及新的允许操作。
- 阻止:用于阻止流量访问您的 Web 应用程序。
- JavaScript 挑战:用于阻止不支持 JavaScript 的访问者(通常是机器人)的流量。
- 挑战(Captcha):用于设置Captcha挑战以阻止潜在的机器人。
- 允许:用于允许访问者访问您的 Web 应用程序。
Cloudflare 防火墙规则实际应用的三个示例
在本节中,您将找到使用仪表板设置 Cloudflare 防火墙规则的三种方法以及它们可能有用的原因。
我们将介绍:
- 如何阻止特定国家/地区访问您的网站
- 如何使用验证码让你的 WordPress 网站更安全
- 如何防止恶意机器人流量进入您的网站
注意:设置这些规则的另一种方法是使用API和Terraform。
首先,登录您的 Cloudflare 仪表板。从那里,选择您要为其设置 Cloudflare 防火墙规则的域名。
接下来,单击顶部的“防火墙” ,然后单击“防火墙规则”。
此部分可让您设置新的防火墙规则、浏览和过滤现有规则、激活、停用、修改和删除规则。要尝试以下示例,请单击创建防火墙规则。
示例 1 – 屏蔽除美国以外的所有国家
要阻止除一个国家(在我们的示例中为美国)之外的所有国家,请按照以下步骤操作:
- 首先,给你的规则命名。
- 从字段下拉菜单中,选择国家/地区。
- 接下来,从“运算符”下拉菜单中选择“不等于”。
- 在值下拉菜单中,选择美国。
- 最后,选择一个操作下拉菜单,选择“阻止”,然后单击右下角的蓝色“部署”按钮。
相反,如果您想阻止单个国家,请从“操作员”下拉菜单 中选择“等于” ,然后按照上面提到的步骤进行操作。
表达式编辑器:
(ip.geoip.country 为“美国”)
示例 2 – WordPress 安全性
WordPress 安全是网站所有者不太重视的一件重要的事情。每天,Google 都会将大约 10,000 多个网站列入恶意软件黑名单,每周将大约 50,000 多个网站列入钓鱼黑名单。确保 WordPress 网站免受恶意软件和威胁的侵害并避免网站被屏蔽至关重要。
为什么 WordPress 安全很重要?
无论您的网站是大是小,黑客都不会在意。不管怎样,他们总能找到不同的方法来利用这些信息对付您。他们通常会寻找您的个人和财务信息,然后试图利用收集到的信息对您和您的公司造成损害。
Top Writers Review的营销经理 Mark Ronso表示:“网站被黑客入侵可能会严重损害企业的声誉。黑客通常会安装恶意软件或病毒来提取后台数据,这可能会导致客户对您的企业失去信任,并转向竞争对手。”
因此,为了确保您的业务安全,您需要通过 WordPress 插件或 Cloudflare 防火墙保护您的网站。那么,哪一个是最好的,两者之间有什么区别?
WordPress 插件与 Cloudflare 防火墙——哪个更好?
许多人选择安装免费插件来处理其网站的安全性,而不是使用 Cloudflare 等第三方工具——通常是因为它太复杂或为了省钱。实际上,Cloudflare 的安装时间不长,并且比任何其他 WordPress 插件都提供更多的功能。
以下是您应该了解的主要区别:
Cloudflare 防火墙:
- Cloudflare 防火墙与 WordPress 等 CDN 无缝集成
- Cloudflare 的自动平台优化 (APO) 会缓存您的网站并优化资产,从而提高网站的速度。
- Cloudflare 防火墙提供免费的 SSL 证书和 DNS 服务,以及强大的 DDoS 防护。
- 通过将不安全的 URL 动态重写为安全的 URL 来提高网站的速度和性能。
- 免费开始
WordPress 安全插件:
- 定期扫描您的网站是否存在恶意软件代码,并具有实时防火墙功能,可保护您的网站免受已知和未知威胁。
- 许多免费插件不提供 IP 阻止、国家阻止和防止暴力登录等功能。
- 一些 WordPress 插件允许您重命名登录网关以避免潜在的攻击。
- 您永远不知道您放弃了插件开发人员什么权限。
总而言之,大多数 WordPress 插件都不会提高您网站的速度,也不会提供 Cloudflare 防火墙提供的那么多高级功能。与免费安全插件相比,我更推荐使用 Cloudflare 防火墙来保护您的网站免受任何攻击。
如何使用 Cloudflare 防火墙保护您的 WordPress 网站
重复上述创建新的防火墙规则并命名的过程,但这次,单击编辑表达式。
这样,您就可以直接访问表达式编辑器。在字段中粘贴以下内容:
((http.request.uri.path 包含“/xmlrpc.php”) 或 (http.request.uri.path 包含“/wp-login.php”) 或 (http.request.uri.path 包含“/wp-admin/” 而不是 http.request.uri.path 包含“/wp-admin/admin-ajax.php” 而不是 http.request.uri.path 包含“/wp-admin/theme-editor.php”)) 且 ip.geoip.country ne“US”
之后,从选择操作下拉菜单中选择挑战(验证码) ,然后单击部署。
现在,您将为所有尝试访问 WordPress xmlrpc.php、wp-login.php 和 /wp-admin(admin-ajax.php 和 theme-editor.php 除外)的美国以外访问者设置验证码挑战,以阻止潜在的黑客访问您的 WordPress 网站。
如果您的登录或管理员 URL 已更改,请随意编辑原始表达式以匹配。
示例 3 – 阻止恶意机器人流量
坏机器人会执行一系列欺诈行为和恶意活动,例如广告诈骗、恶意软件攻击和数据窃取。大约40% 的互联网流量由坏机器人流量组成,在疫情期间, 2020 年 9 月至 10 月期间全球零售网站的坏机器人流量增加了 788%,导致旺季损失 8200 万美元。
阻止不良流量有助于避免攻击者试图对您的网站发起 DDoS 攻击。大多数 DDoS 攻击会将大量流量导向您的网站,使服务器过载并使其离线,从而减慢您的网站速度。
虽然要阻止的用户代理列表可能会根据您的特定需求而有所不同,但以下是一些需要考虑的常见用户代理:
- Yandex:俄罗斯的搜索引擎机器人。
- muckrack:与媒体监控服务相关。
- Qwantify:来自 Qwant 搜索引擎的机器人。
- 搜狗:中国搜索引擎机器人。
- BUbiNG:网络爬虫。
- CFNetwork:与 Apple 的网络框架相关。虽然合法的 Apple 用户会使用 CFNetwork,但一些恶意机器人或爬虫也可能冒充它。
- Scrapy:一个基于Python的网络爬虫框架。
- SemrushBot:与 Semrush SEO 工具相关联。
- AhrefsBot:来自 Ahrefs SEO 工具的机器人。
- Baiduspider:来自百度搜索引擎的机器人。
- python-requests:用于发出 HTTP 请求的 Python 库。
- 各种“爬行”和“蜘蛛”用户代理:这些可能包括合法的搜索引擎机器人,但过滤掉过度或可疑的爬行行为至关重要。
此处的过程与前面的示例类似。唯一的区别是,您应该从“选择操作”下拉菜单中选择“阻止” ,然后将以下内容粘贴到“表达式编辑器”中:
(http.user_agent contains "Yandex") or (http.user_agent contains "muckrack") or (http.user_agent contains "Qwantify") or (http.user_agent contains "Sogou") or (http.user_agent contains "BUbiNG") or (http.user_agent contains "CFNetwork") or (http.user_agent contains "Scrapy") or (http.user_agent contains "SemrushBot") or (http.user_agent contains "AhrefsBot") or (http.user_agent contains "Baiduspider") or (http.user_agent contains "python-requests") or (http.user_agent contains "crawl" and not cf.client.bot) or (http.user_agent contains "Crawl" and not cf.client.bot) or (http.user_agent contains "bot" and not http.user_agent contains "bingbot" and not http.user_agent contains "Google" and not http.user_agent contains "Twitter" and not cf.client.bot) or (http.user_agent contains "Bot" and not http.user_agent contains "Google" and not cf.client.bot) or (http.user_agent contains "Spider" and not cf.client.bot) or (http.user_agent contains "spider" and not cf.client.bot)
此规则将阻止包含字符串“crawl”、“bot”、“spider”和一些其他自定义用户代理的用户代理的机器人流量。
请记住,屏蔽用户代理需要深思熟虑。定期检查您的网站日志并根据需要调整屏蔽规则,以在安全性、性能和用户体验之间取得平衡。
如何测试防火墙规则是否有效
完成所有设置后,您应该检查 Cloudflare 防火墙规则是否有效。为此,您可以返回防火墙的“概述”部分来访问防火墙事件活动日志。在那里,您可以看到防火墙事件列表及其相关详细信息。
请注意,如果流量不大,检查防火墙规则可能需要一些时间。如果是这种情况,请等待几天并监控 Google Analytics 以确保没有异常,然后再返回 Cloudflare 并检查活动日志。
需要注意的最重要的事情是挑战和阻止事件。
当挑战和阻止事件出现在列表中时,请花点时间仔细检查它们,看看是否有任何良性机器人被阻止(而它们不应该被阻止),或者是否有任何已知的恶意机器人通过了。您需要确保不会因为设置防火墙规则时出现错误而导致任何正向流量被拒绝访问您的网站。