SPAM: mailfilter
Indice
- Premessa
- Lo SPAM in generale
- Il programma
- La configurazione
- Funzionamento e scansione dei messaggi
- Log file e statistiche
- Approfondimenti sul web
Premessa
Quando internet era una realtà piccola, isolata, e per pochi eletti, la definizione di `SPAM`, trovava riferimento solamente nella famigerata carne in scatola prodotta dalla ditta statunitense Hormel.
Ai giorni d'oggi quella piccola ed isolata realtà è mutata in uno strumento di sviluppo economico e sociale dalle grandi qualità, diventando di fatto, un bacino d'utenza appetibile; questa condizione ha determinato, la nascita di abusi di ogni genere tra i quali lo SPAM.
In questo articolo vedremo come correre ai ripari dal fastidioso fenomeno che affligge quotidianamente le nostre mailbox; verrà descritta la configurazione e il successivo utilizzo di "mailfilter", un ottimo software client-side da installarsi sulle workstation casalinghe o di lavoro.
Lo SPAM in generale
Parlare approfonditamente del fenomeno, non è assolutamente possibile; l'argomento è molto vasto ed esulerebbe gli scopi dell'articolo. Si possono tuttavia trovare sulle rete ottime fonti dove documentarsi in maniera adeguata; alcuni link d'approfondimento sono riportati in fondo a questa pagina.
Tuttavia qualche breve riflessione è d'uopo.
L'idea di usare del software lato client per la riduzione dello
SPAM, aiuta sicuramente a fare della selezione più o meno
accurata della posta che si desidera ricevere, ma di fatto non fa
nulla per reprimere il fenomeno in continua espansione. Molti
potrebbero pensare che ciò sia sufficiente; purtroppo
è vero il contrario:
- Lo spam costa!
Nonostante il nostro software anti-spam abbia rilevato ed eliminato parte del problema, rimane il fatto che il messaggio sia stato gestito dal nostro provider con evidente consumo di banda, che puo' tradursi in deterioramento del servizio e aumento del costo all'utente finale.
- Per quanto efficiente possa apparire, c'è da
sottolineare che il software elimina lo spam ma non lo spammer.
Operare correttamente significa segnalare l'abuso al provider
in uso dallo spammer; nel caso di open-relay segnalare
immediatamente l'accaduto (solitamente ogni buon provider
dovrebbe mettere a disposizione una casella di posta denominata
abuse@*).
Inoltre bisogna altresì sottolineare che il software anti-spam porta beneficio solamente all'utilizzatore del software stesso mentre, una segnalazione accettata, è vantaggio per migliaia di utenti.
- Un'altro accorgimento da tenere in considerazione è la scelta del provider; dovrebbe fare informazione tramite le proprie pagine, e offrire servizi anti-spam ai propri utenti, magari con la possibilità di configurare dei filtri personalizzati.
- Evitare di esporre con troppa leggerezza i propri indirizzi e-mail, soprattutto nei casi in cui si faccia spesso uso di Newsgroup o quant'altro; proprio in relazione a quest'ultimo è vivamente consigliato creare una mailbox da battaglia.
Dopo questa breve carrellata riflessiva è giunta l'ora di passare a parlare di mailfilter, argomento del prossimo paragrafo.
Il programma
Mailfilter è uno strumento molto utile, e presenta
delle peculiarità che lo rendono assolutamente
interessante: configurazione semplice e flessibile, controllo
account multipli, rimozione automatica dei messaggi,
completamente indipendente.
La home-page [http://mailfilter.sourceforge.net]
esprime con molto chiarezza tutte le caratteristiche piu'
importanti.
Il pacchetto è disponibile per il download sia sottoforma di sorgenti, sia in
versione pacchettizata.
L'installazione è assai semplice quindi esamineremo
direttamente la configurazione e l'utilizzo.
La configurazione
Mailfilter si avvale di un unico file di testo(.mailfilterrc), posizionato all'interno della directory home e la sua sintassi, è piuttosto semplice grazie alla suddivisione a sezioni.
Esempio di configurazione: .mailfilterrc
#
# MAILFILTERRC
#
# ---------------------------------------------------------------------------
# Sezione 1 - *CONFIGURAZIONE GENERALE
#
# Questa sezione consente di regolare alcuni aspetti legati al
# funzionamento di mailfilter.
# ---------------------------------------------------------------------------
# Determina la posizione del file contenente le registrazioni.
LOGFILE = /path/mailfilter.log (es. /home/utente/mailfilter.log)
# Imposta il livello di dettagli delle registrazioni.
# Default: 3
VERBOSE = 2
# Indica a mailfilter se effettuare la normalizzazione del testo.
# Se viene impostata a "yes", esempi di testo come
# S-P-A-M | S\E/X verranno tratti come SPAM | SEX.
NORMAL = yes
# Determina se il controllo dei messaggi debba essere CASE-SENSITIVE(*).
# E' tuttavia consigliabile, non abilitare tale opzione, il controllo
# dei messaggi e decisamente piu' immediato e veritiero.
#
# *CASE-SENSITIVE: `SPAM` è diverso da `spam`
REG_CASE = no
# Imposta il tipo di espressione regolare da utilizzare: `base` o `avanzata`.
# In base alle proprie conoscenze è possibile modificare tale opzione.
# Valori possibili (basic|extended)
REG_TYPE = extended
# Rimuove i messaggi duplicati, o piu' semplicemente doppi.
DEL_DUPLICATES= no
# ---------------------------------------------------------------------------
# Sezione 2 - *ACCOUNT
#
# Specifica quali account dovranno essere controllati.
# E' possibile indicare uno o piu' account.
# ---------------------------------------------------------------------------
SERVER = server.provider.tdl
USER = nome_utente
PASS = passwd
PROTOCOL = pop3
PORT = 110
# ---------------------------------------------------------------------------
# Sezione 3 - *REGOLE DI CONTROLLO
#
# Questa sezione elenca le regole da utilizzare per il controllo
# delle mail. Le regole vanno valutate attentamente onde evitare
# la cancellazione di messaggi validi.
# ---------------------------------------------------------------------------
# Permette di specificare una serie di indirizzi `affidabili` sulla
# quale non dovrà essere operato nessun controllo.
# La sintassi consente di includere un intero dominio oppure
# un elenco di indirizzi e-mail.
ALLOW = ^From:.*@dominio1.tdl
ALLOW = ^From:.*utente@dominio2.tdl
# Permette di specificare una serie di indirizzi `inaffidabili`
# attraverso il controllo del campo `From:`
# La sintassi consente di includere un intero dominio oppure
# un elenco di indirizzi e-mail.
DENY = ^From:.*1000SearchEngines@
DENY = ^From:.*123greetings.com
DENY = ^From:.*momanddadw\.com
DENY = ^From:.*8i2ho@earthlink.net
DENY = ^From:.*[a-z]+[0-9]{5,}@(yahoo|aol|hotmail|lycos)
# Controllo del campo `Subject`
DENY = ^Subject:.*video amatoriali
DENY = ^Subject:.*EASILY COPY ANY DVD MOVIE FOR FREE!
DENY = ^Subject:.*Sick of paying and paying and staying in debt
# Controllo del campo `To:`
DENY = ^To:.*Undisclosed.Recipient[s]?@
DENY = ^To:.*friend@public\.com
DENY = ^To:\ member$
# Controllo del software utilizzato per la spedizione
DENY = ^X-Mailer: MailWorkz
DENY = ^X-Mailer: Avalanche
# Controllo del tipo di contenuto
DENY = ^Content-Type:\ text/html;
# Controllo del `Messages-ID:`
DENY = ^Message-ID:.*qualsiasi.*cosa.*sia
# Controllo del campo `Recived:` e `Reply-To:`
DENY = ^Received:\ from\ \ by
DENY = ^Reply-To:\ 232526@email\.it
# Particolare attenzione va alla direttiva `DENY_CASE` che
# permette di abilitare il controllo CASE-SENSITIVE,
# ignorando l'impostazione nel campo `REG_CASE`
# I messaggi con campi modificati vanno eliminati
DENY_CASE=^(FROM|^TO|SUBJECT)
Diverse sono le opzioni a disposizione, che non verranno esaminate in questo articolo. E' comunque possibile prendere visione di quest'ultime attraverso la documentazione allegata con il software oppure direttamente sulla home page ufficiale.
Una volta conclusa la configurazione si puo' procedere all'utilizzo vero e proprio, argomento del prossimo paragrafo.
Funzionamento e scansione dei messaggi
Mailfilter è completamente autonomo, garantendo un servizio trasparente e silenzioso agli occhi dell'utente. Il funzionamento opera attraverso 3 fasi:
- Tramite l'eseguibile (/usr/sbin/mailfilter), viene stabilita una connessione al server POP3.
- Vengono confrontate le regole definite nel file di configurazione e gli header dei messaggi presenti nella mailbox; nel caso venga riscontrata una corrispondenza, il messaggio verra rimosso dal server, e l'evento verrà registrato all'interno del file di log.
- A scansione ultimata la connessione al server viene chiusa.
Mailfilter puo' essere invocato in diverse maniere; prima fra
tutte a riga di comando, ma questa modalità è
scomoda. E' possibile automatizzare tutto attaverso l'uso di
fetchmail, o se supportato, tramite il client di posta
elettronica.
Rimane inoltre possibile schedulare un cron job, che a periodi
specificati dall'utente esegua autonomamente una connessione al
server ed esegua la scansione della mailbox.
FETCHMAIL
Grazie a fetchmail possiamo interagire con mailfilter in
maniera semplice.
Come spiegato nella `pagina man`, fetchmail accetta l'opzione:
preconnect command
che permette di eseguire il comando specificato prima del controllo della posta.
Esempio di configurazione: .fetchmailrc
poll mailserver.provider.tdl with proto POP3 user "userID" there with password "password" is "utente_locale" here preconnect "mailfilter --mailfilterrc=/path/.mailfilterrc"
Client di posta: KMAIL
E' risaputo che in sistemi *nix, il metodo più diffuso per il controllo della posta e il successivo smistamento sia l'abbinata fetchmail + procmail; inoltre ci si affida spesso ad un MTA locale (postfix, exim ecc.) per la spedizione dei messaggi. Per chi proviene del mondo Windows fatica a comprendere questo funzionamento, benchè offra dei vantaggi indiscutibili ed una gestione della posta eccellente.
Per chi intende utilizzare mailfilter direttamente attraverso
il client di posta dovrà assicurarsi che quest'ultimo
abbia la possibilità di lanciare l'eseguibile prima che la
posta venga scaricata localmente. Personalmente ho provato con
`Kmail`, il client di posta integrato in KDE.
La figura qui sotto riassume la configurazione del client in
maniera molto più e chiara di come potrebbero fare 1000
parole.
Log file e statistiche
Vediamo a questo punto come si presenta il file di log subito
dopo la rilevazione e la successiva rimozione di un messaggio
indesiderato.
Un'accurata analisi delle registrazioni consente di eseguire
delle statistiche in diverse direzioni, e una valutazione piu' o
meno veritiera della bontà del software.
mailfilter: Deleted padgottodicuori cwottodicuori@hotmail.com: news letter adult qyf, Fri, 19 Sep 2003 10.17.30 +0200. [Applied filter: '^Subject:.*adult'] mailfilter: Deleted Katy liberosesso@libero.it: Re: ti penso sempre..., Thu, 18 Sep 2003 08.54.09 +0200. [Applied filter: '^Content-Type:\ text/html;']
La sintassi è la seguente:
- mailfilter: Deleted
Indica che il messaggio è stato rimosso. - padgottodicuori cwottodicuori@hotmail.com
L'indirizzo e-mail del presunto spammer - news letter adult qyf
L'oggetto del messaggio - Fri, 19 Sep 2003 10.17.30 +0200
Data e ora delle rilevazione del messaggio - [Applied filter: '^Subject:.*adult']
La stringa di rilevazione utilizzata per discriminare il messaggio. Nella fattispecie è stata rilevata una irregolarità nel campo oggetto.
A questo punto è possibile stilare una propria
statistica personale sullo SPAM rilevato e rimosso.
Ho redatto una piccola statistica personale, basata utilizzando
`mailfilter` su due account contemporaneamente, per un periodo di
3 mesi:
Messaggi rimossi: 472 (157,3 * mese )
Falsi positivi: nr.15 (mailing-list)
Oltre il 50% dei messaggi sono stati rimossi in quanto formattati in HTML, il 40 % sul controllo del campo oggetto e FROM, il restante 10 % suddiviso in altre regole, quali il controllo SOTWARE, messaggi ove il campo `To:` non contenga il mio indirizzo di posta elettronica.
Approfondimenti sul web
- http://www.collinelli.net/antispam/
Una completa guida sullo SPAM, completamente in lingua italiana; un must. - http://www.spamlinks.net
Molti link di approfondimento che trattano il problema a 360°. - http://www.despammed.com
Un efficiente servizio di posta elettronica, gratuito, con moltissima attenzione verso lo SPAM - it.news.net-abuse
Gruppo di discussione italiano, sugli abusi della rete.

