Segurança

Fail2ban: bloqueie ataques de força bruta automaticamente

Você trancou o SSH com chave, ativou o firewall — e mesmo assim os logs mostram milhares de tentativas de login. Os bots não desistem. O fail2ban é o segurança que fica de olho: ele lê os logs, percebe quem está insistindo e bane o IP automaticamente. É proteção que trabalha sozinha, 24 horas por dia.

O que o fail2ban faz

O fail2ban monitora os arquivos de log dos seus serviços em busca de padrões de ataque — como várias falhas de login seguidas do mesmo IP. Quando o limite é atingido, ele cria uma regra de firewall que bloqueia aquele IP por um tempo. O atacante bate na porta, erra algumas vezes e... some. Sem você fazer nada.

Ele funciona para muito mais que SSH: web (Apache/Nginx), e-mail, FTP, WordPress e praticamente qualquer serviço que gere log.

Instalação

sudo apt install fail2ban
sudo systemctl enable --now fail2ban

Só isso já ativa a proteção padrão para o SSH. Mas o certo é configurar direito.

Configuração: use jail.local, nunca jail.conf

O fail2ban se organiza em jails (uma "cela" por serviço). A regra de ouro: nunca edite o jail.conf (ele é sobrescrito nas atualizações). Crie um /etc/fail2ban/jail.local — ele tem prioridade e sobrevive aos updates.

Um jail.local básico e sensato:

[DEFAULT]
# Tempo de banimento (10 minutos). Use -1 para permanente.
bantime  = 10m
# Janela em que as falhas são contadas
findtime = 10m
# Nº de falhas antes de banir
maxretry = 5
# Nunca banir o seu próprio IP
ignoreip = 127.0.0.1/8 SEU.IP.FIXO.AQUI

[sshd]
enabled = true

Depois recarregue:

sudo systemctl restart fail2ban

💡 Coloque seu IP no ignoreip para não correr o risco de banir a si mesmo se errar a senha algumas vezes.

Banimento progressivo (avançado e recomendado)

Um IP que ataca hoje, ataca de novo amanhã. O fail2ban pode aumentar o tempo de banimento a cada reincidência — o primeiro ban dura minutos, o segundo horas, o terceiro dias. Isso se ativa com as opções de bantime.increment, desencorajando reincidentes sem trabalho manual.

Comandos úteis do dia a dia

sudo fail2ban-client status              # lista as jails ativas
sudo fail2ban-client status sshd         # detalhe do SSH: IPs banidos, tentativas
sudo fail2ban-client set sshd unbanip X  # desbanir um IP (se banir alguém por engano)

O status sshd é ótimo para ver o ataque acontecendo: quantas tentativas, de quantos IPs, quantos já foram banidos. É revelador na primeira vez.

Fail2ban + as outras camadas

O fail2ban não substitui nada — ele completa:

  • Com o SSH por chave, o bot já não consegue entrar; o fail2ban ainda o expulsa para limpar os logs e poupar recursos.
  • Com o firewall, você fecha portas; o fail2ban protege as que precisam ficar abertas.

Juntos, eles transformam seu servidor de alvo fácil em fortaleza silenciosa.

Proteção que roda sozinha, numa VPS sua

O fail2ban precisa de acesso ao sistema e aos logs — só possível numa VPS com root. A VittHost oferece VPS com root e IP dedicado, no Brasil e no Canadá, com proteção de rede na base:

👉 Ver planos de VPS

Continue a blindagem: garanta o HTTPS com SSL/TLS nos seus serviços web.

Compartilhar:

Pronto para hospedar seu próximo projeto?

VPS com painel pré-instalado em 1 clique. Ativação imediata.

Ver planos VPS