Postgrey: filtrare lo spam con il greylisting
Guida da adottare! |
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
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 | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |