O spam (ou mensagens de correio electrónico não solicitadas) é um problema com que nos debatemos todos os dias. Para combater esta praga podemos utilizar várias técnicas, quer isoladamente quer em conjunto. Vamos neste artigo fazer um apanhado destas técnicas e ver a forma de implementa-las no servidor Postfix.
Por exemplo é comum:
Um servidor de correio legítimo, ao receber esta mensagem de erro, vai voltar a tentar enviar a mensagem de novo ao fim de alguns minutos. Se isso acontecer o sistema de Greylisting acrescenta a uma base de dados o endereço IP do servidor e aceita a mensagem.
Isto é muito eficaz porque os sistemas de envio de spam normalmente não implementam a gestão de correio devolvido e mesmo que o façam, na maior parte dos casos, os sistemas comprometidos que enviam o spam estão por de trás de firewalls que não aceitam ligações para os sistemas de mail.
Juntando a isto o facto de, cada vez mais, os ISPs incluirem nas suas políticas aceitáveis de utilização termos que restrigem o envio de correio em massa, este método é por ventura o mais eficaz para rejeitar correio não solicitado, quer em termos de fiabilidade, quer pelo facto de ter poucos falsos positivos.
Notar também, que muitas vezes, o período de tempo que o servidor que envia a mensagem leva para a voltar a enviar, é suficiente para estes serem listados nas DNSBs.
Neste site já fizemos várias referências ao Spamassassin, consulte, por favor, a lista de links relaccionados no fim deste artigo para fazer a respectiva configuração (associada ao Amavis, ou apenas para detecção de spam).
A configuração do postfix para implementar as políticas de rejeição de mail listadas anteriormente é bastante simples:
Os primeiros quatro pontos da lista anterior configuram-se no /etc/postfix/main.cf fazendo a variável de configuração smtpd_recipient_restrictions igual a:
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination reject_unauth_pipelining reject_invalid_hostname reject_non_fqdn_sender reject_unknown_sender_domain reject_non_fqdn_recipient reject_unknown_recipient_domain reject_rbl_client bl.spamcop.net reject_rbl_client list.dsbl.org reject_rbl_client dnsbl.njabl.org reject_rbl_client relays.ordb.org
basta recarregar o Postfix e temos este assunto arrumado.
Para configurar o Greylisting, temos um pouco mais de trabalho, mas não muito.
Em primeiro lugar temos de escolher o produto que vai fazer o Greylisting, eu utilizo o Postgrey.
Em sistemas Debian e derivados, a instalação consiste no seguinte:
# apt-get install postgrey
O Postgrey funciona como um serviço, nos sistemas Debian este fica a inicializar no boot automaticamente. Se não, temos apenas de o acrescentar ao runlevel em que a máquina funciona normalmente.
A seguir temos de configurar o Postfix para utilizar este serviço. Mais uma vez, isto é feito no main.cf, na mesma variável que usámos anteriormente:
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination reject_unauth_pipelining reject_invalid_hostname reject_non_fqdn_sender reject_unknown_sender_domain reject_non_fqdn_recipient reject_unknown_recipient_domain reject_rbl_client bl.spamcop.net reject_rbl_client list.dsbl.org reject_rbl_client dnsbl.njabl.org reject_rbl_client relays.ordb.org check_policy_service inet:127.0.0.1:60000
É claro que convém consultar a página de manual do Postgrey (man postgrey).
Com este simples procedimento consegue-se diminuir de uma forma incrível a quantidade de spam recebido pelo nosso servidor. Julgo que todos os provedores de serviço de correio, quer a nível de servidor caseiro, empresarial ou de ISP, deveriam aplicar no mínimo as técnicas descritas neste artigo. O nível de spam iria diminuir consideravelmente.