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:
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 installare SpamAssassin http://spamassassin.org/downloads.html -Uvh spamassassinABC.rpm dpkg -i nomepacchetto.deb
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 attachment headers
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
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.