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 em busca de atividades suspeitas e bloqueia automaticamente os IPs infratores, atualizando as regras da sua firewall. Impede ataques de força bruta, reduz o ruído nos registos e funciona silenciosamente em segundo plano, uma vez configurado. Este guia abrange a instalação no Ubuntu/Debian, a configuração básica, 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. Vai precisar de:
- Python 3 instalado no sistema
- Acesso de root ou sudo para a instalação de pacotes e alterações na firewall
- Um firewall ativo (iptables, nftables, ufw ou firewalld)
- Ficheiros de registo que capturam tentativas de início de sessão falhadas (
/var/log/auth.logem sistemas baseados em Debian,/var/log/secureem sistemas baseados em RHEL)
Em sistemas baseados em RHEL, ative primeiro o repositório EPEL. Antes de instalar o Fail2Ban, confirme se o seu firewall está em execução com ufw status ou systemctl status firewalld.
Instalar o Fail2Ban no Ubuntu/Debian
Atualize os seus pacotes e instale o Fail2Ban:
sudo apt update && sudo apt upgrade -y
sudo apt install fail2banAtive o serviço para que inicie no arranque e, em seguida, inicie-o:
sudo systemctl enable fail2ban
sudo systemctl start fail2banCopie a configuração padrão para um ficheiro de substituição local. Edite sempre jail.local, e não jail.conf, para que as atualizações de pacotes não substituam as suas definições:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localVerifique se tudo está a funcionar:
sudo systemctl status fail2ban
sudo fail2ban-client statusO primeiro comando deve mostrar «Active: active (running)». O segundo lista as suas jails ativas. Confirme se o Fail2Ban está ativado no arranque com sudo systemctl is-enabled fail2ban.
Configurar Jails
Definições predefinidas
Abrir /etc/fail2ban/jail.local e ajuste a [DEFAULT] . Estas definições aplicam-se a todas as jails, a menos que sejam substituídas:
| Parâmetro | Valor recomendado | O que faz |
|---|---|---|
bantime | 3600 | Bloqueia um IP durante 1 hora |
findtime | 600 | Conta as falhas num intervalo de 10 minutos |
maxretry | 3 até 5 | Falhas antes de um banimento ser acionado |
ignoreip | 127.0.0.1/8 ::1 | IPs que nunca são banidos |
Adicione o seu próprio IP de gestão para ignoreip para não ficar sem acesso. Exemplo: ignoreip = 127.0.0.1/8 ::1 203.0.113.50.
Proteção SSH
Ative a restrição SSH em jail.local:
[sshd]
enabled = trueVerifique se logpath aponta para o ficheiro de registo correto para a sua distribuição. Se tiver mudado o SSH para uma porta não padrão (por exemplo, 2222), atualize o port parâmetro para corresponder.
Proteção do servidor web
Ative a jail 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
Recidive Jail
A [recidive] jail deteta IPs que continuam a ser banidos em outros jails e aplica uma penalização mais longa, normalmente de uma semana (604 800 segundos). É útil para atacantes persistentes que variam a sua abordagem.
Após efetuar as alterações, atualize a página:
sudo systemctl restart fail2ban
sudo fail2ban-client statusTestes e Monitorização
Testar bloqueios
Antes de confiar no Fail2Ban em produção, teste-o. A partir de uma máquina remota (não o seu IP de administrador), tente inícios de sessão SSH até exceder maxretry. Deverá ser bloqueado. Confirme com:
sudo fail2ban-client status sshdVeja os bloqueios a acontecerem em tempo real:
tail -f /var/log/fail2ban.logSe bloquear acidentalmente um IP legítimo, desbloqueie-o:
sudo fail2ban-client set sshd unbanip 203.0.113.50Monitorização diária
Analise o histórico de bloqueios pesquisando no log:
grep "Ban\|Unban" /var/log/fail2ban.logComandos de gestão úteis:
| Comando | Finalidade |
|---|---|
fail2ban-client status | Listar todas as restrições ativas |
fail2ban-client banned | Mostrar todos os IPs atualmente banidos |
fail2ban-client set <jail> unbanip <IP> | Desbloquear um IP específico |
fail2ban-client unban --all | Limpar todos os bloqueios |
fail2ban-client set <jail> banip <IP> | Banir manualmente um IP |
Os bloqueios persistem após reinicializações. O Fail2Ban armazena-os numa base de dados SQLite em /var/lib/fail2ban/fail2ban.sqlite3.
Configuração avançada
Mudança para nftables
O nftables é o substituto moderno do iptables. Ele lida com IPv4 e IPv6 numa única estrutura, escala melhor com grandes listas de bloqueio e possui limitação de taxa integrada. Se estiver a utilizar o Ubuntu 22.04+, Debian 11+ ou qualquer distribuição recente, esta é a melhor escolha.
Configure-o em jail.local:
[DEFAULT]
banaction = nftables-multiportReinicie o Fail2Ban e, em seguida, verifique com sudo nft list ruleset. Deverá ver f2b-table e f2b-chain na saída. Continue a usar apenas o iptables se estiver num sistema mais antigo ou tiver requisitos de compatibilidade.
Notificações por e-mail
Por predefinição, o Fail2Ban bloqueia silenciosamente. Para receber alertas por e-mail, adicione o seguinte à [DEFAULT] secção de jail.local:
[DEFAULT]
destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)sA action_mwl ação envia um e-mail com detalhes do banimento, dados WHOIS e as linhas de registo que desencadearam o banimento. Use action_mw se quiser apenas dados WHOIS. Vai precisar de ter instalado um agente de transferência de e-mail como o sendmail, ou de ter um relé SMTP configurado através de algo como msmtp.
Para alertas no Slack ou Discord, crie um script que envie um webhook e configure-o através de um ficheiro de ação personalizada em /etc/fail2ban/action.d/.
Se estiver à procura de um servidor com acesso root total e largura de banda ilimitada para executar o Fail2Ban, consulte 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
Gestão de memória do Linux: Swap, OOM Killer & Cgroups
Como o Linux swap, o OOM killer e o cgroups funcionam em conjunto - com exemplos de configuração para bases de dados, servidores Web e hosts VPS multi-tenant.
12 min de leitura - 31 de maio de 2026
Guia de configuração do Prometheus e do node_exporter
15 min de leitura - 29 de maio de 2026