Fala, galera do Viva o
Linux.
Nessa dica, ensino como fazer a configuração de um diretório específico para recebimento de e-mails, considerados como spam pelo
SpamAssassin.
Depois de muito tempo ralando e, literalmente, vasculhando praticamente toda a Internet para fazer o que está no título dessa dica, acabamos por conseguir, depois de longos três dias de trabalho. Portanto, me vi na obrigação de compartilhar nesta dica, como tivemos sucesso nessa empreitada árdua.
* Quero deixar avisado, porém, que nessa dica eu não ensino como instalar o
Postfix em sua máquina, você já deve tê-lo funcional aí. O tutorial vai abordar, basicamente, a instalação e configuração do SpamAssassin e MailDrop, e como criar um diretório específico para mandar os spams que chegarem.
Instalação
Começando pela instalação:
# apt-get install spamassassin spamc courier-maildrop
Adicionando os usuários e seus privilégios:
# groupadd -g 5001 spamd
# useradd -u 5001 -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd
# mkdir /var/lib/spamassassin
# chown spamd:spamd /var/lib/spamassassin
Agora, vá no arquivo
/etc/default/spamassassin e modifique os seguintes valores, conforme está abaixo:
ENABLED=1
SAHOME="/var/lib/spamassassin/"
OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir {SAHOME} -s ${SAHOME}spamd.log"
PIDFILE="${SAHOME}spamd.pid"
Configurando o SpamAssassin
Vá no arquivo
/etc/spamassassin/local.cf e modifique os valores de lá, conforme os que estão aqui abaixo:
loadplugin Mail::SpamAssassin::Plugin::DCC
rewrite_header Subject ***SPAM***
required_score 2.0
report_safe 0
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1
skip_rbl_checks 0
use_razor2 0
use_dcc 0
use_pyzor 0
Restarte o SpamAssassin:
# /etc/init.d/spamassassin restart
Modificando o Postfix
Agora, vá em
/etc/postfix/master.cf e na linha onde está:
smtp inet n - - - - smtpd
Adicione e deixe assim:
smtp inet n - - - - smtpd -o content_filter=spamassassin
No final do arquivo, adicione as seguintes linhas e comente o
maildrop que estiver no arquivo, para colocar o que está abaixo:
maildrop unix - n n - - pipe flags=ODRhu user=vmail argv=/usr/bin/maildrop -w 90 -d ${user}@${nexthop} ${extension} ${recipient} ${user}
${nexthop}
spamassassin unix - n n - - pipe user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
Agora, restarte o Posfix;
# /etc/init.d/postfix restart
Modificando o MailDrop
Se o arquivo não existir, crie-o como
/etc/courier/maildroprc. Caso exista, apague o que estiver dentro dele e adicione:
EXTENSION="$1"
RECIPIENT=tolower("$2")
USER="$3"
HOST="$4"
SENDER="$5"
if (/^X-Spam-Flag: *YES/)
{
exception {
`test -d "/home/vmail/${RECIPIENT}/.SPAM"`
if ( $RETURNCODE == 1 )
{
`maildirmake "/home/vmail/${RECIPIENT}/.SPAM"`;
`echo "INBOX.SPAM" >> "/home/vmail/${RECIPIENT}/courierimapsubscribed"`
}
to "/home/vmail/${RECIPIENT}/.SPAM/"
}
}
to "/home/vmail/${RECIPIENT}/"
Restarte novamente o Postfix:
# /etc/init.d/postfix restart
Pronto. A partir de agora, todos os spams que o SpamAssassin pegar, serão mandados para o diretório SPAM.
No entanto, essa pasta só é enxergada pelo Outlook ou Thunderbird, quando o e-mail é configurado como IMAP, se for configurado como POP3, ela não é baixada automaticamente do servidor.
No POP3, os e-mails considerados como spam, serão jogados na pasta SPAM do mesmo jeito, mas, como o cliente de e-mail não estará enxergado-a, vai parecer que simplesmente não está recebendo.
Basta configurar como IMAP, inicialmente, para os clientes de e-mail baixarem a pasta SPAM e novamente voltar para POP3, que tudo funcionará corretamente.
Conclusão
Espero ter ajudado a quem ainda está tendo esse problema.
Pois, foi um sacrifício resolvê-lo e, praticamente, todos os tutoriais que vi na Internet me ajudaram um pouco.
Abraço a todos!