Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

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

9 min de leitura  ·  Guia técnico

Fail2Ban é um sistema de prevenção contra intrusões que monitora logs de serviços em tempo real e bloqueia automaticamente endereços IP que apresentam comportamento suspeito. Esta ferramenta protege servidores Linux contra ataques de força bruta, tentativas de login maliciosas e outras atividades prejudiciais através da análise de padrões nos arquivos de log.

Pré-requisitos

  • Servidor Linux com Ubuntu 22.04 LTS ou CentOS 8
  • Acesso root ou usuário com privilégios sudo
  • Firewall iptables ou firewalld configurado
  • Serviços como SSH, Apache ou Nginx em execução
  • Python 3.6 ou superior instalado no sistema

Como o Fail2Ban funciona na prática

O funcionamento do Fail2Ban baseia-se em três componentes principais: filtros, ações e jails. Os filtros definem expressões regulares que identificam padrões suspeitos nos logs, as ações determinam o que fazer quando uma ameaça é detectada, e as jails combinam filtros e ações para proteger serviços específicos.

Quando o Fail2Ban detecta tentativas repetidas de login falhadas ou outros padrões maliciosos, ele executa uma ação predefinida, geralmente adicionando uma regra no firewall para bloquear o IP ofensor por um período determinado. O processo acontece automaticamente, sem intervenção manual.

  1. O daemon monitora continuamente os arquivos de log especificados
  2. Aplica filtros regex para identificar eventos suspeitos
  3. Conta as ocorrências dentro de uma janela de tempo
  4. Executa a ação de banimento quando o limite é atingido
  5. Remove automaticamente o bloqueio após o tempo configurado

Instalação do Fail2Ban no Ubuntu 22.04

A instalação do Fail2Ban no Ubuntu é simples através do gerenciador de pacotes apt. O processo inclui a instalação do pacote principal e suas dependências necessárias.

sudo apt update
sudo apt install fail2ban -y

Após a instalação, verifique se o serviço está ativo:

sudo systemctl status fail2ban

Output esperado:

● fail2ban.service - Fail2Ban Service
   Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2024-01-15 10:30:45 UTC; 2min ago

Para iniciar automaticamente o Fail2Ban na inicialização do sistema:

sudo systemctl enable fail2ban

Configuração básica de proteção SSH

A configuração SSH do Fail2Ban é uma das implementações mais importantes para proteger servidores contra ataques de força bruta. O arquivo de configuração principal está localizado em /etc/fail2ban/jail.conf, mas as personalizações devem ser feitas em /etc/fail2ban/jail.local.

Crie o arquivo de configuração local:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Edite o arquivo para configurar a proteção SSH:

sudo nano /etc/fail2ban/jail.local

Adicione ou modifique a seção SSH:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600

Reinicie o serviço para aplicar as configurações:

sudo systemctl restart fail2ban

Esta configuração bloqueia IPs que falharem no login SSH 3 vezes em 10 minutos, mantendo o bloqueio por 1 hora.

Monitoramento e gerenciamento de IPs bloqueados

O monitoramento do Fail2Ban permite verificar o status das jails ativas, IPs bloqueados e estatísticas de proteção. Utilize o comando fail2ban-client para gerenciar o sistema.

Para verificar o status geral:

sudo fail2ban-client status

Output esperado:

