Postgrey: filtrare lo spam con il greylisting

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Guida da adottare! Bannermv.png


Introduzione

Lo spam intasa sempre più le caselle di posta degli utenti, da questa realtà sono nati dei sistemi che cercano di combattere questa piaga, basati su sistemi diversi e più o meno efficaci. Tra i più conosciuti ci sono Spamassassin, Bogofilter, diversi siti che offrono delle blacklist ed un sistema nuovo, affermatosi poco tempo fa: la greylist.

Cos'è

Una Gray List (letteralmente lista grigia) è una via di mezzo tra una whitelist ed una blacklist. Una whitelist, in questo caso, è una lista di indirizzi da cui verrà sempre accettata posta e che eluderanno i controlli anti-spam; una blacklist, al contrario, è una lista di indirizzi che verranno sempre bloccati.

Una greylist è, quindi, una via di mezzo! Normalmente, i mailer usati dagli spammer, tentano l'invio di una email una sola volta (per vari motivi che non verranno approfonditi in questa pagina). L'utilizzo del greylisting, quindi, consisterà in un blocco temporaneo (che varia dai 300 secondi in su) della mail (in pratica viene 'rifiutata'); quando il mailserver cercherà di inviare nuovamente l'e-mail, questa verrà accettata (sempre se sarà passato l'intervallo di tempo impostato) e, se installati, verrà analizzata dai filtri anti-spam.

Postgrey

In questa piccola guida parleremo di postgrey, una implementazione delle greylist per postfix (ma può essere usata con un qualsiasi server di posta).

Per installarlo è sufficiente eseguire il comando

# apt-get install postgrey

una volta terminata l'installazione, il demone postgrey sarà in ascolto sulla porta 60000.

Postfix

Per integrare il servizio in Postfix è sufficiente modificare il file /etc/postfix/main.cf. All'interno del file è necessario cercare la direttiva smtpd_recipient_restrictions ed aggiungere, alla fine, la seguente stringa:

check_policy_service inet:127.0.0.1:10023
Info.png Nota:
le varie voci relative a smtpd_recipient_restrictions devono essere separate da una virgola.


se smtpd_recipient_restrictions non esiste, sarà necessario aggiungerla:

smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:10023

Una volta terminato è sufficiente riavviare Postfix:

# /etc/init.d/postfix restart

e controllare nel file di log /var/log/mail.log le email in arrivo. Si vedrà che alcune verranno rifiutate con un messaggio di postgrey.

Configurazione

La configurazione di postgrey è modificabile tramite tre file:

/etc/defaults/postgrey

Permette la modifica delle opzioni di avvio del demone:

--inet
permette di specificare l'indirizzo e la porta su cui sarà in ascolto il demone (la porta deve corrispondere a quella indicata in /etc/postfix/main.cf, ad esempio il valore di default è "--inet=10023");
--delay
l'intervallo, in secondi, di durata del rigetto;
--max-age
dopo quanto tempo rimuovere gli indirizzi che sono stati visti (memoria storica del programma).

Le opzioni vanno inserite nella variabile POSTGREY_OPTS, separate da uno spazio.

whitelist_clients

Contiene una lista dei domini da cui greylist non bloccherà la posta. Può contenere anche espressioni regolari.

whitelist_recipients

Contiene una lista di destinatari verso cui non bloccare la posta (ad esempio il postmaster oppure abuse). Normalmente non richiede modifiche.

Conclusione

Sebbene questo sistema sia veramente molto semplice, è in grado di bloccare una buona quantità di spam (dopo un giorni di test, le email di spam si sono ridotte quasi dell'80%)!

Inoltre, cosa da tenere molto in considerazione, questo è un metodo che difficilmente genera dei falsi positivi (in quanto la risposta del server mail corrisponde ad un "ripassa più tardi") e non aumenta di molto il carico del sistema (sicuramente meno di Spamassassin e simili).



Guida scritta da: MaXeR Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized