[Cialtroni] bloccare lo spam con spamassassin, sendmail, spamass-milter e mailman
marco ghidinelli
marcogh a linux.it
Gio 24 Lug 2003 12:54:12 CEST
bloccare lo spam con spamassassin, sendmail, spamass-milter e mailman.
prefazione:
vista la situazione insostenibile del volume di spam che arrivava sulle
mailinglist ospitate sulle macchine del circolab, abbiamo cominciato a
considerare la possibilita' di un sistema antispam che andasse a bloccare
lo spam in arrivo.
ATTENZIONE!
CERCARE DI BLOCCARE LO SPAM PUO' PORTARE IN ALCUNI CASI A BLOCCARE
ANCHE DEI MESSAGGI DI POSTA CHE NON SONO SPAM MA CI ASSOMIGLIANO.
LO SPAM TROVATO DA SPAMASSASSIN NON DEVE ESSERE BUTTATO VIA, MA
DEVE ESSERE CONTROLLATO.
software necessario:
sul server del circolab abbiamo (fortunatamente) una debian, e quindi tutto
il processo di installazione del sistema antispam e' stato decisamente
breve. il software necessario e' il seguente:
sendmail (dovrebbero andare bene tutte le versioni che contengono la
libmilter, comunque consiglio la 8.12 anche x questioni di
sicurezza).
http://www.sendmail.org/
spamassassin (la versione provata da noi e' la 2.55, consiglio comunque
caldamente di tenere aggiornato questo pacchetto in quanto
le versioni successive dovrebbero bloccare un maggior
numero di spam)
http://www.spamassassin.org/
spamass-milter ( un piccolo 'plugin' x sendmail che modifica la mail che
proviene da sendmail come dettato da spamassassin.
la versione utilizzata e' la 0.2.0, e anche in questo
caso consiglio di tenere aggiornato il pacchetto in quanto
nuove funzionalita' vengono aggiunte e molti bug vengono
tolti).
http://savannah.nongnu.org/projects/spamass-milt/
installazione: SPAMASSASSIN
come prerequisito serve ovviamente sendmail preconfigurato e funzionante.
cominciamo quindi con l'installazione di spamassassin.
noi abbiamo utilizzato il pacchetto debian di spamassassin, ma dato che
nella woody il pacchetto debian era decisamente vecchio, abbiamo aggiunto
una nuova fonte 'apt' presa cercando 'spamassassin' su
http://www.apt-get.org/
spamassassin funziona controllando gli header e il testo dei messaggi e
controllando la presenza di caratteristiche comuni in tutti i messaggi di
spam: se all'interno del messaggio e' presente piu' volte la parola viagra
ad esempio, oppure se gli header risultano falsificati.
x ogni test eseguito sul messaggio spamassassin assegna un punteggio
negativo o positivo: se il punteggio supera il valore di 5 positivo il
messaggio e' considerato spam e viene modificato aggiungendo degli header
tipo X-Spam-Flag: YES
una volta installato spamassassin si deve procedere con un paio di test x
vedere se spamassassin sia installato correttamente:
spamassassin -t < sample-nonspam.txt > nonspam.out
spamassassin -t < sample-spam.txt > spam.out
una volta verificato che il file nonspam.out non sia stato modificato e che
invece spam.out sia stato modificato con gli header di spam, possiamo
considerare installato correttamente spamassassin.
installazione: SPAMD
spamassassin come ho detto non e' fatto x funzionare come demone: x fare
questo in spamassassin sono stati inseriti una coppia di programmi
(distributi insieme a spamassassin), spamc e spamd.
spamd funge da server, e accetta in ingresso un messaggio di posta che gli
viene passato da spamc.
per attivare questo demone, basta (in debian) editare il file
/etc/default/spamassassin e mettere ENABLED=1
attiviamo quindi spamd lanciando /etc/init.d/spamassassin start
installazione: SPAMASS-MILTER
spamass-milter e' una 'specie' di plugin x sendmail che permette di creare
programmi che vanno a modificare il normale funzionamento di sendmail.
in questo caso spamass-milter va a modificare il messaggio aggiungendo
eventualmente i famosi header X-Spam-Flag: YES in caso di messaggio di
spam.
purtroppo non esiste il pacchetto debian spamass-milter, e quindi non resta
che prendere il buon vecchio compilatore e scaricarsi i sorgenti e
compilarli.
una volta eseguito ./configure && make && make install siamo pronti x
utilizzare il nostro milter: per fare cio' dobbiamo creare in /etc/init.d/
uno script che venga lanciato ad ogni boot e che attivi tale milter.
x debian tale script e' gia' inserito all'interno dei sorgenti di
spamass-milter, e richiede solo una modifica x segnalare dove e' stato
installato spamass-milter nel nostro sistema.
a questo punto con un semplice
cp spamass-milter /etc/init.d/'
e con un
update-rc.d -f spamass-milter defaults 19
abbiamo ottenuto gli script di inizializzazione corretti.
(si noti che il numero 19 serve a far partire spamass-milter PRIMA di
sendmail, che di default parte con priorita' 20)
configurazione: SENDMAIL
siamo oramai alla fine: configuriamo sendmail e aggiungiamo le righe
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/sendmail/spamass.sock, F=, T
=C:15m;S:4m;R:4m;E:10m')dnl
define(`confMILTER_MACROS_CONNECT',`b, j, _, {daemon_name}, {if_name}, {if_addr}
')dnl
nel file /etc/mail/sendmail.mc , lanciamo 'make' nella directory
'/etc/mail' e eseguiamo l'eventuale riavvio di sendmail richiesto.
a questo punto il sistema in automatico aggiunge l'header X-Spam-Flag: YES
alle mail di spam.
configurazione: MAILMAN
nella pagina di configurazione delle opzioni di privacy aggiungere la riga
X-Spam-Flag: YES nello spazio "hold post with header value matching a
specified regexp".
in questo modo le mail di spam vengono bloccate e devono essere vagliate
dall'amministratore della lista prima di arrivare alla mailinglist.
ciao e buon divertimento!
--
BOFH excuse #388:
Bad user karma.
Maggiori informazioni sulla lista
Cialtroni