Fail2ban é um software para prevenir ataques de força bruta. Funciona analisando logs do sistema ou serviços, tomando algumas atitudes como criação de regras no firewall e envio de alertas ao administrador de acordo com a detecção de falhas na autenticação ou qualquer outra regra via regex definida e encontrada no log alvo analisado.
Fail2ban tem a capacidade de monitorar diversos serviços como ssh, exim, postfix, dovecot, sendo capaz de reduzir a taxa de tentativas de logins não desejados. Entretanto isso não elimina os riscos de um sistema de autenticação falho e senhas fracas.
Para instalar, em sistema Debian-like, basta:
# apt install fail2ban
Filtros(filters): Um filtro é definido com expressões regulares, que correspondem a padrões de tentativas de invasões em logs.
Ações(actions): define comandos a serem executados, por exemplo, bloquear ou liberar um determinado IP.
Jail(jaulas): combina os filtros com as ações.
/etc/fail2ban/fail2ban.conf: Arquivo com configurações básicas.
/etc/fail2ban/jail.conf: arquivo com configurações de serviços monitorados, combinando filtros e ações. Na verdade, configurações feitas pelo usuário, se recomenda a utilização do jail.local ao invés de jail.conf.
/etc/fail2ban/action.d/: diretório onde ficam as regras de ações a serem tomadas, caso os filtros deêm match.
/etc/fail2ban/filter.d/: diretório com expressões e padrões para detectar os ataques.
Comandos importantes para administração:
Inicializar o serviço:
service fail2ban start
Verificar IPs bloqueados:
iptables -L
Verificar os logs do fail2ban:
tail /var/log/fail2ban.log
Desbloqueando IPs:
iptables -D fail2ban-<CHAIN_NAME> -s <IP> -j DROP
Serviços/Jails configurados:
fail2ban-client status
Checando o status do serviço, inclusive total de ips banidos e total de tentativas que falharam:
fail2ban-client status sshd
Checando o filtro (regex):
fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf