Proteggere Postfix con Amavisd, ClamAV, SpamAssassin

securepostfix01

Proteggere il mail server Postfix da spam e virus tramite l'utilizzo di software come Amavisd, ClamAV e SpamAssassin può essere una valida soluzione per garantire l'integrità delle email.

Il concetto di funzionamento è piuttosto semplice: Amavisd riceve la mail da Postfix (MTA), la passa a ClamAV e SpamAssassin per verificare se è una spam o contiene virus e successivamente la ripassa a Postfix per effettuare il recapito alla casella di posta.

securepostfix02

 

Prerequisiti

 

Installazione packages

Una volta configurato il repository RPMforge nel sistema, procedere all'installazione dei package necessari utilizzando il comando yum.

# yum install amavisd-new clamav clamav-devel clamd spamassassin

securepostfix03

 

Configurazione di ClamAV

Editare il file di configurazione /etc/clamd.conf ed impostare ClamAV in modo da effettuare la comunicazione con Amavisd-new utilizzando il local UNIX socket anzichè il TCPSocket commentando il parametro TCPSocket 3310.

# vi /etc/clamd.conf

securepostfix04

 

Configurazione di Amavisd-new

Editare il file di configurazione /etc/amavisd/amavisd.conf e rimuovere, se richiesto, il commento (#) per disabilitare il controllo di spam o virus.

# COMMONLY ADJUSTED SETTINGS:
# @bypass_virus_checks_maps = (1); # controls running of anti-virus code
 # @bypass_spam_checks_maps = (1); # controls running of anti-spam code
 # $bypass_decode_parts = 1; # controls running of decoders&dearchivers

securepostfix05

Impostare il dominio e l'hostname dell'ambiente di rete utilizzato.

$mydomain = 'domain.com';

securepostfix06

$myhostname = 'mail.domain.com';

securepostfix07

 

Configurazione di Postfix

Editare il file di configurazione /etc/postfix/master.cf  per impostare Postfix in modo da passare la mail a Amasvid-new per il processo di filtering.

amavisfeed unix    -       -       n        -      2     lmtp
 -o lmtp_data_done_timeout=1200
 -o lmtp_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 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_data_restrictions=reject_unauth_pipelining
 -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,
      no_milters,no_address_mappings
 -o local_header_rewrite_clients=
 -o smtpd_milters=
 -o local_recipient_maps=
 -o relay_recipient_maps=

# vi /etc/postfix/master.cf

securepostfix08

Editare il file /etc/postfix/main.cf e abilitare il  message filtering in Postfix aggiungendo la riga:

# use amavisd as filter on port 10024
content_filter=amavisfeed:[127.0.0.1]:10024

# vi /etc/postfix/main.cf

securepostfix09

Effettuare un reload di Postfix per attivare i nuovi parametri.

# service postfix reload

securepostfix10

Abilitare i servizi Amavisd e ClamAV per avviarsi durante il boot di sistema.

# chkconfig amavisd on
# chkconfig clamd on

securepostfix11

Avviare i servizi ClamAV e Amavisd. Per il servizio SpamAssassin, il quale avvia il daemon spamd, l'impostazione può essere lasciata su off pochè Amavisd-new non utilizza il daemon SpamAssassin (spamd) ma invece carica SpamAssassin come modulo.

# service clamd start
# service amavisd start

securepostfix12

Poichè la signature del database ClamAV potrebbe non essere aggiornato, è possibile forzare l'update manualmente utilizzando il comando freshclam.

# /usr/bin/freshclam

securepostfix13

Il mail server è ora protetto contro spam e virus.

postfix 1