Como instalar e configurar o Fail2Ban no Linux
9 min de leitura - 14 de maio de 2026

Guia passo-a-passo para instalar, configurar e testar o Fail2Ban em servidores Linux baseados em Ubuntu, Debian e RHEL.
Como instalar e configurar o Fail2Ban no Linux
O Fail2Ban monitoriza os registos do seu servidor para detetar actividades suspeitas e proíbe automaticamente os IPs ofensivos, actualizando as suas regras de firewall. Impede ataques de força bruta, reduz o ruído dos registos e funciona silenciosamente em segundo plano depois de configurado. Este guia cobre a instalação no Ubuntu/Debian, a configuração principal, a configuração da jail e algumas opções avançadas que vale a pena conhecer.
Pré-requisitos
O Fail2Ban funciona na maioria das distribuições Linux: Ubuntu, Debian, AlmaLinux, CentOS, RHEL, Rocky Linux e Fedora. Você precisará de:
- Python 3 instalado no sistema
- Acesso root ou sudo para instalação de pacotes e alterações no firewall
- Uma firewall ativa (iptables, nftables, ufw, ou firewalld)
- Ficheiros de registo que capturam tentativas de login falhadas
(/var/log/auth.logem sistemas baseados em Debian,/var/log/secureem sistemas baseados em RHEL)
Nos sistemas baseados em RHEL, active primeiro o repositório EPEL. Antes de instalar o Fail2Ban, confirme que a sua firewall está a funcionar com ufw status ou systemctl status firewalld.
Instalando o Fail2Ban no Ubuntu/Debian
Atualize seus pacotes e instale o Fail2Ban:
sudo apt update && sudo apt upgrade -y
sudo apt install fail2banHabilite o serviço para que ele inicie na inicialização e, em seguida, inicie-o:
sudo systemctl enable fail2ban
sudo systemctl start fail2banCopie a configuração padrão para um arquivo local de substituição. Sempre edite jail.local, não jail.conf, para que as atualizações de pacotes não sobrescrevam suas configurações:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localVerificar se tudo está a funcionar:
sudo systemctl status fail2ban
sudo fail2ban-client statusO primeiro comando deve mostrar "Active: active (running)". O segundo lista suas jails ativas. Confirme se o Fail2Ban está ativado no arranque com sudo systemctl is-enabled fail2ban.
Configuração das Jails
Configurações padrão
Abra o arquivo /etc/fail2ban/jail.local e ajuste a secção [DEFAULT]. Estas definições aplicam-se a todas as jails, exceto se forem substituídas:
| Parâmetro | Valor Recomendado | O que faz |
|---|---|---|
bantime | 3600 | Bloqueia um IP por 1 hora |
tempo de procura | 600 | Conta as falhas dentro de uma janela de 10 minutos |
maxretry | 3 a 5 | Falhas antes de um banimento ser acionado |
ignoreip | 127.0.0.1/8 ::1 | IPs que nunca são banidos |
Adicione seu próprio IP de gerenciamento ao ignoreip para que você não se bloqueie. Exemplo: ignoreip = 127.0.0.1/8 ::1 203.0.113.50.
Proteção SSH
Active a cadeia SSH em jail.local:
[sshd]
enabled = trueVerifique se o logpath aponta para o ficheiro de log correto para a sua distro. Se você moveu o SSH para uma porta não-padrão (por exemplo, 2222), atualize o parâmetro da porta para corresponder.
Proteção do servidor Web
Active a cadeia que corresponde ao seu servidor Web:
- Nginx:
[nginx-http-auth]para falhas de autenticação,[nginx-botsearch]para bots maliciosos - Apache:
[apache-auth]para autenticação,[apache-badbots]para bots
Prisão Recidiva
A prisão [recidive] captura IPs que continuam sendo banidos em outras prisões e aplica uma penalidade mais longa, normalmente uma semana (604.800 segundos). É útil para atacantes persistentes que alternam a sua abordagem.
Depois de fazer alterações, recarregue:
sudo systemctl restart fail2ban
sudo fail2ban-client statusTestes e monitorização
Teste de proibições
Antes de confiar no Fail2Ban em produção, teste-o. A partir de uma máquina remota (não do seu IP de administrador), tente fazer logins SSH até exceder o maxretry. Você deve ser bloqueado. Confirme com:
sudo fail2ban-client status sshdVeja as proibições acontecerem em tempo real:
tail -f /var/log/fail2ban.logSe banir acidentalmente um IP legítimo, desbanque-o:
sudo fail2ban-client set sshd unbanip 203.0.113.50Monitorização diária
Reveja o histórico de banimentos pesquisando no log:
grep "Ban\|Unban" /var/log/fail2ban.logComandos de gerenciamento úteis:
| Comando | Objetivo |
|---|---|
fail2ban-client status | Listar todas as prisões activas |
fail2ban-client banned | Mostrar todos os IPs atualmente banidos |
fail2ban-client set <jail> unbanip <IP> | Desbanir um IP específico |
fail2ban-client unban --all | Limpar todos os banimentos |
fail2ban-client set <jail> banip <IP> | Banir manualmente um IP |
Os banimentos persistem através de reinicializações. O Fail2Ban os armazena em um banco de dados SQLite em /var/lib/fail2ban/fail2ban.sqlite3.
Configuração avançada
Mudando para o nftables
o nftables é o substituto moderno do iptables. Ele lida com IPv4 e IPv6 em uma única estrutura, é melhor escalado com grandes listas de banimento e tem limitação de taxa embutida. Se estiver a utilizar o Ubuntu 22.04+, Debian 11+, ou qualquer outra distribuição recente, é a melhor escolha.
Defina-o em jail.local:
[DEFAULT]
banaction = nftables-multiportReinicie o Fail2Ban, depois verifique com sudo nft list ruleset. Você deve ver f2b-table e f2b-chain na saída. Use o iptables apenas se estiver num sistema mais antigo ou se tiver requisitos de compatibilidade.
Notificações por e-mail
Por padrão, o Fail2Ban faz banimentos silenciosos. Para receber alertas de email, adicione o seguinte à secção [DEFAULT] de jail.local:
[DEFAULT]
destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)sA ação action_mwl envia um email com os detalhes do banimento, dados WHOIS e as linhas de registo que despoletaram o banimento. Use action_mw se quiser apenas os dados WHOIS. Você precisará de um agente de transferência de e-mail como o sendmail instalado, ou um relé SMTP configurado através de algo como msmtp.
Para alertas do Slack ou do Discord, crie um script que envie um webhook e conecte-o através de um arquivo de ação personalizado em /etc/fail2ban/action.d/.
Se você estiver procurando por um servidor com acesso root completo e largura de banda ilimitada para executar o Fail2Ban, confira os servidores dedicados da FDC.

Cansado de implementações lentas ou limites de largura de banda? A FDC Servers oferece potência dedicada instantânea, alcance global e planos flexíveis criados para qualquer escala. Pronto para atualizar?
Desbloquear o desempenho agora
Lista de verificação de endurecimento do servidor Linux
Lista de verificação passo-a-passo para fortalecer um servidor Linux. Abrange SSH, firewalls, aplicação de patches, permissões de ficheiros, SELinux/AppArmor e registo de auditoria
15 min de leitura - 8 de maio de 2026
tutorial do iperf3: Testar a velocidade da rede no Linux e no Windows
10 min de leitura - 7 de maio de 2026