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 =