Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

SpamAssassin: installazione e configurazione

Link copiato negli appunti

Come visto nell'articolo: Niente più problemi di spam con GNU/Linux, SpamAssassin si rivela un eccellente strumento per combattere la posta indesiderata. In questo articolo cercheremo di fornire con alcuni semplici passi le istruzioni necessarie per instalare e configurare correttamente questo programma.

SpamAssassin è interamente scritto in Perl (attualmente richiede la versione 5.6.0) sarà per questo necessario avere già istallato sul sistema tutto quello che è necessario per eseguire i programmi scritti con questo linguaggio.

Prima di proseguire cerchiamo di capire come funziona realmente SpamAssassin: una volta ricevuta una email SpamAssassin dovrà processarla e deciderà in base a precisi criteri (che è comunque possibile personalizzare) se si tratta di spam oppure no. Per far questo dovremo trovare un modo per "dare in pasto" la nostra posta al programma in questione.

A questo scopo ci torna utile procmail. Per chi non lo conoscesse già si tratta di un potentissimo strumento che, come dice la parola stessa, si occupa di processare la posta in arrivo. Avendo a disposizione, ad esempio, delle regular expression in grado di identificare lo spam sarebbe possibile filtrarlo col solo uso di procmail. Purtroppo però non è facile, utilizzando delle semplici regular expression, selezionare la posta indesiderata. Spamassassin ci fornisce uno strumento aggiornabile e facilmente personalizzabile da interfacciare a procmail risparmiandoci in questo modo l'oneroso compito di scartare manualmente lo spam.

Procmail riceve la posta in arrivo direttamente dall'MTA (Message Transfer Agent), il nostro server di posta SMTP installato sulla nostra distribuzione Linux. Per questo dovremo fare in modo che l'MTA inoltri la posta a procmail.

Prenderemo in considerazione come MTA Postfix utilizzato sulla quasi totalità delle ultime distribuzioni. La configurazione comunque non varia molto per gli altri server. Basterà semplicemente scrivere nel file .forward nella home directory dell'utente che stiamo utilizzando la riga:

"IFS=' ' && exec /usr/bin/procmail exit 75 #user"

Sostituendo user con l'utente che vorrà utilizzare procmail (che ovviamente dovrà essere installato, se risiede in una directory diversa da /usr/bin dovrete modificare di conseguenza).

A questo punto basterà installare e configurare SpamAssassin per avere un sistema funzionante in grado di filtrare la posta indesiderata. La configurazione presa in esame non riguarda i client di posta configurati per scaricare direttamente le email dal server POP o IMAP, ma riguarderà le configurazioni che gestiscono la nostra posta attraverso un MTA locale, per esempio fetchmail.

Per installare SpamAssassin abbiamo due possibilità: utilizzare dei pacchetti precompilati per la nostra distribuzione oppure utilizzare CPAN. Probabilmente SpamAssassin sarà già presente sui CD della vostra distribuzione, ma è comunque consigliabile installare sempre l'ultima versione, reperibile presso il sito http://spamassassin.org/downloads.html . Per installarlo usiamo come al solito rpm (se ovviamente utilizziamo questo gestore dei pacchetti) con l'opzione -Uvh spamassassinABC.rpm (ABC sta ovviamente per la versione) che provederà ad aggiornare ed eventualmente installare il pacchetto in questione. Nel caso di distribuzione basata su Debian sarà sufficente utilizzare il comando dpkg -i nomepacchetto.deb o apt.

In alternativa è possibile sfruttare gli strumenti messi a disposizione da Perl come CPAN per installare SpamAssassin con il comando:

perl -MCPAN -e 'install Mail::SpamAssassin'

A questo punto basterà aggiungere le seguenti righe:

MAILDIR=$HOME/mail
DEFAULT=$HOME/mail/Inbox
LOGFILE=$HOME/mail/proc.log

:0fw: spamassassin.lock
| /usr/bin/spamassassin

all'interno del file .procmailrc nella nostra homedirectory. Questo file contiene tutte le istruzioni che vogliamo far eseguire a procmail ogni qualvolta riceverà nuova posta. SpamAssassin controllerà ogni nuova email e se la riterrà indesiderata la sostituirà con una email di avviso contenente al suo interno come attachment il messaggio scartato. Aggiungerà anche tra gli headers una voce (X-Spam-Status: Yes) che specifica che si tratta di spam. Basterà quindi configurare procmail per cancellare o spostare tutti i messaggi contenenti questa voce al loro interno per separare la nostra posta da quella indesiderata.

Ad esempio aggiungendo nel file .procmailrc:

:0: * ^X-Spam-Status: Yes $HOME/mail/spam

sposteremo tutta la posta che SpamAssassin riterrà spam nel file spam nella sottodirectory mail presente nella homedirectory dell'utente.

È anche possibile far apprendere a spamassassin quale è la posta desidarata e quale non lo è, attraverso i filtri Bayesiani. Ad esempio il comando:

user@linuxbox1:~$ sa-learn --spam ~/mail/altrospam

istruirà spamassassin per considerare la posta contenuta in altrospam come spam e regolarsi di conseguenza quando dovrà prendere delle decisioni.

Analogamente il comando:

sa-learn --nonspam ~/mail/nientespam

farà "apprendere" che la posta contenuta in nientespam non si tratta di spam.

È anche possibile specificare una whitelist aggiungendo all'interno del file ~/.spamassassin/user_prefs l'istruzione:

whitelist_from utenteamico@dominio.com

dove ovviamente utenteamico@dominio.com è l'indirizzo di una email fidata. Come avrete modo di vedere spamassassin non è affidabile al 100%. Con un pò di pratica e "apprendimento" sarà però in grado di darvi un grandissimo aiuto per combattere una piaga che peggiora di giorno in giorno e che rischia di rendere inutilizzabile la posta elettronica.


Ti consigliamo anche