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.
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.
Amante por tecnologia Especialista em Cibersegurança e Big Data, Formado em Administração de Infraestrutura de Redes, Pós-Graduado em Ciências de Dados e Big Data Analytics e Machine Learning, Com MBA em Segurança da Informação, Escritor do livro ” Cibersegurança: Protegendo a sua Reputação Digital”.