Como instalar e configurar o Fail2Ban no Linux

9 min de leitura - 14 de maio de 2026

hero section cover
Índice
  • Como instalar e configurar o Fail2Ban no Linux
  • Pré-requisitos
  • Instalando o Fail2Ban no Ubuntu/Debian
  • Configuração das Jails
  • Testes e monitorização
  • Configuração avançada
Partilhar

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.log em sistemas baseados em Debian, /var/log/secure em 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 fail2ban

Habilite o serviço para que ele inicie na inicialização e, em seguida, inicie-o:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Copie 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.local

Verificar se tudo está a funcionar:

sudo systemctl status fail2ban
sudo fail2ban-client status

O 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âmetroValor RecomendadoO que faz
bantime3600Bloqueia um IP por 1 hora
tempo de procura600Conta as falhas dentro de uma janela de 10 minutos
maxretry3 a 5Falhas antes de um banimento ser acionado
ignoreip127.0.0.1/8 ::1IPs 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 = true

Verifique 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 status

Testes 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 sshd

Veja as proibições acontecerem em tempo real:

tail -f /var/log/fail2ban.log

Se banir acidentalmente um IP legítimo, desbanque-o:

sudo fail2ban-client set sshd unbanip 203.0.113.50

Monitorização diária

Reveja o histórico de banimentos pesquisando no log:

grep "Ban\|Unban" /var/log/fail2ban.log

Comandos de gerenciamento úteis:

ComandoObjetivo
fail2ban-client statusListar todas as prisões activas
fail2ban-client bannedMostrar todos os IPs atualmente banidos
fail2ban-client set <jail> unbanip <IP>Desbanir um IP específico
fail2ban-client unban --allLimpar 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-multiport

Reinicie 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)s

A 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.

background image
O seu servidor está a travar o seu crescimento?

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

Blogue

Em destaque esta semana

Mais artigos
Lista de verificação de endurecimento do servidor Linux

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

Mais artigos