Pular para o conteúdo

Entenda o que é Fail2Ban: como funciona e exemplos práticos

Por Equipe Técnica AviraHost · 4 min de leitura · Atualizado em · fail2ban, segurança, ssh, firewall, linux, AviraHost · 0

Fail2ban acompanha registros de serviços, identifica padrões definidos em filtros e pode executar ações de bloqueio temporário. É útil contra tentativas repetidas de autenticação, mas não substitui atualizações, chaves SSH, controle de acesso ou backup.

O bloqueio depende dos logs que a ferramenta consegue ler e da ação configurada. Instalar o pacote, por si só, não comprova que um serviço está protegido.

Entenda filtro, jail e ação

Um filtro identifica eventos nos registros. Uma jail combina esse filtro com a origem dos logs, uma janela de observação e os limites de tentativas. A ação define o que fazer quando o limite é atingido, como adicionar uma regra ao firewall utilizado no ambiente.

A documentação do projeto Fail2ban apresenta o funcionamento e as ferramentas disponíveis. Cada serviço precisa de uma configuração compatível com seu formato de log.

Antes de configurar SSH

Confirme a porta efetiva do SSH, o sistema de logs e o firewall em uso. Mantenha uma sessão administrativa aberta e um meio alternativo de acesso, para não depender do serviço que será protegido.

Em ambientes com proxy, NAT ou endereços compartilhados, um bloqueio pode afetar pessoas legítimas. Verifique que os registros identificam o endereço que deve receber a restrição.

Instalação em Ubuntu ou Debian

Em distribuições que disponibilizam o pacote nos repositórios configurados:

sudo apt update
sudo apt install fail2ban
sudo systemctl status fail2ban --no-pager

Leia o estado real do serviço. Não considere uma saída de exemplo como evidência de que sua instalação funcionou.

Exemplo de jail SSH usando o journal

Não copie toda a configuração padrão para personalizá-la. Prefira um arquivo local pequeno, preservando os padrões do pacote. Conforme a documentação de jails e backends, o backend systemd utiliza o journal; não combina essa leitura com um logpath de arquivo.

Para um servidor cujo SSH usa a porta 22 e registra eventos no journal, um exemplo de arquivo /etc/fail2ban/jail.d/sshd.local é:

[sshd]
enabled = true
backend = systemd
port = 22
maxretry = 5
findtime = 10m
bantime = 15m

Esses limites são exemplos para revisão, não valores obrigatórios. Se a porta for outra, ajuste-a antes de aplicar. O backend precisa das dependências disponíveis na distribuição e de um filtro capaz de localizar os eventos do SSH.

Se o ambiente utiliza arquivo de log, escolha um backend de arquivo compatível e o logpath que realmente existe. Não copie /var/log/auth.log para um servidor que não grava esse arquivo.

Teste e confirme a proteção

Antes de aplicar alterações, valide a configuração:

sudo fail2ban-client -t

Somente após corrigir os erros e confirmar o acesso alternativo, aplique a configuração pelo procedimento do serviço. Depois confira:

sudo fail2ban-client status
sudo fail2ban-client status sshd
sudo journalctl -u fail2ban --since "30 minutes ago" --no-pager

A jail deve estar ativa e receber os registros esperados. Não provoque tentativas de login erradas na sua única conexão administrativa para testar o bloqueio.

Como investigar um bloqueio indevido

Se tiver acesso pelo console ou por outra sessão autorizada, confira a jail e o endereço listado. Para remover um bloqueio específico que você verificou como indevido:

sudo fail2ban-client set sshd unbanip IP_VERIFICADO

Substitua o marcador pelo endereço correto. Avalie a causa antes de criar exceções. Um endereço dinâmico pode mudar, e liberar redes amplas reduz a utilidade da proteção.

Limites importantes

Fail2ban não impede sozinho exploração de falhas da aplicação e não é proteção suficiente contra ataques que saturam a rede. Também não valida a qualidade de uma senha ou a segurança de uma chave. Monitore os registros e mantenha os serviços atualizados.

Se você está preparando um ambiente novo, compare os planos de VPS Linux e confirme quais tarefas de administração serão de sua responsabilidade. Para problemas de conectividade, veja o diagnóstico de timeout SSH. Não há promessa de Fail2ban pré-configurado ou de serviço de administração incluído neste guia.


Esta resposta foi útil?