Muitos que trabalham administrando ambientes web + linux  gostam de implementar o fail2ban para aumentar a sua segurança, já que ele  é um agente que monitora os logs, e verifica a quantidade de tentativas de conexão sem sucesso, bloqueando o IP suspeito, após determinado número de insucessos.  (texto control+c mais control+v do vivaolinux)

A instalação e a sua configuração são bem simples de serem executadas.

Acontece que vc precisa tomar cuidado quando o implementa em um ambiente que já possua um web server rodando. É que o fail2ban faz um parsing/análise do log do webserver para criar as regras no iptables.

Sendo assim, um log com 5 GB ou 10 GB será completamente analisado antes que o fail2ban crie as regras de bloqueio por ip, e este processo poderá consumir toda a cpu do seu servidor.

Isso aconteceu hoje, com um amigo que possui um grande ambiente web.

Depois de instalado e configurado, o fail2ban recebeu o velho e conhecido service fail2ban start, e aí o problema de performance começou.

O problema só foi resolvido depois que o paramos, limpamos os logs antigos do webserver – rotacionando-os – e depois, dando um start no fail2ban.

Fica a dica.

P.S.: Cuidado com regras de análise de logs para o bloqueio de execução de php ou quaisquer outros scripts web. Isso pode lhe causar sérios problemas para ambientes que trabalhem com CMS, como o WordPress. Ele, o fail2ban, simplesmente bloquearia muita gente. 🙂

Exemplo:

[Definition]
failregex = ^<HOST> -.*GET.*(\.php|\.asp|\.exe|\.pl|\.cgi|\scgi)
ignoreregex =