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

Publicado por Thiago Miranda em 21/04/2014

[ Hits: 9.974 ]

 


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

Adicionando cor ao comando echo

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

sshpass - Passando senha como parâmetro no SSH e scp sem registro de chave pública

Instalando Wine 1.7 e PlayOnLinux no Ubuntu 14.04 LTS

As melhores coisas a fazer depois de instalar o Ubuntu 14

Leitura recomendada

Gerenciamento de usuários e grupos no Linux - LPIC-102

Sabayon com KDE5 - sudo gráfico não funciona mais [Resolvido]

Como criar atalhos na Área de Trabalho do Ubuntu

FFmpeg - Como inserir Logo em vídeo

Instalando o KDE4 no Ubuntu / Kubuntu (7.10)

  

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