Antispam e filtri bayesiani
Luca Longo | 5 dicembre 2009
In passato mi sono trovato a dover fronteggiare lo spam su un server e, nonostante creda che in termini di ottimizzazione la migliore soluzione sia greylist, non mi sono mai tirato indietro dall’allenare i filtri bayesiani di SpamAssassin.
Chi vuole avviare un server di posta, anche solo per un piccolo mail server locale, deve prendere in seria considerazione il fattore spam. Per risolvere il problema, non basta di certo bloccare soltanto il relaying (il classico caso di relay aperto che fa sempre male se si è su una rete pubblica), ma è necessario affiancare l’autenticazione ad smtp ed infine, ovviamente l’antispam.
La guida che segue è stata testata su un sistema operativo Ubuntu, ma, ciò non toglie, che può essere efficace (magari con qualche piccola accortezza) anche su altri OS.
La prima cosa che dovremo fare, è installare spamassassin:
apt-get install spamassassin
Al termine dell’installazione, verràautomaticamente creata la cartella /etc/spamassassin (se così non fosse, proviamo ad installare nuovamente spamassassin con questo comando: apt-get remove –purge spamassassin && apt-get install spamassassin) e, all’interno di questa cartella ne creeremo una nuova:
mkdir /etc/spamassassin/.spamassassin
Aggiorniamo i permessi:
chmod 777 /etc/spamassassin/.spamassassin
Avendo affiancato l’utilizzo di spamassassin al mio server postfix, dovrò necessariamente impostare i permessi di lettura e scrittura corretti sulla cartella spamassassin. Nel mio caso, l’utente è “vmail” e il gruppo è “vmail”:
chown -R vmail:vmail /etc/spamassassin
Avendo intenzione di usare i filtri bayesiani, sarànecessario apportare qualche modifica al file di configurazione di spamassassin:
nano -w /etc/spamassassin/local.cf
Al seguente file, aggiungere (o modificare) le seguenti direttive:
use_bayes 1
bayes_file_mode 0666
bayes_path /etc/spamassassin/.spamassassin/bayes
bayes_auto_learn 1
bayes_learn_to_journal 1
In questo modo, diremo a spamassassin non solo di utilizzare i filtri bayesiani, ma di autoallenarli nel corso del suo ciclo di vita.
Fatto ciò, rilanciamo spamassassin:
/etc/init.d/spamassassin restart
Giusto per scrupolo, rilanciamo un piccolo comando per allineare i permessi:
chmod -r 0666 /etc/spamassassin/.spamassassin/*
Il nostro sistema antispam, ora, dovrebbe essere funzionante. Non ci resta che allenarlo… tranquilli, non dovrete sudare per farlo! Per allenare un sistema antispam, non ci serve altro che: SPAM. Esistono molti siti internet che racchiudono in archivi una marea di email di spam ed il loro scopo, è proprio quello di permettere l’allenamento dei filtri antispam. Badate bene che l’operazione di allenamento non è una cosa che fate oggi e poi avete finito di farla. Un buon sistema antispam necessita di costanti aggiornamenti sia per lo spam, sia per le email “pulite”: è ciò è fondamentale se si vogliono evitare i famosi “falsi positivi”.
Tra i siti che maggiormente utilizzo, senza dubbio, c’è http://untroubled.org/spam/. Aprendolo, alla fine della pagina, troverete diversi archivi 7zip. Vediamo un po’ come fare per utilizzarli per allenare il nostro antispam.
Senza dubbio, la prima cosa di cui abbiamo bisogno, è di poter gestire gli archivi 7zip. Se non avete ancora installato il pacchetto p7zip offerto dalla repository di Ubuntu, potete farlo lanciando questo semplice comando:
apt-get install p7zip
Una volta che abbiamo verificato la corretta installazione del pacchetto p7zip, possiamo procedere con l’allenamento, scaricando i nostri archivi di spam.
Non è molto importante il punto in cui vengono salvati gli archivi, anche perché, una volta utilizzati per allenare il filtro antispam, essi diventano totalmente inutili e possono essere eliminati dal disco, quindi, il mio suggerimento è di lavorare nella directory temporanea:
cd /tmp
Scarichiamo un archivio (consiglio, per iniziare, di scaricarne uno piccolo poiché il tempo di importazione è abbastanza elevato e se si presentano errori, aspettiamo per niente).
wget http://untroubled.org/spam/2001.7z
Una volta scaricato, lo possiamo scompattare:
p7zip -d 2001.7z
Ed ora ecco il passo finale, l’allenamento:
sa-learn –spam –progress /tmp/2001/*
Al termine, possiamo cancellare l’archivio e la cartella:
rm -fr /tmp/2001*
Dovremmo aver finito
Hai trovato interessante questo articolo?
Non ci sono post da suggerire.



