Servidores Linux expostos à internet recebem tentativas de acesso indevido todos os dias. Basta publicar uma porta SSH, painel administrativo, WordPress, webmail ou serviço de autenticação para começar a registrar tentativas automatizadas de login. O Fail2Ban ajuda a reduzir esse risco monitorando logs e bloqueando temporariamente IPs que apresentam comportamento suspeito.
Ele não substitui boas práticas como senhas fortes, autenticação por chave SSH, firewall, atualizações de segurança e restrição de portas. Mesmo assim, é uma camada adicional muito útil, especialmente em servidores Ubuntu que hospedam sites, sistemas PHP, bancos de dados, painéis de controle ou aplicações corporativas.
Como o Fail2Ban funciona?
O Fail2Ban lê arquivos de log, aplica filtros para identificar falhas repetidas e executa ações quando uma regra é atingida. Na prática, ele pode bloquear um IP no firewall após várias tentativas de login inválidas em um determinado período.
Essas regras são organizadas em jails. Cada jail define qual serviço será monitorado, qual filtro será usado, quantas tentativas serão permitidas, por quanto tempo o IP será bloqueado e qual ação será executada.
Instalando o Fail2Ban no Ubuntu
Em servidores Ubuntu, a instalação pode ser feita pelo gerenciador de pacotes. Antes de instalar, atualize a lista de pacotes.
%%OZI_ILB_PROTECT_ef6a59830b30d0e48da8a6e596521cb2%%
Depois da instalação, habilite e inicie o serviço:
%%OZI_ILB_PROTECT_972c7388267039b16a0ddea33cdf5357%%
Se o serviço estiver ativo, o próximo passo é criar uma configuração local. Evite editar diretamente o arquivo jail.conf, pois ele pode ser sobrescrito em atualizações. O recomendado é usar jail.local ou arquivos dentro de jail.d.
Configurando proteção para SSH
O exemplo abaixo cria uma jail simples para proteger o SSH. Ajuste a porta caso seu servidor use uma porta diferente da padrão.
%%OZI_ILB_PROTECT_823e3f22a22027321549060b82d09ccb%%
%%OZI_ILB_PROTECT_353e0d100fefcaa328de173ddd353230%%
Nessa configuração, se um IP falhar 5 vezes dentro de 10 minutos, será bloqueado por 1 hora. Em servidores muito atacados, é possível aumentar o tempo de bloqueio, mas é importante evitar regras agressivas demais para não bloquear usuários legítimos por erro de digitação.
Depois de salvar o arquivo, reinicie o serviço:
%%OZI_ILB_PROTECT_9e08e625f5449d96f4e3f43dc5967fac%%
Verificando jails ativas
Para conferir se a jail está ativa, use o comando:
%%OZI_ILB_PROTECT_f5ed1d2f14af4a2bc7ea7d6d7f655d50%%
Para ver detalhes da jail SSH:
%%OZI_ILB_PROTECT_2053041b50630e6d722601d104f39de7%%
Esse comando mostra o número de falhas detectadas, IPs bloqueados e informações da jail. Ele é útil para verificar se o Fail2Ban está realmente acompanhando os logs corretos.
Desbloqueando um IP manualmente
Se um IP legítimo for bloqueado por engano, é possível removê-lo da lista de bloqueio manualmente:
%%OZI_ILB_PROTECT_83b1530524c79196edcb9599be1912ec%%
Também é recomendável revisar os logs para entender por que o bloqueio aconteceu. Em sistemas baseados em systemd, o journalctl ajuda bastante nessa investigação.
%%OZI_ILB_PROTECT_3339817918c4048c7010902e99fa5412%%
Temos um conteúdo complementar sobre análise de logs no Linux no artigo Logs no Linux: dominando journalctl e logrotate sem mistério.
Protegendo Nginx e outros serviços
Além do SSH, o Fail2Ban pode proteger serviços como Nginx, Apache, Dovecot, Postfix, painéis administrativos e aplicações que geram logs de autenticação. Para isso, é necessário ter filtros compatíveis com o formato dos logs.
Algumas instalações já trazem filtros prontos para situações comuns, como autenticação HTTP básica no Nginx. Em outros casos, pode ser necessário criar filtros personalizados. Essa etapa exige cuidado, pois uma expressão mal construída pode deixar ataques passarem ou bloquear acessos legítimos.
Boas práticas junto com o Fail2Ban
O Fail2Ban funciona melhor quando combinado com outras medidas de segurança. Para SSH, recomenda-se usar autenticação por chave, desativar login direto do root, limitar usuários permitidos e manter o servidor atualizado. Também é importante configurar firewall para expor apenas as portas realmente necessárias.
Se o servidor já sofreu invasão ou apresenta comportamento estranho, instalar o Fail2Ban não resolve o comprometimento. Nesse caso, é necessário fazer uma análise mais ampla, revisar usuários, chaves SSH, processos, cron jobs, arquivos alterados e acessos recentes.
Conclusão
O Fail2Ban é uma solução simples e eficiente para reduzir ataques automatizados de força bruta em servidores Ubuntu. Com poucos comandos, é possível proteger o SSH e criar uma camada adicional de defesa para serviços expostos à internet.
A Saldaris Consultoria presta suporte em segurança de servidores Linux, hardening, análise de logs, configuração de firewall, Nginx, PHP-FPM e ambientes web. Se sua empresa precisa proteger melhor seus servidores ou investigar tentativas de invasão, entre em contato pelo formulário abaixo.


