Comentar - The Remains Of The Day
Anti-SPAM é sinónimo de SpamAssassin, mas há outras barreiras ao SPAM.
De forma a fazer face à sofisticação dos mecanismos de SPAM, um tal de Paul Vixie (bastante conhecido pelo seu envolvimento em vários sistemas e projectos da Internet desde há vários anos) resolveu criar um sistema que permitisse fazer frente a esta questão. O sistema consiste num mecanismo de teste de servidores de correio electrónico, verificando se estes estão mal configurados, isto é, se permitem a sua utilização como relays abertos; por outro lado publica de várias formas uma lista de servidores que estão dentro destas características e que é facilmente consultável.
O projecto chama-se Mail Abuse Protection System, e tem a sua face visível em http://mail-abuse.org/; é possível ver vários tipos de listas, embora tenham todas o objectivo de localizar servidores que tenham sido denunciados como origem de mensagens de SPAM ou que estejam abertos a esse tipo de práticas (através de má configuração). A consulta das várias listas é possível através deste site web, que contém adicionalmente informações sobre como resolver este problema (no caso de má configuração de servidores de correio electrónico) e uma forma de pedir a remoção do nosso servidor destas listas. A utilização deste sistema passou a requerer um pagamento prévio, o que implica que deixou de ser utilizado por toda a gente. Existem alguns outros projectos que fornecem este serviço de forma gratuita; alguns destes são o The Open Relay Database, o Open Relay Black List e o Open Relay Black Zone.
Uma outra forma de publicação destas listas, num formato mais adequado à utilização automática (i. e., sem intervenção humana) é através do sistema de DNS; esta forma de publicação permite ainda que as listas sejam propagadas para vários outros servidores, de forma a aliviar a carga a que este serviço sujeita os servidores onde está activo.
Embora o objectivo destes projectos seja o mesmo, têm aproximações diferentes à forma como permitem a interacção com os administradores de servidores marcados na lista negra, tendo também aproximações diferentes em relação aos testes e procedimentos que utilizam para validar as várias situações. Os servidores de DNS a utilizar para estas consultas são alguns dos seguintes:
inputs.orbz.org e outputs.orbz.org
Para que possamos usufruir das vantagens destes sistemas, é necessário modificar a forma de funcionamento do nosso servidor de correio de forma a verificar se a origem das mensagens que recebemos está nestas listas negras.
As modificações a fazer não implicam compilação de uma nova versão do qmail; basta incluir no arranque do qmail-smtpd alguns parâmetros adicionais. Vamos então mudar o ficheiro de arranque do qmail-smtpd, que está em /var/qmail/supervise/qmail-smtpd/run, para o seguinte:
env – PATH="/usr/local/bin:/var/qmail/bin" \
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" \
softlimit –m 5000000 tcpserver -v -P -R -H -x \
/var/qmail/control/tcp.smtp.cdb \
-u qmaild -g nofiles 0 smtp \
rblsmtpd –r relays.ordb.org \
É necessário reiniciar o qmail-send para assumir a alteração:
# svc -t /service/qmail-send
O SPAM que for apanhado por esta via, não chega sequer a entrar no servidor, é rejeitado logo à partida.
Instalar o SpamAssassin
Há três modos (pelo menos) de instalar o SpamAssassin.
Instalar o RPM do sistema:
# yum Install Mail-SpamAssassin
O SpamAssasssin é tanto mais eficiente quantos mais uns certos e específicos módulos PERL estiverem instalados no sistema. Infelizmente, o RPM não contém esses módulos, pelo que não é uma boa escolha.
Através do CPAN:
Isto é óptimo, como na verdade o SpamAssassin é um módulo PERL, com um único comando, instalo-o numa simples linha. Dá tempo de ir tomar um café e quando voltar estar pronto, com todas as dependências de módulos instaladas também.
Contudo, pela experiência que tenho (e já experimentei no passado por 3 ou 4 vezes), alguma coisa corre sempre mal e fico parado a meio, sem saber o que já está instalado e é a confusão total.
Instalar todos os módulos manualmente:
Dá um bocado de trabalho, mas não é tanto assim, uma vez que a forma de instalação dos módulos PERL é sempre a mesma:
Fica aqui a lista de todos os módulos PERL que o SpamAssassin suporta para uma eficiência máxima. A ordem de instalação é irrelevante, à excepção daqueles que têm depndências, estas devem ser instaladas primeiro, obviamente.
As dependências estão assinaladas por identação e o SpamAssassin, como é óbvio será o último a instalar.
É este o método que eu utilizo.
IP::Country *
Mail:: Spamassassin
Saca daqui os módulos todos para não andares uma hora às apalpadelas :)
Rules du Jour:
As Rules du Jour são uma peça muito importante para um anti-SPAM eficaz. São ficheiros que contêm regras específicas para SPAM específico e que são actualizadas frequentemente.
Por exemplo, os ficheiros 20_drugs.cf e 20_porn.cf são auto-explicativos do tipo de SPAM que permitem apanhar.
Primeiro, tenho que correr este comando
Agora executo (por omissão, se não for passado o nome de nenhum outro canal, o SpamAssassin aponta para updates.spamasassin.org)
Agora, tenho em /etc/mail/spamassassin um directório chamado sa-update-keys
Executo lá dentro o comando
# sa-update --import pubring.gpg
para importar a chave com que os ficheiros de regras são assinados, para ter a certeza de que são os autênticos.
Agora, finalmente, importar as regras:
# sa-update --channel updates.spamassassin.org
# rm -rf /usr/share/spamassassin/*.txt
# rm -rf /usr/share/spamassassin/*.template
Por fim, coloco uma linha no crontab para ir buscar as regras todos os dias às 00:05
05 0 * * * root /usr/bin/sa-update --channel updates.spamassassin.org
No código do SpamAssassin, no directório spamd, existe um ficheiro chamado redhat-rc-script.sh que é o ctl para o programa. Copio-o para /etc/initd.d e dou-lhe as instruções para que seja iniciado no arranque do servidor e parado quando este seja desligado:
# cp spamd/redhat-rc-script.sh /etc/init.d/spamd
# chkconfig --level 3 spamd on
# ./spamd start
IMPORTANTE: O SPAM não deve ser eliminado automaticamente sem que chegue às mailboxes dos utilizadores, por causa dos falsos positivos.
Se assim fosse, podia perder-se um negócio de milhões por causa de um mail mal marcado.
O que se faz é acrescentar uma string ao Subject das mensagens consideradas como SPAM e os utilizadores podem criar um filtro no seu cliente de e-mail – baseado nessa string – e enviá-lo para uma pasta de SPAM.
De vez em quando, convém dar uma olhada nessa pasta.
Para acrescentar, por exemplo, a string [+++ SPAM +++] às mensagens de SPAM, edito o ficheiro /var/qmail/bin/qmail-scanner-queue.pl e mudo a linha
my $spamc_subject='';
rewrite_header Subject [+++ SPAM +++]
É necessário reiniciar o SpamAssasssin para que assuma a alteração:
Isto é uma instalação básica do qmail, há outros canais de regras, há o FuzzyOCR para detectar SPAM em mensagens cujo conteúdo é uma imagem, etc.
Se alguém pretender informação sobre outras coisas, é favor deixar um comentário.
O SpamAssassin está agora instalado, mas ainda não integrado com o qmail, o que quer dizer que as mensagens ainda não estão a ser processadas pelo sistema (nem pelo anti-vírus).