Diretório "spam" para SpamAssassin - Configuração com Postfix e MailDrop

Publicado por Thiago Miranda em 21/04/2014

[ Hits: 9.671 ]

 


Diretório "spam" para SpamAssassin - Configuração com Postfix e MailDrop



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!

Outras dicas deste autor

Recuperando GRUB do Ubuntu

Adicionando cor ao comando echo

Configurando o phpMyAdmin para acessar o MySQL remotamente

Problemas com teTeX em instalação de pacotes SlackBuilds [Resolvido]

Assinando repositórios de terceiros sem sua GnuPG key

Leitura recomendada

K9Copy no Insigne Momentum 5.0

Implementando suporte a tradução com GetText + Google Translate API

Instalando o VMWARE Workstation 7 no Debian Lenny

timeout - Controlando o tempo que um comando deve ser executado

Configuração de Impressoras no Linux

  

Comentários
[1] Comentário enviado por lelenux em 01/07/2014 - 01:50h

Gostaria de agradecer pelo excelente material. Muito Obrigado!!!! me ajudou bastante... que exista cada vez mais pessoas assim como você.
Forte abraço!!!


[2] Comentário enviado por tiago.a em 12/09/2014 - 16:17h

opa segui seu exemplo, meus email sao marcados como spam no assunto mas fica na caixa de entrada.

[3] Comentário enviado por thiagomiranda3 em 12/09/2014 - 16:30h

Olá Tiago. Veja se no arquivo /etc/postfix/main.cf o parâmetro virtual_transport esta assim: virtual_transport = maildrop . Caso esteja escrito outra coisa, substitua pelo maildrop depois do igual.

Outra coisa, no arquivo /etc/courier/maildroprc na linha:
`echo "INBOX.SPAM" >> "/home/vmail/${RECIPIENT}/courierimapsubscribed"`

O diretório que eu uso é o /home/vmail/, caso você configure diferente, mude ai também e no arquivo /etc/main.cf novamente, muda o parâmetro virtual_mailbox_base = /home/vmail e coloque o diretório que você utiliza

Abraço!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts