O Fail2ban monitora logs e bloqueia temporariamente endereços IP após tentativas repetidas de login falhadas. É comumente usado para reduzir o ruÃdo de força bruta SSH em servidores Linux públicos.
O Fail2ban funciona lendo arquivos de log, correspondendo padrões de login falhado com filtros e aplicando bloqueios temporários através de uma configuração de jail.
Ubuntu ou Debian
sudo apt update sudo apt install fail2ban sudo systemctl enable --now fail2ban
AlmaLinux, Rocky Linux, Oracle Linux ou CentOS
sudo dnf install fail2ban sudo systemctl enable --now fail2ban
Se o pacote não estiver disponÃvel, ative primeiro o repositório extra apropriado para a sua distribuição.
Criar uma configuração de jail local
Não edite diretamente o jail.conf. Crie ou edite o jail.local para que as atualizações de pacotes não sobrescrevam as suas alterações.
sudo nano /etc/fail2ban/jail.local
Um jail básico para SSH parece assim:
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5 findtime = 10m bantime = 1h
No AlmaLinux, Rocky Linux, Oracle Linux ou CentOS, os logs de SSH podem estar em /var/log/secure em vez disso:
logpath = /var/log/secure
Configurações comuns
| Configuração | O que controla |
|---|---|
enabled | Ativa ou desativa o jail. |
port | A porta do serviço que o Fail2ban deve proteger. |
filter | O filtro do Fail2ban usado para detectar tentativas falhadas. |
logpath | O arquivo de log que o Fail2ban lê. |
maxretry | Quantas falhas são permitidas antes de um bloqueio. |
findtime | A janela de tempo em que o Fail2ban conta as falhas. |
bantime | Quanto tempo o IP é bloqueado. |
ignoreip | Endereços IP que nunca devem ser bloqueados. |
Colocar o seu próprio IP na lista branca
Se tiver um IP fixo em casa ou no escritório, adicione-o ao ignoreip para não se bloquear enquanto testa:
[DEFAULT] ignoreip = 127.0.0.1/8 YOUR_IP_ADDRESS
Adicione apenas endereços IP em que confia. Não coloque na lista branca intervalos públicos amplos a menos que compreenda o impacto na segurança.
Reiniciar e verificar o Fail2ban
- Reinicie o Fail2ban após alterar a configuração do jail:
sudo systemctl restart fail2ban
- Verifique o serviço Fail2ban e o status do jail:
sudo systemctl status fail2ban --no-pager sudo fail2ban-client status sudo fail2ban-client status sshd

Desbloquear um endereço IP
sudo fail2ban-client set sshd unbanip IP_ADDRESS
Ver logs do Fail2ban
sudo journalctl -u fail2ban --since "1 hour ago" sudo tail -100 /var/log/fail2ban.log
O Fail2ban é útil, mas não substitui chaves SSH, senhas fortes, atualizações e um firewall sensato.
