Objectivo
Integração de um sistema de filtragem de email no servidor smtp.
Após configuração, quando o servidor smtp (postfix) receber um email, envia-o para o sistema de filtragem (amavisd-new) que invoca os diversos filtros e altera os cabeçalhos conforme os resultados e devolve o email ao servidor smtp.
Instalação
server:~# aptitude install amavisd-new
O pacote amavisd-new sugere a instalação de diversos outros pacote, necessários para manipular ficheiros compactados, para que o sei conteúdo possa também ser examinado:
server:~# aptitude install arj cabextract cpio lha lzop nomarch ripole tnef unrar zoo
Configuração
A configuração consiste em indica ao servidor smtp (postfix) para enviar os emails a filtrar e os receber posteriormente.
Primeiro instruir o postfix para enviar os emails para o amavisd-new, o que é feito no ficheiro /etc/postfix/main.cf:
# [...]
#
# amavisd-new scanner
#
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
Em seguida configurar no postfix o serviço para receber os emails filtrados do amavisd-new, o que é feito no ficheiro /etc/postfix/master.cf:
# [...]
#
# amavisd-new scanner
#
amavis unix - - - - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
-o smtp_generic_maps=
127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_end_of_data_restrictions=
-o smtpd_restriction_classes=
-o mynetworks=127.0.0.0/8
-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
-o local_header_rewrite_clients=
-o local_recipient_maps=
-o relay_recipient_maps=
-o strict_rfc821_envelopes=yes
Reiniciar o serviço SMTP:
server:~# /etc/init.d/postfix restart
Verificação
Verificar que os serviços estão a funcionar:
server:~# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
# [...]
tcp 0 0 localhost:10024 *:* LISTEN 3672/amavisd (maste
tcp 0 0 localhost:10025 *:* LISTEN 3759/master
# [...]
Comprovar que o amavisd-new aceita ligações:
server:~# telnet localhost 10024
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 [127.0.0.1] ESMTP amavisd-new service ready
quit
221 2.0.0 [127.0.0.1] amavisd-new closing transmission channel
Connection closed by foreign host.
Comprovar também que o postfix pode receber de volta os emails filtrados:
server:~# telnet localhost 10025
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 server.home.lan ESMTP Postfix (Debian/GNU)
quit
221 2.0.0 Bye
Connection closed by foreign host.
O sistema de filtragem está a funcionar. O passo seguinte deverá ser a instalação e configuração dos filtros.
Referências
- amavisd-new (http://www.ijs.si/software/amavisd/)
- SpamAssassin Integration with Postfix, using Amavis (http://wiki.apache.org/spamassassin/IntegratedInPostfixWithAmavis)
- Debian Anti-Spam Anti-Virus Gateway Email Server using Postfix, Amavisd-new, SpamAssassin, Razor, DCC, Pyzor, and ClamAV (http://www200.pair.com/mecham/spam/spamfilter20061118.html)




















