This is an old revision of the document!
spamass-milter
Come impostare un filtro SpamAssassin sulla posta in arrivo, con Postfix.
La posta viene filtrata sia quando è destinata agli utenti locali, sia quando ne viene fatto il relay. Nel primo caso vengono usate le preferenze Spamassassin dell'utente, nel secondo caso invece quelle dell'utente nobody oppure spamass-milter (non si è capito bene come mai: due comportamenti diversi su due server diversi).
Installazione e configurazione
Installare il pacchetto spamass-milter.
Il demone in esecuzione crea un socket /var/spool/postfix/spamass/spamass.sock
che è raggiungibile da Postfix anche nel suo chroot.
Configurare il demone in /etc/default/spamass-milter
mettendo:
#OPTIONS="-d func,misc -u spamass-milter -r 12" #OPTIONS="-u spamass-milter -r 12" OPTIONS="-r 12"
L'opzione -d
attiva alcuni parametri di debug che si possono togliere una volta in produzione, l'opzione -r
respingere il messaggio se totalizza un punteggio maggiore o uguale a 12, senza filtrarlo come fa normalmente SpamAssassin.
L'opzione -u
serve a passare la local part del destinatario a spamc
(usando il parametro -u
), cioè a far girare Spamassassin con i privilegi e le impostazioni del destinatario. Se i destinatari sono più di uno viene passato l'utente spamass-milter
. Ma nel nostro caso il destinatario non è necessariamente un utente locale, anzi in generale si tratta di mail di cui fare il relay; quindi preferiamo che il filtro spamass-milter
giri con impostazioni system-wide piuttosto che user-wide. Togliendo l'opzione -u
il milter chiamerà spamc
sempre come utente spamass-milter
utilizzando le preferenze in /var/lib/spamass-milter
, vedere avanti su come creare la cartella con i permessi opportuni.
In /etc/postfix/main.cf
si imposta:
# Mail filter: spamass-milter #smtpd_milters = unix:/var/spool/postfix/spamass/spamass.sock smtpd_milters = unix:/spamass/spamass.sock
Il messaggio di errore nel log non è grave:
spamass-milter[12260]: Could not retrieve sendmail macro "i"!. Please add it to confMILTER_MACROS_ENVFROM for better spamassassin results
La macro servirebbe a spamass-milter
per riscrivere gli header dei messaggi filtrati (ma noi non riscriviamo i messaggi). Vedere http://savannah.nongnu.org/support/?105310.
Quando deve filtrare un messaggio spamass-milter
passa a spamc
l'utente da utilizzare, se ha problemi ad usare le preferenze nella home directory si ottiene l'errore:
spamd[1355]: spamd: failed to create readable default_prefs: /var/lib/spamass-milter/.spamassassin/user_prefs spamd[353]: spamd: creating default_prefs: /var/lib/spamass-milter/.spamassassin/user_prefs
per risolvere basta creare la directory con gli opportuni permessi:
mkdir /var/lib/spamass-milter chown spamass-milter:nogroup /var/lib/spamass-milter