如何配置 Fail2Ban WordPress (wp-登录,xmlrpc)

简而言之,在本教程中,您将找到可用于安装和配置 Fail2Ban 的命令行 Word按。安全身份验证 WordPress 以及xmlrpc.php的暴力查询。

在该平台上开发的博客和网站 WordPress 经常成为网络攻击的目标。大多数攻击都是暴力攻击,以身份验证会话为目标或利用 XML-RPC(使用 XML 的远程过程调用)。幸运的是,对于这些情况,fail2ban 是一个非常有用的安全解决方案。如果你想保护网站安全 WordPress 使用 fail2ban,按照本教程中的配置步骤进行操作。

首先,确保您可以通过 SSH 连接访问 Web 服务器,并且已安装 fail2ban 应用程序。

Fail2Ban 配置 WordPress 在 Debian 上

1.首先,您需要确保fail2ban应用程序已在服务器上安装并运行。运行以下命令行:

systemctl status fail2ban

在输出中你应该看到类似这样的内容:

● fail2ban.service - Fail2Ban Service
     Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-03-11 00:39:32 EET; 6 days ago
       Docs: man:fail2ban(1)
   Main PID: 917 (fail2ban-server)
      Tasks: 17 (limit: 76843)
     Memory: 33.2M
        CPU: 17min 1.752s
     CGroup: /system.slice/fail2ban.service
             └─917 /usr/bin/python3 /usr/bin/fail2ban-server -xf start

如果您的服务器上没有安装 fail2ban,您将需要安装它。运行命令行在 Debian/Ubuntu 上安装 fail2ban:

sudo apt install fail2ban

2. 下一步是创建 fail2ban 过滤器 Word按。在终端中运行命令行来创建和编辑过滤器 wordpress.conf.

sudo nano /etc/fail2ban/filter.d/wordpress.conf

在文件中 wordpress.conf 设置身份验证过滤器 WordPress 以及文件 xmlrpc.php, 如下:

[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =

这意味着,无论用什么方法, GETPOST,如果访问了wp-login.php或xmlrpc.php文件,则可以创建fail2ban规则。条件是这些文件存在并且可以被攻击者访问。也就是说,访问时它应该返回代码 200(ok)。

保存文件 /etc/fail2ban/filter.d/wordpress.conf.

3. 下一步是配置“监狱” Word按。这是大多数用户感到困惑的地方,因为必须根据托管管理系统(如果有)或 Web 服务器配置以不同的方式设置规则。

如果您使用 HestiaCP, VestaCP 或 MyVesta,创建并编辑文件 /etc/fail2ban/jail.local.

nano /etc/fail2ban/jail.local

将以下行添加到此文件:

[wordpress]
enabled  = true
port     = http,https
filter   = wordpress
logpath  = /var/log/nginx/domains/*.log #or apache2.
maxretry = 5
findtime = 1800
bantime  = 3600
action   = hestia[name=WEB] #hestacp action.

根据您的需要调整上述参数。在我给出的配置中,如果在 1800 分钟的间隔内有来自同一 IP 的 5 次重复尝试,则将使用 HestiaCP 针对网络的操作将其阻止 3600 分钟。 (hestia[name=WEB])。这里您将需要根据服务器上的系统获取帮助。

同样重要的是“logpath“。从这些日志中提取将采取行动的数据。确保位置正确。

如果你没有安装管理系统,你需要使用 fail2ban 封锁 IP WordPress 直接通过 iptables。行动路线如下:

action   = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]

作为括号,而不是 /etc/fail2ban/jail.local 您还可以使用单独的文件进行配置,例如: /etc/fail2ban/jail.d/wordpress.conf.

完成调整后,应用更改。

sudo systemctl restart fail2ban

4. 重启后,检查 fail2ban 是否 WordPress 作品:

fail2ban-client status wordpress
Status for the jail: wordpress
|- Filter
|  |- Currently failed:	355
|  |- Total failed:	33873
|  `- File list: (log files per domain)
- Actions
   |- Currently banned:	127
   |- Total banned:	680
   `- Banned IP list:

一旦在此列表中找到被阻止的 IP,请确保它们也在 iptables。我遇到过这种情况:由于配置错误,我在 fail2ban 中看到 IP 被阻止,但实际上它仍然可以访问 wp-login.phpxmlrpc.php.

要检查一切是否正常运行,请从 fail2ban 列表中选择一个被阻止的 IP 并在 iptables 中查找它。

运行命令行:

iptables -L -v -n --line-numbers

如果被 fail2ban 显示阻止的 IP 也在此列表中,则表示您已为其正确配置了 fail2ban。 Word按。

相关新闻: 如何在 Word按。无法访问电子邮件。

同时,强烈建议使用fail2ban操作检查日志:

sudo tail -f /var/log/fail2ban.log

也就是说,如果您有任何疑问或需要帮助,我可以在评论中为您提供帮助。

作为科技爱好者,我从2006年开始在StealthSettings.com上愉快地撰写文章。我在操作系统方面有丰富的经验,包括macOS、Windows和Linux,还熟悉编程语言和博客平台(WordPress),以及在线商店平台(WooCommerce、Magento、PrestaShop)。

首页 » 您的 IT 教程、有用提示和新闻来源。 » 如何配置 Fail2Ban WordPress (wp-登录,xmlrpc)
发表评论