Combater o spam de backscatter ao nível do servidor

Escrita · 10 set 2019

Combater o spam de backscatter ao nível do servidor

Configurar o Postfix para bloquear spam antes de entrar no servidor

Este mês tive de lidar com spam de backscatter, que afetava um dos servidores de correio que giro. Como engenheiro de servidores, garanto que os servidores não enviam spam e que o e-mail recebido é filtrado. Apesar de todos os esforços, este servidor continuava a ser posto em listas negras por enviar spam para o iCloud, o Office 365 e o Google Gmail for Business (G Suite). Acompanha-me para descobrires o que causou isto e como resolver.

O problema

O servidor é um servidor de correio Postfix em Debian GNU/Linux, com todas as últimas atualizações e correções de segurança. É usado por clientes legítimos, que só o podem usar com autenticação adequada.

Evitar ser um relay aberto

A autenticação individual dos utilizadores num servidor de correio é uma medida importante contra o abuso do servidor. Se for enviado spam, podes ver que utilizador está a causar o problema nos registos do servidor de correio. Em termos técnicos, isto significa que evitas que o servidor se torne «um relay aberto». O Postfix oferece muitas definições para limitar o relay SMTP com controlo de acesso.

Limitar o ritmo das contas de correio (comprometidas)

O abuso do servidor por utilizadores individuais acontece quando o computador deles apanha um vírus ou quando a palavra-passe é intercetada. Isso pode acontecer quando acedes ao correio por uma rede WiFi insegura, sem encriptação (TLS/SSL). Para situações destas, é boa ideia limitar o número de e-mails que cada utilizador pode enviar. Podes usar os Parâmetros de configuração do Postfix (como smtpd_client_message_rate_limit, smtpd_client_connection_rate_limit e smtpd_client_recipient_rate_limit) ou uma firewall para Postfix como o Postwfd.

O servidor entra na lista negra «backscatterer.org»

Apesar de todas as medidas contra o abuso de spam, o servidor continuou a ser listado em http://backscatter.org por enviar spam. Quando um servidor entra numa lista negra, os outros servidores deixam de confiar nele e consideram todas as mensagens suspeitas. Isto pode fazer com que as tuas mensagens (legítimas) sejam vistas pelos outros servidores como spam (falsos positivos). Para perceberes porque é que isto aconteceu, primeiro tens de perceber o que é o spam de backscatter.

O que é o spam de backscatter?

O spam de backscatter são mensagens de devolução automáticas e incorretas enviadas pelo servidor de correio, normalmente como efeito secundário de spam recebido.

O backscatter acontece quando os spammers falsificam o endereço do remetente. Enviam uma mensagem que esperam que seja devolvida, usando como remetente o endereço de outra pessoa. Quando a mensagem é devolvida, o servidor de correio devolve-a ao remetente falsificado... o que faz com que o servidor entregue, na prática, spam a esse endereço.

Cenário simples de backscatter: o servidor de correio devolve a mensagem a um endereço de remetente falsificado
Cenário simples de backscatter: o servidor de correio devolve a mensagem a um endereço de remetente falsificado

O cenário simples de backscatter é aquele em que uma mensagem é devolvida ao remetente errado. É um cenário fácil de resolver: configuras o servidor para não enviar mensagens de devolução e para responder com um código de erro SMTP.

Evitar mensagens de devolução de backscatter ao responder antes com códigos de erro SMTP
Evitar mensagens de devolução de backscatter ao responder antes com códigos de erro SMTP

Infelizmente, há outro cenário (mais difícil) que leva o teu servidor de correio a enviar spam de backscatter. Acontece quando alguém no teu servidor configura a sua conta de correio para reencaminhar o e-mail para outro endereço. O segundo servidor pode ter um filtro de spam mais rigoroso, que faz com que as mensagens sejam bloqueadas ao serem reencaminhadas. O teu servidor de correio informa então o remetente original de que o reencaminhamento falhou, e isso causa spam de backscatter.

Causar spam de backscatter quando o primeiro servidor de correio reencaminha e-mail para outro servidor que bloqueia a mensagem
Causar spam de backscatter quando o primeiro servidor de correio reencaminha e-mail para outro servidor que bloqueia a mensagem

O cenário do reencaminhamento é muito mais difícil de resolver, porque possivelmente não controlas o outro servidor de correio nem as definições do filtro de spam dele. E o pior é que muitas vezes há algum atraso entre aceitar a mensagem e reencaminhá-la, o que torna impossível esperar pela resposta do outro servidor de correio.

Evitar o spam de backscatter

A única forma de evitar totalmente o spam de backscatter é ser muito rigoroso no primeiro servidor de correio, na fase inicial da ligação SMTP. Isto resolve o desafiante «cenário do reencaminhamento», ao ser muito seletivo sobre as mensagens que são reencaminhadas.

Evitar o spam de backscatter ao verificar todas as mensagens antes de as reencaminhar para outro servidor
Evitar o spam de backscatter ao verificar todas as mensagens antes de as reencaminhar para outro servidor

Como bloquear spam antes de entrar no servidor

A melhor maneira de evitar o spam de backscatter é bloqueá-lo antes de entrar na (cadeia de) servidor(es).

Tradicionalmente, os servidores usam filtros de spam avançados, como o SpamAssassin, para analisar as mensagens uma a uma. Isto cria uma carga adicional no servidor de correio.

É muito mais fácil olhar para o remetente (por exemplo, se usa um chapéu vermelho) para a filtragem inicial. O remetente está numa lista negra? Usa uma app de correio «normal», ou as mensagens estão a ser enviadas por um vírus ou malware? Podes perceber muita coisa pela «linguagem» que o remetente fala.

Implementar restrições SMTP rigorosas no Postfix: captura de ecrã anotada do main.cf
Implementar restrições SMTP rigorosas no Postfix: captura de ecrã anotada do main.cf

No Postfix podes especificar restrições SMTP no ficheiro de configuração main.cf. Existem verificações que servem para bloquear mensagens. É boa ideia seguir a lógica do filtro do «fácil para o difícil», começando pelo que se pode verificar sem consultar servidores externos. Isto reduz o tráfego de rede e a carga. Só se uma mensagem passar todas as verificações é que é autorizada para entrega (ou reencaminhamento).

Na entrega podes aplicar filtros de spam adicionais, complexos (e específicos do utilizador), com ferramentas como o SpamAssassin ou a Filtragem bayesiana. Ao reduzir o fluxo de mensagens de spam óbvias, estes filtros que consomem muitos recursos fazem o seu trabalho com muito mais eficiência.

Conclusão

Combater o spam ao nível do servidor é um jogo desafiante, porque os spammers são cada vez mais criativos a abusar dos mecanismos dos servidores de correio. Se o teu servidor entrar numa lista negra por spam de backscatter, tens de ter cuidado com os cenários de reencaminhamento. Fica de olho nas listas negras para veres se o teu servidor está a causar problemas.

Bloqueia as mensagens com códigos de erro, em vez de as devolver ao remetente (bounce). Configura o servidor com uma política de entrega rigorosa. A melhor maneira de evitar o spam de backscatter é bloquear as mensagens antes de entrarem no servidor de correio, agora já sabes como.

← Mais textos