您如何为WordPress配置FAIL2BAN(WP-LOGIN,XMLRPC)

简而言之,在本教程中,您将找到命令行,您可以通过这些命令线安装和配置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 =

这意味着通过任何方法, GETPOST,将访问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.phpxmlrpc.php

要检查一切是否正常工作,请选择一个从失败2ban列表中阻止的IP,然后在Iptables中寻找它。

执行命令行:

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

如果在此列表中也发现了被Fail2BAN阻止的IP,则意味着您已为WordPress配置了正确的fail2ban。

有关的: 如何在WordPress中重置管理用户密码。无需访问电子邮件。

同时,非常建议使用Fail2ban动作检查日志:

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

话虽如此,如果您有任何疑问或需要帮助,他们可以在评论中为您提供帮助。

从2006年开始,我对技术充满热情,在StealthSetts.com上写作。我在操作系统方面拥有丰富的经验:MacOS,Windows和Linux,以及编程语言和博客平台(WordPress)和在线商店(WooCommerce,Magento,Magento,Presashop)。

您的教程,有用的提示和新闻。 您如何为WordPress配置FAIL2BAN(WP-LOGIN,XMLRPC)
发表评论