自创建以来,Cloudflare 发布了许多强大的防火墙实用程序,例如 IP 规则、CIDR 规则、ASN 规则、国家/地区规则和 HTTP 用户代理阻止等等,Cloudflare Firewall Rules 是最近添加的这些实用程序。这些规则结合了防火墙实用程序的使用方式,并为用户提供了更大的灵活性和对防火墙工作方式的控制。
在本文中,您将了解有关防火墙的所有知识、如何开始在您的网站上实施和编辑 Cloudflare 防火墙规则,以及为什么安全性如此重要。
什么是 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 Firewall Rules 由两个主要功能组成:Matching和Actions,前者可让您定义过滤器以精确匹配您的流量,后者可让您确定 Cloudflare 在您设置匹配过滤器后将采取的操作。
匹配
匹配可让您过滤掉任何进入您网站的流量。例如,如果您想限制某些国家/地区、将访问者重定向到特定位置的页面或过滤掉特定的 IP 地址,那么您可以使用匹配规则来执行此操作。
Cloudflare 引入的最重要的功能之一是已知机器人(cf.client.bot) 字段。它为您提供了 Cloudflare 批准的良好机器人列表,这些机器人是通过反向 DNS 查找获得的。您会找到一份完整的机器人列表,这些机器人已获得 Google、Yahoo、Bing、Linkedin、Apple 等网站的认可。
注意:由于“允许列表”功能已被删除,建议您将 cf.client.bot 包含在允许规则中。这将防止 Cloudflare 防火墙规则无意中阻止好的爬虫。
此外,Cloudflare Firewall Rules 还附带一种算法,通过衡量 IP 的在线声誉为 IP 提供威胁评分。威胁评分范围从 0 到 100,分为以下几类:
- 高——分数从 0 到 13;
- 中等——分数从 14 到 23;
- 低——分数从 24 到 48;
- Essentially Off – 分数大于 49。
但是,单独设置匹配规则不会有太大效果。这就是行动派上用场的地方。
动作
设置匹配过滤器后,您可以指示 Cloudflare 防火墙规则应用标准 Cloudflare 操作(阻止、JavaScript 挑战和挑战)以及新的允许操作。
- 阻止:用于阻止流量访问您的 Web 应用程序。
- JavaScript Challenge:用于阻止不支持 JavaScript 的访问者的流量,通常是机器人。
- 挑战(验证码):用于设置验证码挑战以阻止潜在的机器人。
- 允许:用于允许访问者访问您的 Web 应用程序。
Cloudflare 防火墙规则的三个实际应用示例
在本节中,您将找到三种使用仪表板设置 Cloudflare 防火墙规则的方法,以及它们可能有用的原因。
我们将涵盖:
- 如何阻止特定国家/地区访问您的网站
- 如何使用验证码让您的 WordPress 网站更安全
- 如何防止不良机器人流量进入您的网站
注意:设置这些规则的另一种方法是使用API和Terraform。
首先,登录您的 Cloudflare 仪表板。从那里,选择您要为其设置 Cloudflare 防火墙规则的域名。
接下来,单击顶部部分的防火墙,然后单击防火墙规则。
此部分允许您设置新的防火墙规则、浏览和过滤现有规则、激活、停用、修改和删除规则。要尝试以下示例,请单击创建防火墙规则。
示例 1 – 阻止除美国以外的所有国家
要阻止除一个国家以外的所有国家(在我们的示例中为美利坚合众国),请按照以下步骤操作:
- 首先,为您的规则命名。
- 从字段下拉列表中,选择国家/地区。
- 接下来,从运算符下拉列表中选择不等于。
- 在值下拉列表中,选择美国。
- 最后,选择一个操作下拉菜单,选择阻止,然后单击右下角的蓝色部署按钮。
相反,如果您想阻止单个国家/地区,请从“运营商”下拉列表中 选择“等于” ,然后按照上述步骤进行操作。
表达式编辑器:
(ip.geoip.country ne “US”)
示例 2 – WordPress 安全
WordPress 安全性是网站所有者不会考虑太多的重要事情。每天,Google 都会将大约 10,000 多个恶意软件网站列入黑名单,每周将大约 50,000 多个网站列入网络钓鱼黑名单。确保您的 WordPress 网站免受恶意软件和威胁的侵害并避免您的网站被封锁至关重要。
为什么 WordPress 安全性很重要?
不管你的网站是大是小,黑客都不管。无论哪种方式,他们都可以找到不同的方式来使用这些信息来对付您。他们通常会查找您的个人和财务信息,然后试图利用收集到的信息对您和您的公司造成损害。
Top Writers Review营销经理 Mark Ronso说:“企业的声誉可能会因网站被黑而受到严重损害。黑客通常会安装恶意软件或病毒以在后台提取数据,这可能会导致对您的业务失去信任,并导致客户转向竞争对手。”
因此,为了确保您的业务安全可靠,您需要通过 WordPress 插件或 Cloudflare 防火墙来保护您的网站。那么,哪个最好,两者之间有什么区别?
WordPress 插件与 Cloudflare 防火墙 – 哪个更好?
许多人选择安装免费插件来处理他们网站的安全性,而不是必须使用像 Cloudflare 这样的第三方工具——通常是因为它太复杂或为了省钱。实际上,Cloudflare 的安装时间并不长,并且为您提供的功能比任何其他 WordPress 插件都要多。
以下是您应该了解的主要区别:
云火防火墙:
- 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”
之后,从Choose an action下拉列表中选择Challenge (Captcha) ,然后单击Deploy。
现在,您将为所有试图访问 WordPress xmlrpc.php、wp-login.php 和 /wp-admin(admin-ajax.php 和 theme-editor.php 除外)的美国境外访问者设置验证码挑战,为了阻止潜在的黑客访问您的 WordPress 网站。
如果您的登录或管理 URL 已更改,请随意编辑原始表达式以匹配。
示例 3 – 阻止恶意机器人流量
不良机器人被指派进行许多欺诈行为和恶意活动,例如广告诈骗、恶意软件攻击和数据盗窃。大约40% 的互联网流量由不良机器人流量组成,在大流行期间, 2020 年 9 月至 2020 年 10 月期间,全球零售网站的不良机器人流量增加了 788%,导致旺季损失 8200 万美元。
阻止不良流量有助于避免攻击者试图对您的站点发起 DDoS 攻击。大多数 DDoS 攻击通过将大量流量引导至您的站点、使服务器过载并使其脱机来减慢您的站点。
这里的过程类似于前面的示例。唯一的区别是您应该从“选择操作”下拉列表中选择“阻止”并将以下内容粘贴到表达式编辑器中:
(http.user_agent 包含“Yandex”)或(http.user_agent 包含“muckrack”)或(http.user_agent 包含“Qwantify”)或(http.user_agent 包含“Sogou”)或(http.user_agent 包含“BUbiNG”)或(http.user_agent 包含“知识”)或(http.user_agent 包含“CFNetwork”)或(http.user_agent 包含“Scrapy”)或(http.user_agent 包含“SemrushBot”)或(http.user_agent 包含“AhrefsBot”)或(http.user_agent 包含“Baiduspider”)或(http.user_agent 包含“python-requests”)或(http.user_agent 包含“crawl”而不是 cf.client.bot)或(http.user_agent 包含“Crawl”而不是 cf .client.bot)或(http.user_agent 包含“bot”而不是 http.user_agent 包含“bingbot”而不是 http.user_agent 包含“Google”而不是 http.user_agent 包含“Twitter”而不是 cf.client.bot)或(http.user_agent 包含“Bot”而不是 http.user_agent 包含“Google”而不是 cf.client。 bot)或(http.user_agent 包含“蜘蛛”而不是 cf.client.bot)或(http.user_agent 包含“蜘蛛”而不是 cf.client.bot)
此规则将阻止包含字符串“crawl”、“bot”、“spider”和一些其他自定义用户代理的用户代理的机器人流量。
您可以按以下方式使用嵌套括号重写相同的规则:
(http.user_agent 包含“Yandex”)或(http.user_agent 包含“muckrack”)或(http.user_agent 包含“Qwantify”)或(http.user_agent 包含“Sogou”)或(http.user_agent 包含“BUbiNG”)或(http.user_agent 包含“知识”)或(http.user_agent 包含“CFNetwork”)或(http.user_agent 包含“Scrapy”)或(http.user_agent 包含“SemrushBot”)或(http.user_agent 包含“AhrefsBot”)或(http.user_agent 包含“Baiduspider”)或(http.user_agent 包含“python-requests”)或((http.user_agent 包含“crawl”)或(http.user_agent 包含“Crawl”)或(http.user_agent 包含“bot” “而不是 http.user_agent 包含“bingbot”而不是 http.user_agent 包含“Google”而不是 http.user_agent 包含“Twitter”)或(http.user_agent 包含“Bot”而不是 http.user_agent 包含“Google”)或(http.user_agent 包含“Spider”)或(http.user_agent 包含“spider” ) 而不是 cf.client.bot)
如何测试您的防火墙规则是否有效
完成所有设置后,您应该检查您的 Cloudflare 防火墙规则是否有效。为此,您可以返回防火墙的概述部分来访问防火墙事件活动日志。在那里,您可以看到防火墙事件列表以及与它们相关的详细信息。
请注意,如果您的流量不多,检查您的防火墙规则可能需要一些时间。如果是这种情况,请等待几天并监控 Google Analytics 以确保在返回 Cloudflare 并检查活动日志之前没有异常。
要注意的最重要的事情是挑战和阻止事件。
当挑战和阻止事件出现在列表中时,花点时间仔细检查它们,看看是否有任何好的机器人在它们不应该被阻止时被阻止,或者是否有任何已知的坏机器人通过了。您需要确保没有正流量因为设置防火墙规则的错误而被拒绝访问您的站点。