This is an old revision of the document!
Table of Contents
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
Su una Debian 10 Buster, installare il pacchetto spamass-milter.
Quando il demone spamass-milter è in esecuzione crea il socket /var/spool/postfix/spamass/spamass.sock che è raggiungibile da Postfix anche nel suo chroot.
La configurazione predefinita è in /etc/default/spamass-milter:
OPTIONS="-u spamass-milter -i 127.0.0.1"
L'opzione -i indica di ignorare i messaggi da localhost (127.0.0.1). L'opzione -u viene invece usata solo per i messaggi con destinatari multipli; quando c'è un solo destinatario il milter ricava il nome utente da passare a spamc dalla local-part del destinatario (cioè la parte che precede il simbolo @), se il messaggio ha destinatari multipli viene invece passato l'utente indicato da questa opzione.
ATTENZIONE: Questa configurazione va bene per i messaggi in arrivo destinati ad utenti locali, infatti consente di far girare spamc a nome dell'utente finale ed utilizzare le sue preferenze contenute in $HOME/.spamassassin/. La stessa configurazione non va bene per il relay di messaggi, in quel caso infatti non ha senso estrarre la local-part del destinatario, che certamente non è un utente locale!
Configurazione system-wide
Se si desidera filtrare con il milter i messaggi in uscita è pertanto necessario chiamare spamc passando un generico utente di sistema, le preferenze impostate per quell'utente non saranno pertanto per-user, ma system-wide.
In tal caso configurare il demone mettendo in /etc/default/spamass-milter:
#OPTIONS="-d func,misc -i 127.0.0.1 -r -1" OPTIONS="-i 127.0.0.1 -r -1"
Per rileggere la configurazione è necessario un systemctl restart spamass-milter.service.
L'opzione -d
attiva alcuni parametri di debug che si possono togliere una volta in produzione, l'opzione -r
associata al valore -1
respingere il messaggio se la scansione di SpamAssassin dà esito positivo (il messaggio è SPAM), pertanto verranno applicate le impostazioni personali dell'utente a nome di cui viene invocato spamc. Altrimenti con il parametro -r
si può indicare il punteggio SPAM da usare come soglia di caso positivo.
Il milter gira a nome dell'utente spamass-milter, la sua home directory è /var/lib/spamass-milter/. È necessario creare questa directory perché spamass-milter possa scrivere le proprie preferenze:
mkdir /var/lib/spamass-milter chown spamass-milter:spamass-milter /var/lib/spamass-milter chmod 750 /var/lib/spamass-milter
Alla prima esecuzione del filtro viene creato il file con le preferenze /var/lib/spamass-milter/.spamassassin/user_prefs, è possibile poi ad esempio aggiungere:
required_score 12.0
In /etc/postfix/main.cf
si imposta:
# Mail filter: spamass-milter smtpd_milters = unix:spamass/spamass.sock