Status
|- Number of jail:      1
`- Jail list:   sshd

Para ver detalhes específicos da jail SSH:

sudo fail2ban-client status sshd

Para desbloquear um IP específico manualmente:

sudo fail2ban-client set sshd unbanip 192.168.1.100

Para bloquear um IP manualmente:

sudo fail2ban-client set sshd banip 192.168.1.100

Consulte os logs do Fail2Ban para análise detalhada:

sudo tail -f /var/log/fail2ban.log

Configuração avançada para múltiplos serviços

A proteção de múltiplos serviços com Fail2Ban permite estender a segurança além do SSH, incluindo servidores web, email e FTP. Cada serviço requer uma configuração específica de jail.

Para proteger o Apache contra ataques HTTP:

[apache-auth]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/error.log
maxretry = 5
bantime = 7200

Para proteger o Nginx:

[nginx-http-auth]
enabled = true
port = http,https
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 5
bantime = 7200

Para proteger serviços de email Postfix:

[postfix]
enabled = true
port = smtp,465,submission
filter = postfix
logpath = /var/log/mail.log
maxretry = 3
bantime = 3600

Após adicionar novas jails, sempre reinicie o serviço:

sudo systemctl restart fail2ban

Verifique se todas as jails estão ativas:

sudo fail2ban-client status

Problemas comuns e como resolver

Fail2Ban não está bloqueando IPs suspeitos

Causa: Configuração incorreta do caminho dos logs ou filtros inadequados para o formato do log.
Solução: Verifique se o caminho do logpath está correto e se o filtro corresponde ao formato dos logs. Use sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf para testar filtros.

Serviço Fail2Ban falha ao iniciar

Causa: Erro de sintaxe no arquivo de configuração ou dependências não atendidas.
Solução: Execute sudo fail2ban-client -t para testar a configuração. Verifique os logs com sudo journalctl -u fail2ban para identificar erros específicos.

IP próprio foi bloqueado acidentalmente

Causa: Múltiplas tentativas de login falhadas do próprio administrador ou falta de whitelist.
Solução: Desbloqueie o IP com sudo fail2ban-client set sshd unbanip SEU_IP e adicione IPs confiáveis na seção ignoreip do arquivo de configuração.

Bloqueios não estão sendo removidos automaticamente

Causa: Configuração incorreta do bantime ou problemas com o firewall.
Solução: Verifique se o bantime está configurado corretamente e se o Fail2Ban tem permissões para modificar regras do iptables. Reinicie o serviço se necessário.

Perguntas frequentes sobre Fail2Ban

O que acontece quando o Fail2Ban bloqueia um IP?

Quando o Fail2Ban detecta tentativas suspeitas, ele adiciona uma regra temporária no firewall (iptables ou firewalld) bloqueando o IP por um período configurado. O IP fica impedido de acessar o serviço protegido até o tempo de banimento expirar.

Como saber se meu IP foi bloqueado pelo Fail2Ban?

Você pode verificar IPs bloqueados com o comando 'fail2ban-client status sshd' para SSH ou consultando os logs em /var/log/fail2ban.log. Se não conseguir conectar via SSH e receber timeout, pode estar bloqueado.

É possível desbloquear um IP manualmente no Fail2Ban?

Sim, você pode desbloquear um IP específico usando o comando 'fail2ban-client set sshd unbanip SEU_IP'. Também é possível adicionar IPs confiáveis na whitelist do arquivo de configuração para evitar bloqueios acidentais.

Qual a diferença entre Fail2Ban e CSF?

Fail2Ban monitora logs em tempo real e aplica bloqueios temporários baseados em padrões de tentativas falhadas. CSF é um firewall mais completo que inclui funcionalidades similares ao Fail2Ban, mas oferece proteção mais ampla contra diversos tipos de ataques.

O Fail2Ban funciona com todos os serviços do servidor?

O Fail2Ban pode proteger qualquer serviço que gere logs de autenticação, incluindo SSH, Apache, Nginx, Postfix, Dovecot e FTP. Cada serviço precisa de uma configuração específica (jail) que define os padrões de log a monitorar.

Conclusão

O Fail2Ban representa uma camada essencial de segurança para servidores Linux, oferecendo proteção automatizada contra ataques de força bruta e tentativas de intrusão. Sua implementação adequada reduz significativamente os riscos de comprometimento do sistema.

  • Configure jails específicas para cada serviço crítico do seu servidor
  • Monitore regularmente os logs para ajustar filtros e tempos de banimento
  • Mantenha uma whitelist atualizada com IPs confiáveis para evitar bloqueios acidentais

Leia também

Precisa de ajuda com segurança do servidor?

A AviraHost oferece servidores VPS Linux pré-configurados com ferramentas de segurança essenciais. Nossa equipe técnica pode auxiliar na implementação e configuração do Fail2Ban para máxima proteção do seu ambiente.

Conheça nossos planos de VPS Linux

  • 0 Os usuários acharam isso útil
  • fail2ban, segurança, ssh, firewall, linux, AviraHost
Esta resposta foi útil?

Artigos Relacionados

Instalando painel de gerenciamento de hospedagem VirtualMin.

O virtualmin é um painel de gerenciamento de hospedagem de sites gratuito, que é suportado por...

Como usar a ferramenta oficial de acesso remoto do Windows no PC e celular

1. Pelo menu Iniciar, acesse os “Acessórios do Windows” e abra o “Conexão de Área de Trabalho...

Como acessar o painel de gerenciamento dos meus Serviços.

Para acessar o painel de gerenciamento do seu serviço basta seguir o passo á passo abaixo.   1....

Compreendendo o Servidor VPS: O que é e Como Funciona!

Um servidor VPS (Virtual Private Server) é uma solução de hospedagem na qual um servidor físico é...

Como trocar a senha do usuário root do servidor VPS ou Dedicado.

Para trocar a senha do usuário root em um servidor VPS da AviraHost, você pode seguir os...