glug: Link utile spero .....................

Giuliano bipieffe@yahoo.it
Mer 19 Maggio 2004 15:40:00 CEST


Me lo ha chiesto Andrea, ma penso possa interessare anche a qualcun altro.
Se no scusate il disturbo!
Giuliano


    Email filtering with Procmail + SpamAssassin + ClamAV (Technology)

By mbreyno
Mon Feb 2nd, 2004 at 01:59:06 AM EST

Noi riceviamo molte schifezze in questi giorni nella nostra email ed è 
necessario
avere alcune forme di filtro sul posto. Così qual'è il modo migliore di 
proteggere
il tuo inbox sul tuo server *nix? Bene, qui c'è un modo rapido e facile 
a filtrare
spam e virus, con il software libero ed in un'ora.

    Sul mio server gira SuSE Linux 8.2 ed uso Postfix per consegnare la 
posta.

PROCMAIL

Procmail è una utility per elaborare la posta che consente di ordinare 
la tua posta
in arrivo seguendo dei criteri forniti da te. Con Procmail, puoi cercare 
certi
modelli o impostare informazioni sugli headers e compiere azioni su di 
un messaggio
dipendenti dalle condizioni incontrate.

Sul mio server, procmail viene installato di default. Per provare fate 
soltanto:

    which procmail

Se è installato vedrai dove. Se non lo è prelevalo dal sito RPM della 
SuSE o dove
vi pare, a seconda del vostro sistema operativo.

SPAMASSASSIN

SpamAssassin è un filtro per la posta usato per riconoscere lo spam. 
Impiega un
ampio spettro di prove euristiche sugli headers e sul corpo del testo ed 
assegna
un punteggio ad ogni messaggio. Se un messaggio prende abbastanza punti, 
viene
marcato come spam e conseguentemente filtrato.

SpamAssassin è semplice da installare. le istruzioni possono venir 
trovate su
http://www.spamassassin.org ma ecco qui le svelte e sporche istruzioni:

(diventa root)
perl -MCPAN -e shell
o conf prerequisites_policy ask
install Mail::SpamAssassin
quit

Ciò installerà l'eseguibile spamassassin e gli scripts necessari. 
Facile, no?

ClamAV

ClamAV è uno scansionatore di virus open source. Attualmente riconosce 
20.000
virus. Il database dei virus viene aggiornato con l'aiuto della comunità 
degli
utenti. Gli utenti possono sottoporre nuovi virus che abbiano trovato e 
questi
verranno aggiunti al database.

ClamAV richiede di venir compilato (almeno sulla mia distribuzione di 
Linux) ma
si tratta di cosa indolore. Andate su http://www.clamav.net e tirate giù 
il file
più recente. Le istruzioni per l'installazione sono sul sito, ma ecco il 
trucco:

(diventate root ed andate nella directory source)
groupadd clamav
useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav
./configure --sysconfdir=/etc
make
make install

Poi modificate /etc/clamav.conf e commentate la parola "Example".

Adesso, prima di buttarli tuti insieme, dobbiamo creare un piccolo 
script chiamato
clamfilter.pl. Potete ottenerlo su http://www.everysoft.com/clamfilter.html.
Tiratelo giù e piazzatelo da qualche parte nel vostro sistema. Io metto 
gli script
Perl in /usr/local/scripts. Gloria a Matt Hahnfeld @ EverySoft per 
questo script!

Metterli tutti assieme.

Adesso che tutto è installato, dobbiamo creare qualche filtratura. Per 
creare regole
di filtro per il vostro account, prima create un file nella vostra home 
directory
chiamato .forward. (si è proprio "punto forward") e metteteci questa linea:

"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #user"

Se procmail è installato altrove nel vostro server, modificate di 
conseguenza.

Adesso create un file nella vostra home directory chiamato .procmailrc 
("punto procmailrc")
e metteteci quanto segue:

:0fw
| /usr/local/scripts/clamfilter.pl

:0:
* ^X-Virus-Found: yes
mail/Quarantine

:0fw: spamassassin.lock
| /usr/bin/spamassassin -a

:0:
* ^X-Spam-Status: Yes
mail/Quarantine

Ciò fa passare tutta la posta attraverso ClamAV e SpamAssassin e, se 
viene marcata come
spam o virus, viene passata alla cartella chiamata "quarantine" nella 
vostra directory
di posta. Notate che chiamo SpamAssassin con la flag -a, cosicchè 
abilito l'auto-whitelisting.

Manutenzione

Adesso dobbiamo creare qualche job di cron per la manutenzione. Prima di 
tutto insegnamo
a SpamAssassin a migliorare ogni giorno. Fate un piccolo script chiamato 
sa-learn.pl e
mettetelo da qualche parte (come /usr/local/scripts). Modificatelo se è 
necessario e
fatelo avviare da cron una volta al giorno. Questo script attraverserà 
la home directory
di tutti gli utenti, cercando i folders chiamati MissedSpam e NotSpam. 
Se un utente avesse
piazzato spam perduta o falsi positivi in uno di questi folders 
SpamAssassin imparerebbe
da da ciò.
 
Poi, accertatevi che le definizioni dei virus siano state aggiornate. 
Impostate freshclam
perchè giri ogni ora. Freshclamè un programma che si connette con il 
sito ClamAV e verifica
l'aggiornamento del database. Il comando è:
 
/usr/local/bin/freshclam

Il mio file crontab appare così:

# teach spamassassin - run every morning at 3am
3 0 * * * /usr/local/scripts/sa-learn.pl >> /dev/null 2>&1

# update virus definitions every hour on the hour
0 * * * * /usr/local/bin/freshclam --quiet

Adesso abbiamo una veloce, facile ed effettiva soluzione per il 
filtraggio di spam e di virus.
Mettete soltanto i files .forward e .procmailrc a tutti gli altri utenti 
per cui volete
attivare il filtraggio dell'email. Potreste anche scrivere un breve 
script per copiare
automaticamente questi files in ciascuna home directory. Divertitevi!




Maggiori informazioni sulla lista glug