• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Code & Café

Dicas de WordPress, PHP, MySQL e mais!

  • MySQL
  • Nginx
  • WordPress
  • PHP
  • Fail2ban
  • Bash
  • Ubuntu
  • Sobre
  • Show Search
Hide Search

Mitigando ataques ao WordPress com o Fail2ban

Deixe seu Comentário

Quando você possui ou administra um ou mais sites WordPress é comum se deparar com diferentes tipos de ataques e é sua função, como administrador do sistema, garantir a segurança dos websites que estão em seu servidor.

Dois tipos de ataques comuns são:

  • Tentativas consecutivas de acesso ao site via wp-login.php;
  • Consecutivas requisições POST  ao arquivo xmlrpc.php.

Para resolver o problema usei o fail2ban que já estava instalado no meu servidor. Para ser mais específica, eu criei dois filtros no diretório /etc/fail2ban/filter.d para obter o endereço de ip de quem estivesse efetuando o ataque e em seguida atualizei o arquivo jail.conf para habilitar os dois filtros e configurar quantos acessos serão permitidos antes do ip ser banido e por quanto tempo o ip será banido. A seguir você encontratá um tutorial para que possa replicar este procedimento em seu próprio servidor:

1- Crie o arquivo wp-xmlrcp.conf dentro do diretório /etc/fail2ban/filter.d com a configuração indicada abaixo:

vim /etc/fail2ban/filter.d/wp-xmlrpc.conf
[Definition]
failregex = ^<HOST> .*POST /xmlrpc\.php.*
ignoreregex =

2- Crie também o arquivo wp-login.conf neste mesmo diretório com as seguintes configurações:

vim /etc/fail2ban/filter.d/wp-login.conf
[Definition]
failregex = ^<HOST> .*POST /wp-login\.php.*
ignoreregex =

3- Em seguida nós precisamos adicionar os nossos filtros ao arquivo /etc/fail2ban/jail.conf para que o fail2ban saiba como proceder. Esta configuração apresentada abaixo habilita os dois filtros criados anteriormente , configura o número máximo de acessos e por quanto tempo o ip permanecerá banido. Eu configurei de tal forma que após a sexta tentativa sem sucesso o IP seja banido por uma semana. Você pode alterar estes valores da forma como desejar:

vim /etc/fail2ban/jail.conf
[wp-xmlrpc]
enabled = true
port = http,https
filter = wp-xmlrpc
logpath = /var/log/nginx/*.access.log
action = iptables[name=wp-xmlrpc, port=http, protocol=tcp]
sendmail-whois[name=wp-xmlrpc, [email protected]]
maxretry = 6
bantime = 604800
[wp-login]
enabled = true
port = http,https
filter = wp-login
logpath = /var/log/nginx/*.access.log
action = iptables[name=wp-login, port=http, protocol=tcp]
sendmail-whois[name=wp-login, [email protected]]
maxretry = 6
bantime = 604800

4- Agora você vai precisar reiniciar o fail2ban. Após reiniciar você receberá dois e-mails confirmando que os filtros foram ativados.

service fail2ban restart

Pronto! Agora o fail2ban já está configurado para automaticamente mitigar atividades maliciosas em sua instalação WordPress. Se quiser ver estes filtros funcionando da prática, depois de algum tempo você pode conferir a sua iptables usando o seguinte comando:

iptables -nvL

Categoria(s): Fail2ban, Nginx, WordPress

Reader Interactions

Comentários Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Primary Sidebar

< pesquisar >

< posts recentes >

  • Qual é a diferença entre npm e nvm?
  • Criando certificados SSL para as suas instalações WordPress locais com mkcert
  • PHP: Como fazer o autoload de classes usando o Composer?

< tags >

javaScript MySQL nginx node npm Nvidia nvm php Ubuntu WordPress WP-CLI

< categorias >

© 2023 · Code & Café ·