QMail – SpamAssassin (CentOS 7)

Published by Lello on

Utilizzeremo spamassassin per filtrare le mail in transito in cerca di spam; il prodotto che utilizziamo è spamassassin.

SpamAssassin
Spamassassin è un progetto opensource della Apache Software Foundation, il più completo prodotto per combattere lo spam. Innanzi tutto installiamo il prodotto:

# yum -y install spamassassin
# systemctl enable spamassassin
# mkdir /var/log/spamd

Modifichiamo il file /etc/sysconfig/spamassassin:

SPAMDOPTIONS="-u simscan -d -m20 -x -s /var/log/spamd/spamd"

Modifichiamo il file di configurazione /etc/mail/spamassassin/local.cf:

required_hits 4.5
report_safe 1
rewrite_header Subject ===== SPAM (_SCORE_) =====
ok_locales      it

#whitelist_from dave@anthesia.lan
#whitelist_to dave@anthesia.lan
#blacklist_from  dave@anthesia.lan
#blacklist_to  dave@anthesia.lan

Modifichiamo il crontab (crontab -e) per aggiornare le regole di spamassassin una volta al giorno:

# AGGIORNAMENTO REGOLE SPAMASSASSIN
45 1 * * *    /usr/bin/sa-update 2>&1 > /dev/null

A questo punto possiamo aggiornare manualmente la prima volta le regole ed avviare il servizio:

# sa-update
# systemctl start spamassassin

Spamassassin – filtri bayesiani

Spamassassin può migliorare notevolmente l’analisi delle mail in transito basandosi sui messaggi che ha analizzato; chiaramente, più sono le mail che spamassassin gestisce, maggiore sarà la precisione di controllo del filtro ossia la percentuale di mail marcate come spam.

Per usare i filtri bayesiani dobbiamo creare una database che spamassassin interrogherà per controllare la presenza di spam; è possibile utilizzare un database già esistente o aspettare che con il tempo il nostro sistema cominci a autogenerarsi il proprio.

Modifichiamo il file /etc/mail/spamassassin/local.cf aggiungendo le seguenti direttive relative ai filtri bayesiani al file creato precedentemente:

use_bayes_rules 1
bayes_path /var/spamassassin/bayes_db/bayes
bayes_file_mode 0777
bayes_auto_learn 1
bayes_learn_during_report 1
bayes_auto_learn_threshold_nonspam 0.1
bayes_auto_learn_threshold_spam 6

e avviamo nuovamente il servizio

# mkdir -p /var/spamassassin/bayes_db
# touch /var/spamassassin/bayes_db/bayes
# touch /var/spamassassin/bayes_db/bayes_seen
# touch /var/spamassassin/bayes_db/bayes_toks
# chown -R simscan.simscan /var/spamassassin
# chmod 0666 /var/spamassassin/bayes_db/*
# systemctl restart spamassassin

L’utilizzo di un buon database iniziale combinata con il traffico del proprio mail server sia un’ottima combinazione. Un buon database di partenza è fornito da Michele Marcucci nella suo blog; da questo blog possiamo scaricare il database bayesiano di partenza. ATTENZIONE: questa procedura cancellerà il database esistente, per cui non procedete se avete un database bayesiano già alimentato; il processo di import del database durerà parecchi minuti.

# systemctl stop spamassassin
# su - simscan
$ wget http://www.michelem.org/wp-content/spamassassin-bayes-db.tar.bz2
$ tar xvfj spamassassin-bayes-db.tar.bz2 --strip=4 
$ sa-learn --restore spamassassin-bayes-db 
$ exit

SpamAssassin – Razor

Per completare le funzionalità di SpamAssassin, installiamo e configuriamo anche le Vipul’s Razor, librerie che permettono di usare una rete distribuita e collaborativa per il rilevamento ed il filtraggio di spam.

# cd /usr/src
# wget http://prdownloads.sourceforge.net/razor/razor-agents-sdk/2.07/razor-agents-sdk-2.07.tar.bz2
# tar xvfj razor-agents-sdk-2.07.tar.bz2
# cd razor-agents-sdk-2.07
# perl Makefile.PL
# make
# make install
# cd ..
# wget http://prdownloads.sourceforge.net/razor/razor-agents/2.84/razor-agents-2.84.tar.bz2
# tar xvfj razor-agents-2.84.tar.bz2
# cd razor-agents-2.84
# perl Makefile.PL
# make
# make install

Una volta installate le librerie, inizializziamo razor:

# su - simscan
$ razor-admin -home=/var/spool/simscan/.razor -create
$ razor-admin -home=/var/spool/simscan/.razor -discover
$ razor-admin -home=/var/spool/simscan/.razor -register
$ exit

Riavviamo SpamAssassin e avremo anche le Vipul’s Razor installate e funzionanti.

# systemctl restart spamassassin

← QMail – ClamAV (CentOS 7)                            QMail – Test ClamAV & Spamassassin (CentOS 7) →