@stat.unipd.it
un programma per filtrare la posta
indesiderata, comunemente chiamata SPAM.
procmail
, che si occupa di consegnare la posta nelle caselle inbox degli utenti.
*****SPAM*****
, ma
si puo' istruire procmail
in modo che la mail considerata SPAM venga archiviata
automaticamente in un folder apposito, non comparendo piu' in inbox.
buona(falso positivo). Inoltre il mittente riterra' la mail come consegnata.
ssh utente@lisa touch Mail/SPAM chmod 600 Mail/SPAM
.procmailrc
nella home:
vi .procmailrcAggiungere alla fine le righe:
:0: * ^X-Spam-Status: Yes Mail/SPAMFare molta attenzione nell'editare .procmailrc, perche errori possono avere conseguenze su tutta la corrispondenza in arrivo.
:0fw: spamassassin.lock | /usr/bin/spamassassin :0: * ^X-Spam-Status: Yes Mail/SPAMPer comodita' il file cosi' preparato e' gia' stato approntato in /etc/skel e puo' essere copiato, a condizione che l'utente non abbia gia' modificato
.procmailrc
per le proprie esigenze.touch Mail/SPAM chmod 600 Mail/SPAM cp /etc/skel/.procmailrc-filespam .procmailrcL'amministratore puo' effettuare la stessa operazione su richiesta dell'utente dopo aver dato il comando
su - username
.
.procmailrc
la posta marcata come spam da
spamassassin verra' automaticamente inserita nel folder di posta SPAM.
.spamassassin/user_prefs
nella home directory di ciascun utente.
buonache effettivamente abbiamo ricevuto finora. Questa operazione dovrebbe aumentare la probabilita' di intercettare il vero spam e diminuire quella dei falsi positivi (mail buona considerata spam per errore).
ssh lisa cd Mail sa-learn --showdots --mbox --spam [nome mailbox piena SOLO di SPAM] sa-learn --showdots --mbox --ham [nome mailbox piena SOLO di mail buona]La prima operazione (quella sullo spam, con '--spam') va compiuta se spamassassin lascia passare troppo spam. Va eseguita su una mailbox piena di spam non intercettato. E' percio buoba abitudine salvare lo spam non intercettato in una mailbox apposita (diversa da 'SPAM') allo scopo di addestrare spamassassin
ssh lisa vi .spamassassin/user_prefs # required_hits 5 # whitelist_from someone@somewhere.comQueste due righe possono essere decommentate (rimosso il #) e personalizzate: al posto del 5 puo' essere messo un numero piu' alto per ridurre la sensibilita' di spamassassin, o piu' basso per aumentarla.
buonoal posto di
someone@somewhere.com
Message content rejected
Dettagli della configurazione:
In /etc/postfix/main.cf
e' presente la riga:
header_checks = regexp:/etc/postfix/header_checksche indica il file ove andranno specificate, come regular expressions le stringhe che identificheranno il messaggio indesiderato.
#SUBJECT /^Subject: retire early.*$/ REJECT /^Subject: Nuovo Documento Microsoft Word (3).*$/ REJECT /^Subject: Tami thought you'd be interested in this!!!!.*$/ REJECT /^Subject: Got Debt? [7xkeh].*/ REJECT /^Subject: RE: WINNER CONFIRMATION .*/ REJECT /^Subject: Now You Can Run A Background and Asset Search!!!.*/ REJECT /^Subject: Get Out of Debt NOW! [qcx4l].*/ REJECT /^Subject: global exposure - we do the work pt1108.*/ REJECT /^Subject: 10e global exposure - we do the work.*/ REJECT /^Subject: .*agra Can Kill You! 26.*/ REJECT /^Subject: Mens Health Manual\.\.\.\.\.\..*/ REJECT /^Subject: Tired of paying to much for inkjets.*/ REJECT /^Subject: 3D Java Internet Casino.*/ REJECT /^Subject: Unreal 20138 .*/ REJECT /^Subject: Vazna informacija! .*/ REJECT /^Subject: A troyan Horse is on your PC.*/ REJECT /^Subject: Attention: to all gamers.*/ REJECT /^Subject: You are an idiot.*/ REJECT #FROM /^From: "Martina & Laura"La sintassi e' semplice:/ REJECT /^From: "Gray" <@msn.com>.*$/ REJECT /^From: "James" <@msn.com>.*$/ REJECT /^From: mikeee1029@servicenetbest.com.*$/ REJECT /^From: beene12981@servicenetbest.com.*$/ REJECT
/REGEXP/ REJECTTrattandosi di regular expression,
^
significa inzio stringa, $
fine stringa, .*
e' "qualsiasi stringa", .
e' "qualsiasi carattere" (compreso il punto, quindi).
/etc/init.d/postfix reload
cd /var/log grep reject mail.log.0 | cut -f 4 -d: | sort | uniq > rej head rej tail rej fgrep -f rej mail.log.0 | grep client= | cut -f 3 -d[ | cut -f 1 -d] | sort > rejip freq < rejip | sort -rn | head -10Al posto di mail.log.0 usare il file di log he si intende analizzare.
0000DAFE8840 0002EAFE8602 0003BAFE8818 00043AFE85F1 00059AFE8850
cd /var/lib/amavis/virusmails for i in *-?? ; do cat $i | head -20 | egrep "\[*.\.*.\.*.\.*.\]\)$" | cut -f 2 -d[ | cut -f 1 -d] | cut -f 1-3 -d. ; done | sort | freq | sort -nPer il log 'storico':
for i in *.gz ; do zcat $i | head -20 | egrep "\[*.\.*.\.*.\.*.\]\)$" | cut -f 2 -d[ | cut -f 1 -d] | cut -f 1-3 -d. ; done | sort | freq | sort -nIn output le reti di classe C che hanno generato piu' virus.
for i in IP IP ; do boogie $i.0/24; done(comando da dare sul firewall)