如果您是在网站上运行博客或网站的网站管理员 WordPress,很可能网络安全是您的首要任务之一。 只要您的域启用了 Cloudflare,您就可以 加 WordPress- 特定的 Cloudflare 防火墙规则 以提高您网站的安全性,甚至在攻击到达您的服务器之前很久就阻止它们。
如果您使用 Cloudflare 的免费计划,您可以添加 5 条规则(专业计划为您提供 20 条)。
Cloudflare 可以轻松快速地创建防火墙规则,并且每个规则都提供了极好的灵活性: 您不仅可以对每条规则做很多事情,而且通常可以合并规则,腾出空间让您做更多事情。
在本文中,我将深入了解您可以应用的一些不同的防火墙规则来补充和增强您的 WordPress 网站现有的安全功能。
摘要:如何保护你的 WordPress 带有 Cloudflare 防火墙的网站
- Cloudflare 的 Web 应用程序防火墙 (WAF) 是一种软件工具,可让您保护您的 WordPress 网站。
- Cloudflare 防火墙规则让您 黑名单或白名单请求 根据您设置的灵活标准。
- 至 为您打造密不透风的保护 WordPress 网站,使用 Cloudflare,您可以:将您自己的 IP 地址列入白名单,保护您的管理区域,按地区或国家/地区阻止访问者,阻止恶意机器人和暴力攻击,阻止 XML-RPC 攻击,并防止垃圾评论。
将您自己的 IP 地址列入白名单
为避免后续出现问题, 将您自己网站的 IP 地址列入白名单应该是您列表中的第一项任务 before 您启用任何防火墙规则。
为什么以及如何在 Cloudflare 中将您的 IP 地址列入白名单
这主要是因为如果您选择阻止您的网站,您可能会发现自己被锁定在自己的网站之外。 WordPress 其他人的管理区域。
要将您网站的 IP 地址列入白名单,请转到 Cloudflare 仪表板安全部分并选择“WAF”。 然后点击“工具”并在“IP访问规则”框中输入您的IP地址,然后从下拉菜单中选择“白名单”。
要查找您的 IP 地址,您可以执行以下操作 Google 搜索“what's my IP”,它会返回你的 IPv4 地址,如果你需要你的 IPv6,你可以去 https://www.whatismyip.com/
请记住, 如果您的 IP 地址发生变化,您必须重新输入/将新 IP 地址列入白名单,以避免被锁定在您的管理区域之外。
除了将您网站的确切 IP 地址列入白名单之外, 您还可以选择将整个 IP 范围列入白名单。
如果您有一个动态 IP 地址(即,一个被设置为不断轻微变化的 IP 地址),那么这绝对是您更好的选择,因为不断重新输入新 IP 地址并将其列入白名单将是一个很大的痛苦。
你也可以 将您的整个国家列入白名单。
这绝对是最不安全的选择,因为它可能使您的管理区域容易受到来自您所在国家/地区的攻击。
然而, 如果您经常出差工作并且经常发现自己在访问您的 WordPress 来自不同 Wi-Fi 连接的站点,将您的国家/地区列入白名单可能是您最方便的选择。
请记住,您列入白名单的任何 IP 地址或国家/地区都将不受所有其他防火墙规则的约束,因此您不必担心为每个规则设置单独的例外。
保护 WordPress 仪表板(WP-管理区)
现在您已将 IP 地址和/或国家/地区列入白名单,是时候了 紧紧锁定您的 wp-admin 仪表板,以便只有您可以访问它。
为什么以及如何保护 WordPress Cloudflare 中的仪表板
不用说,您不希望未知的外人能够在您不知情或未经您许可的情况下访问您的管理区域并进行更改。
因此, 您需要制定防火墙规则,以防止外部访问您的仪表板。
然而, before 你锁定你的 WordPress 仪表板, 你必须做两个重要的例外。
- /wp-admin/admin-ajax.php。 此命令允许您的网站显示动态内容,因此需要某些插件从外部访问才能正常运行。 因此,即使它存储在 /wp-admin/ 文件夹中,如果您不希望您的网站向访问者显示错误消息,则需要从外部访问它。
- /wp-admin/theme-editor.php。 该命令启用 WordPress 每次更改或编辑网站主题时运行错误检查。 如果您忽略将此添加为例外,您的更改将不会保存,并且您将收到一条错误消息,内容为“无法与站点通信以检查致命错误”。
要创建防火墙规则,请先转到 Cloudflare 仪表板中的安全 > WAF,然后单击“创建防火墙规则”按钮。
要在保护 wp-admin 仪表板区域时添加这些例外,您需要创建以下规则:
- 字段:URI路径
- 运算符:包含
- 值:/wp-admin/
[和]
- 字段:URI路径
- 运算符:不包含
- 值:/wp-admin/admin-ajax.php
[和]
- 字段:URI路径
- 运算符:不包含
- 值:/wp-admin/theme-editor.php
[行动:封锁]
完成后,单击 “部署” 设置防火墙规则。
或者,您可以单击“编辑表达式”并将以下内容粘贴到:
(http.request.uri.path contains "/wp-admin/" and not http.request.uri.path contains "/wp-admin/admin-ajax.php" and not http.request.uri.path contains "/wp-admin/theme-editor.php")
封锁国家/大陆
就像您可以将国家/地区列入白名单以访问您的管理仪表板一样。
你也可以 设置防火墙规则,将国家甚至整个大陆列入黑名单,禁止查看或访问您的网站。
为什么以及如何在 Cloudflare 中阻止国家/大陆
为什么要阻止整个国家或大陆访问您的网站?
好吧,如果您的网站服务于特定国家或地理区域并且与全球无关,那么 阻止来自不相关国家和/或大陆的访问是限制来自国外的恶意软件攻击和恶意流量风险的简单方法,而不会阻止访问您网站的合法目标受众。
要创建此规则,您需要再次打开 Cloudflare 仪表板并转到 安全 > WAF > 创建防火墙规则。
要将设置更改为仅允许特定国家/地区,请输入以下内容:
- 领域:国家或大陆
- 接线员:“在”
- 价值:选择您想要的国家或大洲 白名单
(注意:如果你想只允许来自一个国家的流量,你可以输入“equals”作为操作符。)
如果您选择屏蔽特定国家或地区,请输入以下内容:
- 领域:国家或大陆
- 接线员:“不在”
- 价值:选择您想要的国家或大洲 阻止
注意:如果您需要技术支持并且您的网络托管服务商的支持团队位于您已屏蔽的国家或大陆,则此规则可能会适得其反。
对于大多数人来说,这可能不是问题,但您应该注意这一点。
这是一个示例,说明如何拒绝从某个国家/地区访问您的网站,其中向来自该国家/地区的用户显示 JavaScript 挑战 在尝试访问您的网站之前。
阻止恶意机器人
根据他们的用户代理, Cloudflare 使您能够阻止对试图渗透您网站的恶意机器人的访问。
如果您已经在使用 7G,那么您不必担心设置此规则:7G WAF 通过引用恶意机器人的综合列表来阻止服务器级别的威胁。
但是,如果您不使用 7G, 您需要配置一个防火墙规则,在恶意机器人造成任何损害之前识别并阻止它们。
为什么以及如何在 Cloudflare 中阻止恶意机器人
像往常一样,首先转到您的 Cloudflare 仪表板,然后转到 安全 > WAF > 创建防火墙规则。
然后,将您的防火墙规则表达式设置为:
- 字段:用户代理
- 运算符:“等于”或“包含”
- 值:您要阻止的恶意机器人或恶意代理的名称
就像屏蔽国家一样,机器人可以按名称单独屏蔽。 要同时阻止多个机器人,请使用右侧的“或”选项将其他机器人添加到列表中。
然后点击 “部署” 完成后按一下按钮。
然而,由于 Cloudflare 已经启动,手动阻止恶意机器人变得多余 “机器人战斗模式” 适用于所有免费用户。
和 “超级机器人战斗模式” 适用于 Pro 或 Business 计划用户。
这意味着现在所有类型的 Cloudflare 用户都会自动阻止不良机器人。
阻止蛮力攻击 (wp-login.php)
蛮力攻击,也称为 wp-login 攻击,是最常见的攻击目标 WordPress 网站。
事实上,如果您查看您的服务器日志,您可能会发现来自全球不同位置的 IP 地址形式的此类攻击的证据,这些地址试图访问您的 wp-login.php 文件。
幸好, Cloudflare 允许您设置防火墙规则以成功阻止暴力攻击。
为什么以及如何在 Cloudflare 中保护 wp-login.php
尽管大多数蛮力攻击都是自动扫描,但功能不足以通过 WordPress的防御,定个规矩来阻拦,让自己放心,还是不错的。
然而, 此规则仅适用于您是站点上唯一的管理员/用户。 如果有多个管理员,或者您的站点使用会员插件,那么您应该跳过此规则。
要创建此规则,请返回 安全 > WAF > 创建防火墙规则。
选择此规则的名称后,输入以下内容:
- 字段:URI路径
- 运算符:包含
- 值:/wp-login.php
[行动:封锁]
或者,您可以单击“编辑表达式”并将以下内容粘贴到:
(http.request.uri.path contains "/wp-login.php")
部署规则后, Cloudflare 将开始阻止来自除您的白名单 IP 之外的任何来源的所有访问 wp-login 的尝试。
作为额外的奖励, 您可以通过查看 Cloudflare 的防火墙事件部分来验证此保护是否已启动并运行, 您应该能够在其中看到任何尝试的蛮力攻击的记录。
阻止 XML-RPC 攻击 (xmlrpc.php)
另一种不太常见(但仍然很危险)的攻击类型是 XML-RPC 攻击。
XML-RPC 是一个远程过程调用 WordPress,攻击者可能会以暴力攻击为目标以获取身份验证凭据。
为什么以及如何在 Cloudflare 中阻止 XML-RPC
尽管 XML-RPC 有合法用途,例如将内容发布到多个 WordPress 同时博客或访问您的 WordPress 智能手机上的网站,您通常可以部署此规则而不必担心意外后果。
要阻止针对 XML-RPC 程序的暴力攻击,请首先访问 安全 > WAF > 创建防火墙规则。
然后创建以下规则:
- 字段:URI路径
- 运算符:包含
- 值:/xmlrpc.php
[行动:封锁]
或者,您可以单击“编辑表达式”并将以下内容粘贴到:
(http.request.uri.path contains "/xmlrpc.php")
就这样,只需几个简单的步骤,您就可以保护您的 WordPress 来自两种最常见的暴力攻击类型的网站。
防止评论垃圾邮件 (wp-comments-post.php)
如果您是网站管理员,那么您网站上的垃圾邮件只是生活中令人讨厌的事实之一。
幸好, Cloudflare Firewall 提供了多种规则,您可以部署这些规则来阻止许多常见类型的垃圾邮件,包括垃圾评论。
为什么以及如何在 Cloudflare 中阻止 wp-comments-post.php
如果评论垃圾邮件已成为您网站上的问题(或者,更好的是,如果您想主动防止它成为问题),您可以限制 wp-comments-post.php 以限制机器人流量。
这是使用 Cloudflare 在 DNS 级别完成的 JS 挑战,而且它的工作方式也比较简单:垃圾评论是自动化的,自动化的源不能处理JS。
然后他们在 JS 挑战中失败了,瞧—— 垃圾邮件在 DNS 级别被阻止,请求甚至永远不会到达您的服务器。
那么,如何创建此规则?
像往常一样, 进入安全 > WAF 页面并选择“创建防火墙规则”。
确保为该规则指定一个可识别的名称,例如“评论垃圾邮件”。
然后,设置以下内容:
- 字段:URI
- 运算符:等于
- 值:wp-comments-post.php
[和]
- 字段:请求方法
- 运算符:等于
- 值:发布
[和]
- 字段:推荐人
- 运算符:不包含
- 值:[yourdomain.com]
【动作:JS挑战】
小心将动作设置为 JS 挑战,因为这将确保在不干扰网站上的一般用户操作的情况下阻止评论。
输入这些值后, 单击“部署”以创建您的规则。
总结:如何保护您的 WordPress 具有 Cloudflare 防火墙规则的站点
在网络安全军备竞赛中,Cloudflare 防火墙规则是您的武器库中最有效的武器之一。
即使使用免费的 Cloudflare 帐户,您也可以部署许多不同的规则来保护您的 WordPress 网站抵御一些最常见的垃圾邮件和恶意软件威胁。
只需几个(大部分)简单的击键,您就可以提高网站的安全性 和 让访客顺利运行。
更多关于改善你的 WordPress 网站的安全性,请查看我的 转换指南 WordPress 网站到静态 HTML.
参考资料
https://developers.cloudflare.com/firewall/
https://developers.cloudflare.com/fundamentals/get-started/concepts/cloudflare-challenges/
https://www.websiterating.com/blog/web-hosting/glossary/what-is-cloudflare/