Hospedagem

Fail2ban: como proteger VPS contra ataques brute force

Configure o Fail2ban na VPS para bloquear tentativas de login SSH em massa: instalação no Ubuntu/Debian, jail do sshd, integração com UFW e verificação de bans.

Samuel AkiresRedator técnico & infraestrutura
3 min de leituraAtualizado 457 palavras
Fail2ban: como proteger VPS contra ataques brute force

VPS com SSH exposto na internet recebe varreduras e tentativas de login o tempo todo. O Fail2ban lê falhas de autenticação e bloqueia o IP no firewall após um limite — sem precisar fechar a porta 22 manualmente.

1. Instalar o Fail2ban

Ubuntu / Debian
sudo apt update
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban

No Debian 12 minimal, instale também python3-systemd se o backend journal falhar: sudo apt install -y python3-systemd.

2. Configurar o jail do SSH

Não edite jail.conf. Crie jail.local com apenas o que você quer sobrescrever:

/etc/fail2ban/jail.local
[DEFAULT]
backend = systemd
banaction = ufw
findtime = 10m
maxretry = 3
bantime = 1h
ignoreip = 127.0.0.1/8 ::1 SEU.IP.FIXO.AQUI

[sshd]
enabled = true
port = ssh
maxretry = 3
bantime = 3600
OpçãoFunção
findtimeJanela em que as falhas são contadas
maxretryTentativas antes do ban
bantimeDuração do bloqueio (3600 = 1 hora)
ignoreipIPs que nunca serão banidos
banaction = ufwIntegra com UFW se já estiver em uso

3. Aplicar e verificar

Comandos úteis
sudo systemctl restart fail2ban
sudo fail2ban-client status
sudo fail2ban-client status sshd

# Desbanir IP específico
sudo fail2ban-client set sshd unbanip 203.0.113.10

# Ver regras UFW adicionadas pelo Fail2ban
sudo ufw status numbered

O status do jail sshd deve mostrar currently banned e total banned após tentativas reais de invasão. Em ambiente de teste, não force ban no seu próprio IP sem ignoreip configurado.

4. Endurecer o SSH (complemento)

  • Desative login por senha e use chave SSH (PasswordAuthentication no)
  • Troque a porta padrão 22 se fizer sentido na sua política
  • Mantenha UFW permitindo só portas necessárias
  • Atualize o sistema: sudo apt upgrade

Fail2ban reduz ruído de brute force; chave SSH e firewall fechado são a base. Para servidores de jogo na VPS, veja também o guia de otimização de performance do Minecraft.

5. Jail opcional para Nginx (painel web)

Se expõe painel ou site com login HTTP, habilite jails como nginx-http-auth ou nginx-botsearch (dependem dos logs em /var/log/nginx/). O princípio é o mesmo: filtro + limite + ban no firewall.

Erros comuns

  • Jail sshd inativo por backend errado (use systemd no Ubuntu 22.04+)
  • banaction incompatível com o firewall (UFW vs nftables puro)
  • Esquecer ignoreip e perder acesso SSH
  • Achar que Fail2ban protege contra DDoS volumétrico
  • Editar jail.conf e perder configuração no apt upgrade

Perguntas frequentes

Respostas diretas antes de contratar