Una richiesta sempre più frequente quando si installa e configura un mail server linux è la possibilità che quest'ultimo processi le email in arrivo per filtrare i virus, e le email di spam.
Tutto ciò è facilmente applicabile utilizzando i seguenti applicativi:
- Postfix (MTA)
- ClamAV (Engine Antivirus)
- Clamsmtpd (per gestire il passaggio della posta da Postfix a ClamAV)
- Procmail (per gestire il delivery della posta e filtrarla con Spamassassin)
- Spamassassin
Supponiamo di avere già installato Postfix e Spamassassin (tipicamente presenti come pacchetti in molte distribuzioni).
Gli altri due programmi (ClamAV e Clamsmtpd) sono invece, generalmente, da scaricare e da compilare a mano.
La versione ultima di ClamAV al momento in cui si scrive questo infobox è la 0.80 che potete trovare qui:
Clamav
Per quando riguarda invece Clamsmtpd l'ultima è la 1.2 disponibile qui:
Clamsmtpd
Dopo aver scaricato i due pacchetti spostiamo in /usr/local/src e scompattiamoli.
Per l'installazione e compilazione vi rimando a questo infobox. La configurazione la vedremo invece insieme.
CONFIGURAZIONE CLAMD
Di seguito vediamo cosa cambiare in /etc/clamd.conf per quello che vogliamo andare a fare:
LocalSocket /tmp/clamd
Commentare la seguente linea perchè andremo a far ascoltare il demone clamd sulla socket TCP 3310, per farlo scommentare la seguente riga:
TCPSocket 3310
Il resto della configurazione di default va benissimo così com'è.
FRESHCLAM
Freshclam è il sistema utilizzato da ClamAV per aggiornare il proprio database. Il default di /etc/freshclam.conf va bene in quanto sarà in modalità demone che provvede ad aggiornare il sistema AV ogni 2 ore.
INSTALLAZIONE E CONFIGURAZIONE CLAMSMTPD
Questo fantastico software ci permette di impostare e gestire i vari passaggi che devono avvenire tra Postfix e ClamAV per i processi di filtering delle email che arrivano all'MTA.
Prima di tutto dobbiamo compilare il programma, per farlo spostiamoci in clamsmtpd-1.2 sotto /usr/local/src.
La compilazione avviene in modo standard ./configure; make; make install
;
Al termine del tutto bisogna però spostare in /etc il file di conf che è presente nei sorgenti: cp clamsmtpd-1.2/doc/clamsmtpd.conf /etc/
.
Fatto questo vediamo come configurarlo secondo le nostre esigenze:
Rispetto alla configurazione di default bisogna apportare i seguenti cambiamenti:
OutAddress: 127.0.0.1:10026
Output address
ClamAddress: 127.0.0.1:3310
Parametro che imposta dove ascolta Clamd
Avviare il demone clamsmtpd con il seguente comando:
/usr/local/sbin/clamsmtpd -f /etc/clamsmtpd.conf
IMPOSTARE POSTFIX PER UTILIZZARE I DUE SOFTWARE INSTALLATI
A questo punto basta dire a Postfix che le email che arrivano devono essere passate a clamsmtpd che provvederà a passarle a clamav e se CLEAN le rigirerà a Postfix per lo smistamento o, come nel nostro caso, per i controlli di antispam.
Per farlo basta aggiungere a /etc/postfix/main.cf
le seguenti righe:
content_filter = filter:127.0.0.1:10025
receive_override_options = no_address_mappings
Ed in fondo a /etc/postfix/master.cf
:
# SMTP filter (used by content_filter)
filter unix - - n - 16 smtp
-o smtp_send_xforward_command=yes
# For injecting mail back into postfix from the filter
127.0.0.1:10026 inet n - n - 16 smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks_style=host
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
UTILIZZO DI SPAMASSASSIN
Dato per scontato che spamassassin sia installato, il modo più semplice per utilizzarlo è di gestire il tutto tramite procmail, per quanto questa soluzione non sia l'ideale per grossi volumi di posta.
In pratica bisogna configurare Postfix per gestire il local delivery delle email tramite procmail. Per fare ciò basta scommentare la seguente linea di /etc/postfix/main.cf
:
mailbox_command = /usr/bin/procmail
IMPORTANTE: prima di riavviare il servizio di postfix bisogna configurare /etc/procmailrc con cui configuriamo a livello globale sulla configurazione di procmail.
Editare /etc/procmailrc
come segue:
DROPPRIVS=yes
LOGFILE=/var/log/procmail.log
VERBOSE=yes
:0fw
* < 256000
## | spamc -f
| /usr/bin/spamassassin
:0:/tmp/spam.lock
*^X-Spam-Flag: YES
/var/spool/mail/spam
Spieghiamo ora brevemente le parti importanti di procmailrc:
- LOGFILE specifichiamo il file dove procmail logga le attività che svolge.
- * < 256000 Specifichiamo a procmail di chiamare spamassassin SOLO per le email più piccole di 256K, in caso contrario si rischia di appesantire il processo di parsing delle email stesse
- | /usr/bin/spamassassin Specifica di usare il binario di spamassassin (non uso il spamd perchè ho avuto problemi di mailbox bloccate quando muore il demone)
- *^X-Spam-Flag: YES - /var/spool/mail/spam
Se trova il flag nell'header dell'email (inserito da spamassassin per le email ritenute spam) sposta la mail in una mailbox chiamata appunto "spam"
Per concludere tenete presente che in caso di traffico mail notevole è necessaria una macchina ben carrozzata.
Re: mail infette
yes, o meglio vanno in quarantena se le hai configurate
Rispondiscalabilità
Dato per scontato che spamassassin sia installato, il modo più semplice per utilizzarlo è di gestire il tutto tramite procmail, per quanto questa soluzione non sia l'ideale per grossi volumi di posta.
nel caso di grossi volumi di posta, quali sono i migliori metodi alternativi, non proprietari?
procmail
procmail
RispondiArticolo ocn un errore?
In main.cf viene fatto inserire l'indirizzo 127.0.0.1:10025
Ma in clamsmtpd.conf e in master.cf viene settato 127.0.0.1:10026.
C'è forse un errore da correggere?
OutAddress 10026 modifica
ciao,
ho installato oggi la suite suggerita.
clamsmtpd.conf è settato di default a
OutAddress: 127.0.0.1:10026
in main.cf invece c'è
content_filter = filter:127.0.0.1:10025
e in master.cf c'è
127.0.0.1:10026
Non è che in clamsmtpd.conf bisgona anche abilitare la direttiva:
Listen: 0.0.0.0:10025
mail infette
qualcuno sa dirmi dove vanno a finire le mail che clamav trova infette?vengono cancellate?
RispondiRe: Mail
Lo fai a mano, copiando la mail nella maildir dell'utente oppure, molto meglio, usa MailWatch per MailScanner, che è una gran cosa (frontend web pieno di feature).
RispondiRe Mail
perfetto. resta il problema della gestiione del riilascio delle mail bloccate, non so se mi sono spiegato bene.
Grazie molte
Re: Mail
Con Mailscanner è ancora meglio, nel suo file di configurazione (ben commentato) definisci dove mettere la mail filtrate e come gestirle. Di solito le trovi in una directory quarantine, che potrebbe stare in /var/spool/postfix
RispondiRe:Mail scartate
Non ho postato la configurazione, ma uso:
Postfix+MailScanner+Clamav+Spamassassin
Re:Mail scartate
OK, ma non ho la mailxox /var/spool/mail/spam...
RispondiRe: mail scartate
Le mail scartate dovresti ritrovarle nella casellapostale /var/spool/mail/spam.
RispondiMAil scartate da Spamassassin
Dove vannno a finire le mail scartate da Spamassassin?
Avendo configurato la machina come gateway di posta, potrebbe capitare
qualche qualche falso positivo, quindi mi piacerebbe sapere:
1- dove vanno a finire
2- come fare per rilasciare le mail bloccate
Grazie a tutti
avvio automatico clamsmtpd
Non credo sia il metodo + elegante, ma io ho inserito il comando per lanciare clamsmtpd (vd infobox) all'avvio in /etc/rc.local. Sul sito ufficiale ci sono degli script per poter usare questo servizio con chkconfig, ma a me non funzionano.