Pesquisar

Como Configurar o Fail2Ban para Bloquear IPs de Servidores de Spam no Postfix

Em servidores de e-mail, uma das maiores ameaças recorrentes são os envios abusivos de spam, geralmente originados de IPs maliciosos que tentam burlar filtros SMTP. Para combater isso, uma das soluções mais eficazes é utilizar o Fail2Ban, uma ferramenta de segurança que monitora logs e bloqueia IPs com comportamentos maliciosos.

Neste artigo do Blog Dolutech, você aprenderá como configurar o Fail2Ban para detectar e bloquear automaticamente IPs que tentam enviar spam através do Postfix, analisando logs como /var/log/mail.log. Vamos estruturar a solução com um filtro personalizado, uma jail específica e configuração automática de regras no iptables.

image 7
Fail2ban Spam

O que é o Fail2Ban?

O Fail2Ban é uma aplicação que monitora arquivos de log de serviços como SSH, Apache, Postfix, entre outros, buscando por padrões de ataques ou abusos. Quando encontra comportamentos suspeitos, o Fail2Ban pode bloquear temporariamente ou permanentemente os IPs utilizando regras de firewall (iptables, nftables, firewalld, etc.), temos um artigo no blog sobre o tema, pesquise.

Objetivo do Tutorial

  • Detectar tentativas de envio de spam no Postfix
  • Bloquear IPs automaticamente com base nos logs
  • Garantir mais segurança e reputação ao seu servidor de e-mail

Pré-requisitos

  • Um servidor Linux com Postfix instalado
  • Fail2Ban instalado (sudo apt install fail2ban em Debian/Ubuntu)
  • Acesso root ou sudo

Passo 1: Criar um Filtro Personalizado para Spam no Postfix

O primeiro passo é criar um filtro regex para que o Fail2Ban saiba exatamente o que procurar no log para identificar uma tentativa de spam.

Crie o arquivo do filtro:

sudo vim /etc/fail2ban/filter.d/postfix-spam.conf

Adicione o conteúdo:

[Definition]
failregex = reject: RCPT from (.*)\[<HOST>\]: 554 5.7.1 Spam message rejected
ignoreregex =

Explicação: A expressão regular procura por trechos nos logs que indicam rejeição de e-mails com base na classificação como spam pelo Postfix ou filtros auxiliares como Amavis ou SpamAssassin.

Valide sua regex com:

grep "Spam" /var/log/mail.log

Caso sua mensagem de spam tenha outro padrão, ajuste a regex para refletir sua realidade.

Passo 2: Criar a Jail para o Filtro de Spam

Agora que temos um filtro funcional, precisamos ativá-lo como uma jail, que é uma regra de ação dentro do Fail2Ban.

Edite o arquivo jail.local:

sudo vim /etc/fail2ban/jail.local

Adicione o seguinte bloco:

[postfix-spam]
enabled = true
filter = postfix-spam
action = iptables[name=SPAM, port=smtp, protocol=tcp]
logpath = /var/log/mail.log
maxretry = 3
findtime = 3600
bantime = 86400

Explicação dos parâmetros:

Parâmetro – Descrição
enabled : Ativa a jail
filter : Nome do filtro criado em filter.d
action : Utiliza iptables para bloquear na porta SMTP
logpath : Caminho do arquivo de log do Postfix
maxretry : Número de tentativas antes do bloqueio (neste exemplo, 3)
findtime : Período de tempo para contar as tentativas (em segundos)
bantime : Tempo de bloqueio (em segundos – 86400 = 1 dia)

Você pode aumentar o bantime para 604800 (7 dias) ou mais, dependendo do nível de severidade que deseja aplicar.

Passo 3: Reiniciar o Fail2Ban e Verificar a Jail

Reinicie o serviço Fail2Ban:

sudo systemctl restart fail2ban

Verifique se a nova jail está ativa:

sudo fail2ban-client status postfix-spam

A saída esperada será algo assim:

Status for the jail: postfix-spam
|- Filter
|  |- Currently failed: 0
|  |- Total failed: 4
|  `- File list:    /var/log/mail.log
`- Actions
   |- Currently banned: 1
   |- Total banned: 3
   `- Banned IP list: 192.168.1.200

Se aparecer como “banned”, isso indica que o filtro está funcionando corretamente!

Monitoramento Adicional

Você pode monitorar os IPs bloqueados com:

sudo fail2ban-client status

Para desbloquear um IP manualmente:

sudo fail2ban-client set postfix-spam unbanip IP_DO_CLIENTE

Dica Avançada: Integrar com WHOIS e AbuseIPDB

Para maior precisão, você pode criar ações customizadas no Fail2Ban para:

  • Consultar WHOIS do IP bloqueado
  • Reportar IPs ao AbuseIPDB
  • Logar eventos em sistemas de SIEM (como Wazuh ou ELK)

Para isso, edite ou crie um action.d/custom.conf e integre com scripts externos de automação.

Conclusão

Configurar o Fail2Ban com regras anti-spam específicas para o Postfix é uma excelente maneira de:

  • Proteger sua infraestrutura de e-mail contra abusos
  • Evitar ser listado em blacklists como Spamhaus
  • Preservar a reputação dos seus domínios e IPs
  • Reduzir o volume de tráfego malicioso e tentativas de envio de spam

Com esse tutorial, você agora tem uma base sólida para identificar e bloquear automaticamente IPs que tentam abusar do seu servidor SMTP, fortalecendo a postura de segurança do seu ambiente Linux.

Conheça nosso Canal do Youtube
Escute Nosso DoluCast
Melhores da Semana