Fail2ban | Linux
- Fail2ban | Linux
Jails
- sshd: Protege contra tentativas de invasão via SSH.
- apache-auth: Lida com falhas de autenticação nos logs do Apache.
- nginx-http-auth: Monitora tentativas falhas de autenticação HTTP básica no Nginx.
- postfix: Monitora tentativas de invasão no serviço de e-mail Postfix.
- dovecot: Protege o serviço de e-mail Dovecot contra acessos não autorizados.
- vsftpd: Monitora tentativas falhas de login no servidor FTP vsftpd.
- mysqld-auth: Lida com falhas de autenticação no MySQL.
- recidive: Uma jail especial que monitora os próprios logs do Fail2Ban para identificar IPs que foram banidos várias vezes e, então, - **bane esses IPs por um período mais longo.
Passos para adicionar um novo filtro
Criar (ou editar) a configuração do jail
Você pode usar o arquivo principal de customização:
sudo nano /etc/fail2ban/jail.local
👉 ou, se preferir manter separado, crie um novo arquivo dentro de jail.d/:
sudo nano /etc/fail2ban/jail.d/meu-jail.conf
Adicionar o bloco do jail
Por exemplo, um jail para o Nginx (usando nginx-blocked):
[nginx-blocked]
enabled = true
filter = nginx-blocked
action = iptables-allports
logpath = /var/log/nginx/access.log
maxretry = 1
bantime = 172800 ; 2 dias
findtime = 600
ignoreip = 111.1111.11.11 222.222.22.22
filteraponta para um arquivo.confdentro de/etc/fail2ban/filter.d/logpathdefine o log que será monitoradobantimeefindtimecontrolam o tempo e janela de verificação
Criar o filtro correspondente
Se ainda não existe, crie o filtro em:
sudo nano /etc/fail2ban/filter.d/nginx-blocked.conf
Exemplo de filtro para códigos 404 e 444:
[Definition]
failregex = <HOST> - .* "(GET|POST).*" (404|444)
ignoreregex =
Testar o filtro
Antes de ativar, teste com:
fail2ban-regex /var/log/nginx/access.log /etc/fail2ban/filter.d/nginx-blocked.conf
👉 Isso mostra quantas linhas dos logs são capturadas pelo regex.
Recarregar o Fail2Ban
Depois de salvar os arquivos:
sudo fail2ban-client reload
ou, mais seguro:
sudo systemctl restart fail2ban
Conferir se o jail foi ativado
Liste todos os jails:
sudo fail2ban-client status
Veja detalhes do seu novo jail:
sudo fail2ban-client status nginx-blocked
Validar funcionamento
- Gere manualmente um 404 (ex.: acesse
https://seudominio.com/pagina-inexistente). - Espere alguns segundos.
- Confira se o IP foi banido:
sudo fail2ban-client status nginx-blocked
Ban e Unban IP
Ban
sudo fail2ban-client set <jail-name> banip <IP-address>
Unban
sudo fail2ban-client set <jail-name> unbanip <IP-address>