简而言之,在本教程中,您将找到命令行,您可以通过这些命令线安装和配置WordPress的fail2ban。安全的WordPress身份验证和XMLRPC.PHP总屁股。
在WordPress平台上开发的博客和网站通常是网络攻击目标。大多数攻击是大力类型的,并且针对身份验证会话或XML-RPC的开发(使用XML远程过程调用)。幸运的是,在这些情况下,Fail2BAN是非常有用的安全解决方案。如果要使用fail2ban保护WordPress站点,请按照本教程中的配置步骤操作。
首先,请确保您可以通过SSH连接访问Web服务器,并安装了Fail2BAN应用程序。
Debian上的WordPress的Fail2ban配置
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上执行安装失败的订单行:
sudo apt install fail2ban
2。下一步是为WordPress创建FAIL2BAN过滤器。在终端执行命令行以创建和编辑过滤器 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(确定)访问。
保存文件 /etc/fail2ban/filter.d/wordpress.conf
。
3。下一步是配置 “监狱” 对于WordPress。在此步骤中,大多数用户都感到困惑,因为根据托管管理系统(如果存在)或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分钟内进行了5次重复尝试,则将在Web 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。重新启动后,检查WordPress的Fail2ban有效:
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:
在此列表中找到阻塞IPS后,请确保它们被阻止并在 iptables
。我遇到了由于配置错误而导致的情况,在Fail2ban中看到它是一个被阻止的IP,但实际上它仍然可以访问 wp-login.php
或 xmlrpc.php
。
要检查一切是否正常工作,请选择一个从失败2ban列表中阻止的IP,然后在Iptables中寻找它。
执行命令行:
iptables -L -v -n --line-numbers
如果在此列表中也发现了被Fail2BAN阻止的IP,则意味着您已为WordPress配置了正确的fail2ban。
有关的: 如何在WordPress中重置管理用户密码。无需访问电子邮件。
同时,非常建议使用Fail2ban动作检查日志:
sudo tail -f /var/log/fail2ban.log
话虽如此,如果您有任何疑问或需要帮助,他们可以在评论中为您提供帮助。