Instalar e Configurar Fail2Ban para Proteger o SSH no Debian 12
Como instalar o Fail2ban no Debian 12 e proteger o SSH contra ataques
O Fail2ban é uma ferramenta essencial para aumentar a segurança de servidores Linux. Este guia passo a passo mostra como instalar o Fail2ban no Debian 12 e configurá-lo para proteger o SSH contra tentativas de login por força bruta.
1) O que é Fail2ban e por que usar
- Monitora logs de serviços (como SSH) em busca de padrões suspeitos.
- BLOQUEIA IPs temporariamente via iptables (ou firewalld/ufw) ao detectar tentativas malsucedidas.
- Reduz significativamente o risco de ataques de força bruta no SSH.
2) Requisitos prévios
- Servidor com Debian 12 rodando
- Acesso root ou usuário com sudo
- SSH ativo (se já está acessando por SSH, mantenha a sessão disponível para evitar bloqueios acidentais)
3) Passo a passo: instalar o Fail2ban
- Atualizar o sistema
sudo apt update && sudo apt upgrade -y - Instalar o Fail2ban
sudo apt install fail2ban -y - Verificar o serviço
sudo systemctl status fail2ban - Habilitar o serviço para iniciar com o boot
sudo systemctl enable fail2ban
4) Configurar o Fail2ban para SSH
- Copiar o arquivo de configuração padrão para edição
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local - Editar o arquivo
jail.localsudo nano /etc/fail2ban/jail.local - Localize a seção
[sshd](ou adicione se não existir) e ajuste:enabled = trueport = ssh(ouport = 22se necessário)logpath = /var/log/auth.log(em Debian, confirme se existe)maxretry = 3bantime = 3600(tempo do ban em segundos; 3600 = 1 hora)findtime = 600(janela de tempo para contagem de tentativas)
- Exemplo mínimo:
[sshd] enabled = true port = ssh logpath = /var/log/auth.log maxretry = 3 bantime = 3600 findtime = 600
4.b) (Opcional) Ativar proteção adicional para outros serviços
Você pode adicionar seções como [recidive], [nginx-http-auth], etc., conforme serviços usados.
5) Testar a configuração
- Reiniciar o Fail2ban
sudo systemctl restart fail2ban - Verificar status e jails ativas
sudo fail2ban-client status sudo fail2ban-client status sshd
6) Regras de firewall (opcional, mas recomendado)
- Se estiver usando
ufw:sudo ufw allow OpenSSH sudo ufw enable - Observação: Fail2ban funciona com iptables/nftables; certifique-se de não bloquear acidentalmente seu próprio IP.
7) Boas práticas adicionais
- Manter o sistema atualizado regularmente
sudo apt update && sudo apt upgrade -y - Monitorar logs do Fail2ban
sudo tail -f /var/log/fail2ban.log - Ajustar thresholds conforme o comportamento do seu tráfego
- Considerar autenticação por chave SSH e desabilitar login por senha no SSH:
- Edite
/etc/ssh/sshd_config:PasswordAuthentication no - Reinicie o SSH:
sudo systemctl reload sshd
- Edite
8) Dicas de solução de problemas
- Se o
sshdjail não aparecer:sudo fail2ban-client -V sudo fail2ban-client set sshd banip <IP> - Verifique permissões de log ou caminhos incorretos no
jail.local:grep -R "logpath" -n /etc/fail2ban
9) Considerações finais
Fail2ban é uma linha de defesa eficaz, mas não substitui boas práticas de segurança (patching, MFA, SSH com chave pública). Revise periodicamente as regras e a necessidade de bloquear IPs com alto tráfego.
Seção de Perguntas Frequentes
- É seguro reiniciar o Fail2ban? Sim. Reiniciar aplica novas regras sem interromper serviços, contanto que o SSH esteja acessível.
- Posso usar BanTime mais curto? Depende do tráfego. Em ambientes com muitos IPs legítimos, considere umban maior.
CTA
Quer mais dicas de hardening para Debian 12? Comente abaixo ou confira meus próximos posts sobre: DLP com fail2ban e psad; Configurações avançadas de SSH com Chave Pública; Monitoramento de logs com ELK Stack.