Montando um servidor de e-mail completo com Postfix
Este tutorial aborda a criação de um servidor de e-mail baseado em banco de dados MySQL, com suporte a cota de usuários, antispam, antivírus, webmail e tudo mais o que se pode imaginar.
Parte 17: Configuração do Postfix com Amavis_NEW
No final do /postfix/etc/master adicione:
# AMAVIS-NEW+SpamAssassin
smtp-amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o mynetworks=127.0.0.0/8
smtp-amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o mynetworks=127.0.0.0/8
No final do /postfix/etc/main.cf adicione:
#===== AMAVIS ==============
content_filter = smtp-amavis:[127.0.0.1]:10024
content_filter = smtp-amavis:[127.0.0.1]:10024
Reinicie o Postfix e teste:
# telnet 127.0.0.1 10025
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
220 postfix ESMTP MEU DOMINIO
quit
221 Bye
Connection closed by foreign host.
Vá para o diretório de teste do Amavis e como usuário COMUM, envie alguns exemplos de email com vírus e com spam:
# cd /source/amavisd-new-20030616/test-messages/
# su marco
Email c/ Virus:
$ sendmail -i marco.maximo@dominio1.com.br < sample-virus-simple.txt
================== SAÍDA DO LOG ======================
Nov 26 15:15:41 marco postfix/pickup[7706]: 211D818167: uid=500 from=<marco>
Nov 26 15:15:41 marco postfix/cleanup[7369]: 211D818167: message-id=<20031126171541.211D818167@postfix>
Nov 26 15:15:41 marco postfix/nqmgr[3486]: 211D818167: from=<marco@local.com.br>, size=2662, nrcpt=1 (queue active)
Nov 26 15:15:41 marco postfix/smtpd[7982]: connect from localhost.localdomain[127.0.0.1]
Nov 26 15:15:41 marco postfix/smtpd[7982]: 8CDC918170: client=localhost.localdomain[127.0.0.1]
Nov 26 15:15:41 marco postfix/cleanup[7339]: 8CDC918170: message-id=<VA07926-03@marco.local.com.br>
Nov 26 15:15:41 marco postfix/nqmgr[3486]: 8CDC918170: from=<virusalert@local.com.br>, size=1659, nrcpt=1 (queue active)
Nov 26 15:15:41 marco postfix/smtpd[7982]: disconnect from localhost.localdomain[127.0.0.1]
Nov 26 15:15:41 marco postfix/smtpd[7311]: connect from localhost.localdomain[127.0.0.1]
Nov 26 15:15:41 marco postfix/pipe[7859]: 8CDC918170: to=<marco.maximo@dominio1.com.br>, relay=maildrop, delay=0, status=sent (dominio1.com.br)
Nov 26 15:15:41 marco postfix/smtpd[7311]: A655D18170: client=localhost.localdomain[127.0.0.1]
Nov 26 15:15:41 marco postfix/cleanup[7369]: A655D18170: message-id=<VS07926-03@marco.local.com.br>
Nov 26 15:15:41 marco postfix/nqmgr[3486]: A655D18170: from=<>, size=2980, nrcpt=1 (queue active)
Nov 26 15:15:41 marco postfix/smtpd[7311]: disconnect from localhost.localdomain[127.0.0.1]
Nov 26 15:15:41 marco postfix/local[7751]: A655D18170: to=<marco@local.com.br>, relay=local, delay=0, status=sent (maildir)
Nov 26 15:15:41 marco amavis[7926]: (07926-03) INFECTED (Eicar-Test-Signature), <marco@local.com.br> -> <marco.maximo@dominio1.com.br>, quarantine virus-20031126-151541-07926-03, Message-ID: <20031126171541.211D818167@postfix>, Hits: -
Nov 26 15:15:41 marco postfix/smtp[7634]: 211D818167: to=<marco.maximo@dominio1.com.br>, relay=127.0.0.1[127.0.0.1], delay=0, status=sent (250 2.5.0 Ok, id=07926-03, BOUNCE)
==================================================
Nov 26 15:15:41 marco postfix/pickup[7706]: 211D818167: uid=500 from=<marco>
Nov 26 15:15:41 marco postfix/cleanup[7369]: 211D818167: message-id=<20031126171541.211D818167@postfix>
Nov 26 15:15:41 marco postfix/nqmgr[3486]: 211D818167: from=<marco@local.com.br>, size=2662, nrcpt=1 (queue active)
Nov 26 15:15:41 marco postfix/smtpd[7982]: connect from localhost.localdomain[127.0.0.1]
Nov 26 15:15:41 marco postfix/smtpd[7982]: 8CDC918170: client=localhost.localdomain[127.0.0.1]
Nov 26 15:15:41 marco postfix/cleanup[7339]: 8CDC918170: message-id=<VA07926-03@marco.local.com.br>
Nov 26 15:15:41 marco postfix/nqmgr[3486]: 8CDC918170: from=<virusalert@local.com.br>, size=1659, nrcpt=1 (queue active)
Nov 26 15:15:41 marco postfix/smtpd[7982]: disconnect from localhost.localdomain[127.0.0.1]
Nov 26 15:15:41 marco postfix/smtpd[7311]: connect from localhost.localdomain[127.0.0.1]
Nov 26 15:15:41 marco postfix/pipe[7859]: 8CDC918170: to=<marco.maximo@dominio1.com.br>, relay=maildrop, delay=0, status=sent (dominio1.com.br)
Nov 26 15:15:41 marco postfix/smtpd[7311]: A655D18170: client=localhost.localdomain[127.0.0.1]
Nov 26 15:15:41 marco postfix/cleanup[7369]: A655D18170: message-id=<VS07926-03@marco.local.com.br>
Nov 26 15:15:41 marco postfix/nqmgr[3486]: A655D18170: from=<>, size=2980, nrcpt=1 (queue active)
Nov 26 15:15:41 marco postfix/smtpd[7311]: disconnect from localhost.localdomain[127.0.0.1]
Nov 26 15:15:41 marco postfix/local[7751]: A655D18170: to=<marco@local.com.br>, relay=local, delay=0, status=sent (maildir)
Nov 26 15:15:41 marco amavis[7926]: (07926-03) INFECTED (Eicar-Test-Signature), <marco@local.com.br> -> <marco.maximo@dominio1.com.br>, quarantine virus-20031126-151541-07926-03, Message-ID: <20031126171541.211D818167@postfix>, Hits: -
Nov 26 15:15:41 marco postfix/smtp[7634]: 211D818167: to=<marco.maximo@dominio1.com.br>, relay=127.0.0.1[127.0.0.1], delay=0, status=sent (250 2.5.0 Ok, id=07926-03, BOUNCE)
==================================================
Se tudo correu sem problema, o usuário "marco" enviou um email para o usuário "marco.maximo@dominio1.com.br".
O Amavis interceptou a mensagem e enviou para o ClamAV após ter sido registrado como uma "mensagem infectada" ( Nov 14 17:43:42 marco amavis[26311]: (26311-07) INFECTED (Eicar-Test-Signature)).
O Amavis colocou o email em quarentena e enviou 2 email.
- Um aviso ao remetente, no caso, o usuário "marco".
- Um outro para o administrador do sistema ($virus_admin = )