Ottimizzare SpamAssassin e PostFix per ridurre l’uso della memoria

Come molti di voi avranno potuto notare SpamAssassin consuma parecchia memoria. I figli del daemon spamd arrivano tranquillamente a prendersi 25 megabyte ciascuno appena il sistema antispam è avviato, figuriamoci dopo molte ore d’esecuzione…
In un piccolo server dedicato o ancor peggio su un VPS (virtual private server) dove la memoria ram scarseggia, possono verificarsi spesso problemi come l’uso dello spazio swap su partizione che rende il sistema operativo e il server veramente lenti.

Tuttavia SpamAssassin è lo strumento principe per la lotta allo spam, dunque si può cercare di limitare il consumo di memoria dell’antispam?

La prima cosa è procurarsi un server smtp come Postfix e installarlo sul server. Poi utilizzando Debian (o derivate) installare il pacchetto e una dipendenza necessaria a SpamAssassin:

# apt-get install spamassassin spamc

Per motivi di sicurezza creare un utente per eseguire il demone spamd (il nome utente è lo stesso del nome del demone):

#groupadd -g 5001 spamd
#useradd -u 5001 -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd
#mkdir /var/lib/spamassassin
#chown spamd:spamd /var/lib/spamassassin

Modificare il file /etc/postfix/master.cf inserendo le informazioni necessarie Postfix per interagire con l’antispam.
smtp      inet  n       –       –       –       2       smtpd
-o content_filter=spamassassin

Il numero 2 è importante in quanto determina il numero dei processi che PostFix potrà lanciare, mettendo solo due si risparmierà un po’ di memoria e questo valore è un ottima soluzione per piccoli server che devono inviare e ricevere messaggi occasionalmente. Se vengono inviate molte mail è forse il caso di elevare tale cifra.

Alla fine del file master.cf di PostFix mettere anche le seguenti linee:

spamassassin unix –     n       n       –       –       pipe
user=spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}

Lo stesso ragionamento vale pure per SpamAssassin: si può limitare l’uso della memoria abbassando il numero dei figli del processo quando la posta gestita dal server è poca.

Modificare il file /etc/default/spamassassin:[ad#midarticlequadr]
# nano /etc/default/spamassassin

Aggiungendo le seguenti righe o modificandole se presenti:

ENABLED=1
SAHOME=”/var/lib/spamassassin/”
OPTIONS=”–create-prefs –max-children 2 –username spamd –helper-home-dir ${SAHOME} -s ${SAHOME}spamd.log”
PIDFILE=”${SAHOME}spamd.pid”

Se dovessero verificarsi problemi inerenti alla home di SpamAssassin, sostituire ${SAHOME} con var/lib/spamassassin/ e togliendo la seconda riga che definisce il segnaposto di SAHOME


Il numero 2 dopo –max-children indica di creare per lo più una coppia di figli di spamd (il demone di SpamAssassin), questo valore come quello indicato per PostFix può essere aumentato se cresce il volume di posta.

Al termine riavviare sia PostFix sia SpamAssassin:
# /etc/init.d/postfix reload
# /etc/init.d/spamd restart

virtual machine

Articolo precedente

Nuovo Forum sulla virtualizzazione
linux

Articolo successivo

Disco allo stato solido SSD