Antispam via Postfix

Recentemente implementamos um upgrade na proteção antispam do sistema de email Intercom, que é utilizado por diversos clientes nossos junto com serviço agregado de backup centralizado.

O serviço de email Intercom sempre foi baseado em Qmail, e através de Qmailscanner é feita a integração antivírus com Clamav e antispam com Spamassassin, que possui filtragem Bayesiana habilitada e tem treinamento regular. O próprio Qmail permite diversos bloqueios antispam (RBLs, contra remetentes registrados em envelop-sender, SPF, etc.).

Pelo crescimento vertiginoso no volume de spam nos últimos tempos (por conta de aumento de empresas de email-marketing, facilidade de compra e operação de softwares de mass-mailing, e adoção de email-marketing por empresas que nunca o utilizou, etc.), sentimos necessidade de melhorar a proteção antispam do sistema de email. Mas Qmail não é atualizado há muito tempo (último Netqmail foi de 2005; Qmail-spp, de 2008), e não possui mecanismos atualizados de filtragem com base em análise do cabeçalho dos emails. Sempre podemos filtrar cabeçalhos via Spamassassin, mas economizaremos CPU se conseguirmos rejeitar spams logo no início das sessões SMTP.

Depois de diversas análises, optamos por adicionar um servidor Postfix à frente do Qmail, para aproveitar seus múltiplos mecanismos de controle de acesso. Além dos bloqueios triviais no início de sessão SMTP (reject_non_fqdn_*, reject_unknown_*, check_client_access, reject_rbl_client), implementamos uma checagem extremamente poderosa: header_checks. Com este mecanismo, podemos filtrar por qualquer atributo do cabeçalho de email (exemplos: List-Unsubscribe e X-Mailer), facilitando muito o bloqueio de emails gerados por sistemas de email-marketing.

Com a estrutura de bloqueio Postfix implementada, fizemos um trabalho intensivo de análise de cabeçalhos de emails para identificar e selecionar atributos genéricos para bloqueio. Depois de 15 dias, os resultados são muito animadores: redução aproximada de 95% de spam! (comparando número de spams capturados num período de 15 dias antes do início das filtragens, com um mesmo período de 15 dias após início da filtragem).

Há alguns aspectos para melhorias ainda (mais especificamente na proteção SPF, em casos onde os domínios-remetentes não tenham registro SPF), mas estamos muito satisfeitos no salto de eficácia da proteção anti-spam.