User Tools

Site Tools


Sidebar

No ai soldati italiani all'estero

Indice

Eventi

Energia

Rigacci.Org usa energia elettrica da fonti rinnovabili, grazie al gruppo di acquisto Merci Dolci.

Merci Dolci - Energia Rinnovabile

Software libero!

Petizione contro i brevetti software

Faunalia: Soluzioni GIS professionali

Debian

www.gnu.org www.kernel.org

doc:appunti:linux:sa:spamass-milter

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.

Il parametro -r - in alternativa al punteggio - può indicare il valore -1. In quersto caso la mail viene respinta se la sottostante configurazione di SpamAssassin valuta il messaggio come spam. Se il Milter gira a nome dell'unico utente spamass-milter è probabile (con Debian) che la configurazione da tarare sia /var/lib/spamass-milter/.spamassassin/user_prefs:

required_score   12.0

L'opzione -u serve a passare la local part del destinatario a spamc (usando l'omonimo parametro -u di spamc), cioè a far girare Spamassassin con i privilegi e le impostazioni del destinatario. Se i destinatari sono più di uno viene passato l'utente indicato dopo il parametro (nell'esempio 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
chmod 750 /var/lib/spamass-milter
doc/appunti/linux/sa/spamass-milter.txt · Last modified: 2019/04/12 16:19 by niccolo