简而言之,在本教程中,您将找到可用于安装和配置 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 =
这意味着,无论用什么方法, GET
或 POST
,如果访问了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.php
或 xmlrpc.php
.
要检查一切是否正常运行,请从 fail2ban 列表中选择一个被阻止的 IP 并在 iptables 中查找它。
运行命令行:
iptables -L -v -n --line-numbers
如果被 fail2ban 显示阻止的 IP 也在此列表中,则表示您已为其正确配置了 fail2ban。 Word按。
相关新闻: 如何在 Word按。无法访问电子邮件。
同时,强烈建议使用fail2ban操作检查日志:
sudo tail -f /var/log/fail2ban.log
也就是说,如果您有任何疑问或需要帮助,我可以在评论中为您提供帮助。