Em resumo, neste tutorial, você encontrará as linhas de comando através das quais você pode instalar e configurar o Fail2Ban para o WordPress. Secure WordPress Authentication e XMLRPC.php Bross Ass.
Blogs e sites desenvolvidos na plataforma WordPress geralmente são alvos de ataque cibernético. A maioria dos ataques é do tipo de força bruta e está direcionando a sessão de autenticação ou a exploração do XML-RPC (chamada de procedimento remoto usando XML). Felizmente, Fail2Ban é uma solução de segurança muito útil para essas situações. Se você deseja proteger um site WordPress com Fail2Ban, siga as etapas de configuração deste tutorial.
Primeiro de tudo, verifique se você tem acesso ao servidor da Web por conexão SSH e se o aplicativo Fail2Ban está instalado.
Fail2ban Configuração do WordPress no Debian
1. Primeiro, você deve garantir que o aplicativo Fail2Ban esteja instalado e que esteja em execução no servidor. Execute a linha de comando abaixo:
systemctl status fail2ban
Na saída, você deve ver algo do formulário:
● 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
Se Fail2Ban não estiver instalado no servidor, você precisará instalá -lo. Execute a linha de pedidos para instalação Fail2ban no Debian / Ubuntu:
sudo apt install fail2ban
2. A próxima etapa é criar o filtro Fail2ban para o WordPress. Execute no terminal a linha de comando para criar e editar o filtro wordpress.conf
.
sudo nano /etc/fail2ban/filter.d/wordpress.conf
No arquivo wordpress.conf
Define filtros de autenticação do WordPress e autenticação de arquivo xmlrpc.php
, do seguinte modo:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =
Isso significa que por qualquer método, GET
ou POST
, seria acessado os arquivos wp-login.php ou xmlrpc.php, uma regra para Fail2Ban pode ser criada. A condição é que esses arquivos existem e podem ser acessados pelo invasor. Isto é, devolver o código 200 (OK) para acessar.
Salva o arquivo /etc/fail2ban/filter.d/wordpress.conf
.
3. O próximo passo é configurar “cadeia” para WordPress. Nesta etapa, a maioria dos usuários está confusa, porque as regras devem ser estabelecidas de maneira diferente, dependendo do sistema de gerenciamento de hospedagem (se existir) ou da configuração do servidor da Web.
Se você usar o Hestiacp, Vestacp ou Myvesta, crie e edite o arquivo /etc/fail2ban/jail.local
.
nano /etc/fail2ban/jail.local
Adicione este arquivo as linhas abaixo:
[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.
Ajuste os parâmetros acima de acordo com suas necessidades. Na configuração fornecida por mim, se, em 1800 minutos, houver 5 tentativas repetidas do mesmo IP, ele será bloqueado por 3600 minutos com a ajuda do Hestiacp da Web. (hestia[name=WEB]
). Aqui você precisará ajudar de acordo com o sistema que possui no servidor.
Também é muito importante e “logpath
“. A partir desses logs, são extraídos os dados com base nos quais a ação será executada. Verifique se a localização está correta.
Se você não possui um sistema de gerenciamento instalado, precisará da ação de bloquear os IPs com Fail2ban para o WordPress ser feito diretamente por iptables
. A linha de ação será a seguinte:
action = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]
Como suporte, em vez de /etc/fail2ban/jail.local
Você também pode usar um arquivo de configuração separado, como: /etc/fail2ban/jail.d/wordpress.conf
.
Depois de fazer os ajustes, aplique as alterações.
sudo systemctl restart fail2ban
4. Após reiniciar, verifique se Fail2Ban for WordPress funciona:
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:
Depois de encontrar nesta lista bloqueou os IPs, verifique se eles estão bloqueados e em iptables
. Eu conheci a situação que, devido à configuração errada, em Fail2ban para ver que é um IP bloqueado, mas na realidade ainda pode acessar wp-login.php
ou xmlrpc.php
.
Para verificar se tudo funciona corretamente, escolha um IP bloqueado na lista Fail2ban e procure -o em iptables.
Execute a linha de comando:
iptables -L -v -n --line-numbers
Se o IP que aparecer bloqueado pelo Fail2Ban também for encontrado nesta lista, isso significa que você configurou o Fail2Ban correto para o WordPress.
Relacionado: Como redefinir a senha do usuário do administrador no WordPress. Sem acesso ao e -mail.
Ao mesmo tempo, é muito aconselhável verificar o log com as ações Fail2ban:
sudo tail -f /var/log/fail2ban.log
Dito isto, se você tiver alguma preocupação ou precisar de ajuda, eles podem ajudá -lo nos comentários.