Usando o Postfix como Gateway para filtro de mensagens (ClamAV + SpamAssassin) no Debian Etch

Posted by Paulo Arruda | Posted in Linux | Posted on 25-04-2008

Tags:, , , , , , , , , ,

3

Hoje eu precisei ajudar um amigo a configurar um Postfix no firewall para que ele receba as mensagens de correio eletrônico, filtre seu conteúdo e mande-as para o servidor de correio interno (Qmail). Resolvi postar a solução aqui no blog, baseada nas documentações encontradas neste link e neste link.

Vamos lá. Para instalar o Postfix, o Clamav e o Spamassassin:

apt-get install postfix spamassassin spamc clamav

Agora edite o arquivo /etc/defaults/spamassassin e mude ENABLED=0 para ENABLED=1. Edite também o arquivo /etc/spamassassin/local.cf e descomente as linhas:

rewrite_header Subject *****SPAM*****

report_safe 1

required_score 5

use_bayes 1

bayes_auto_learn 1

Inicie o serviço do spamassassin:

/etc/init.d/spamassassin start

Agora crie a pasta /var/spool/filter

mkdir /var/spool/filter

chown clamav /var/spool/filter

Dentro do arquivo /etc/postfix/master.cf procure pela linha que começa com smtp inet e altere para que fique como abaixo:

smtp inet n – n – – smtpd

-o content_filter=clamav:clamav

Dentro do mesmo arquivo, adicione após a última linha:

clamav unix – n n – 15 pipe

flags=Rq user=clamav argv=/usr/lib/postfix/clamav-filter.sh -f ${sender} — ${recipient}

Ainda no master.cf, procure a linha que começa com a palavra local e comente-a.

Agora vamos para o arquivo /etc/postfix/main.cf. Procure as linhas abaixo, altere as que existirem como está abaixo (ou acrescente as linhas que nao existirem):

myorigin = seudominio.com

mydestination =

local_recipient_maps =

local_transport = error:local mail delivery is disabled

mynetworks = 127.0.0.0/8 12.34.56.0/24 # sua rede interna

relay_domains = correio.local # a sua maquina de correio para a qual o gateway vai mandar os emails

parent_domain_matches_subdomains = debug_peer_list smtpd_access_maps

relay_recipient_maps =

transport_maps = hash:/etc/postfix/transport

command_time_limit = 1h

Agora, crie o arquivo /etc/postfix/transport com a linha:

seudominio.com smtp:correio.local

Execute:

postmap /etc/postfix/transport

Baixe o script do Deives Michellis para a pasta /usr/lib/postfix

cd /usr/lib/postfix

wget http://www.parruda.net/downloads/clamav-filter.sh

chmod +x clamav-filter.sh

E pronto! Agora mande um

/etc/init.d/postfix restart

tail -f /var/log/mail.info

e monitore se as mensagens estão sendo repassadas para o seu servidor da rede local, e se estão indo filtradas!