quinta-feira, 15 de outubro de 2009

Gateway SMTP com SpamAssassin + Clamav + Amavis + Postfix

O objetivo deste tutorial é mostrar uma solução de Gateway SMTP Linux integrando 4 Produtos: Postfix, Clamav, Amavis e Spamassassin.
O principal meio para entrada de vírus em uma rede coorporativa é o e-mail. O Spam é outro fator preocupante para qualquer Administrador de Redes. Esse Gateway pode ser implantado
na frente de qualquer Servidor de E-Mail como Lotuso Domino, Exchange, Zimbra e outros. Para aumentarmos ainda mais a segurança , podemos implantar essa solução de Gateway SMTP
em um servidor fora da nossa Infra-Estrutura, evitando assim que Vírus e Spam's consumam a Banda de Internet.


Instalar os programas necessários:

apt-get install postfix
apt-get install spamassassin
apt-get install clamav
apt-get install amavis

No arquivo /etc/postfix/main.cf inserir as seguintes linhas abaixo

# Desabilitando a Entrega Local
mydestination =
local_recipient_maps =
local_transport = error:local mail delivery is disabled


# Habilitando a Origem - Esse é o domínio externo
myorigin = wilson.com.br


# Habilite as Redes Locais, inclusive a placa WAN

mynetworks = 192.168.0.0/24

# HAbilitando de qual dominio a mensagem será roteada

relay_domains = wilson.com.br

# Habilitando o mapeamento de Transporte

transport_maps = hash:/etc/postfix/transport

# Habilitando os usuarios de e-mail

relay_recipient_maps = hash:/etc/postfix/relay_recipients

No arquivo /etc/postfix/master.cf comentar a seguinte linha

# Desabilitar a Entrega Local no arquivo master.cf

#local unix - n n - - local

Agora crie 2 arquivos em /etc/postfix, um com o nome de relay_recipients e outro com transport

relay_recipients

#
# Aqui consta todos os e-mails externos dos seus usuários, se faltar alguns, o postfix não irá rotear as mensagens
wilson@wilson.com OK

Transport

#
# Aqui tem o nome do servidor que irá ser roteada as mensagens
# Domínio IP do servidor
wilson.com.br smtp:192.168.0.77


# Atualizando as COnfigurações


postmap hash:/etc/postfix/transport
postmap hash:/etc/postfix/relay_recipients

/etc/init.d/postfix restart


# Visualizar os Logs das Mensagens que entram

tail -f /var/log/mail.info



Acessar o arquivo /etc/defaults/spamassassin e mude ENABLED=0 para ENABLED=1


Acesse 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

Ou entao se preferir, pode acessar o site abaixo que ela gera um arquivo local.cf com as configurações que vc escolher

http://www.yrex.com/spam/spamconfig.php

Reinicie o Serviço SpamAssassin


Ativando o Amavis

Acesse o arquivo /etc/postfix/master.cf e adicione as seguintes linhas no final:

# AMAVISD
#
smtp-amavis unix - - n - 10 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o virtual_mailbox_maps=
-o virtual_alias_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_milters=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks_style=host
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings


Adicione no arquivo /etc/postfix/main.cf a seguinte linha

content_filter = smtp-amavis:[127.0.0.1]:10024


Restart no PostFix

/etc/init.d/postfix restart

Restart no Amavis

/etc/init.d/amavis restart

2 comentários:

  1. Cara, Eu tenho um iptables na frente do Domino. Ele é um firewall. Que regro ponho para ele

    ResponderExcluir
  2. Ei. Meu servidor diz que não conhece o IP que serve como gateway onde o postfix roda

    ResponderExcluir