Postgrey e le Greylist alleati per la lotta allo spam

postgreyLa posta indesiderata è un vero flagello per tutti, peggio ancora lo e’ per le aziende. Adesso, però esiste una nuova arma.

Nonostante la raffinatezza e l’efficacia raggiunte da numerosi sistemi antispam, sempre più spesso questi strumenti si rivelano insufficienti per risolvere il problema della posta indesiderata. I disagi provocati dall’attacco di uno “spammer” riguardano tutti, senza alcuna differenza di sorta, ma assumono proporzioni esagerate in ambito aziendale. Per provare a risolvere il problema ci viene incontro un nuovo strumento, le cosiddette Grey-List. Vediamo di cosa si tratta e come usarle per arginare il fenomeno spam.

Il concetto delle Greylist

Le greylist basano il loro funzionamento sul fatto che la maggior parte degli spammer provano l’invio di un messaggio una volta sola e, in caso di errore, non eseguono le richieste di rinvio del messaggio previste dal protocollo SMTP, in quanto, così facendo, le code di invio delle e-mail crescerebbero a dismisura. Sfruttando questo comportamento, quando un server dotato di greylist riceve un messaggio, per prima cosa controlla se in passato ha già ricevuto dall’indirizzo IP del server corrispondente e dal mittente indicato un’e-mail per il destinatario richiesto. Se il controllo riscontra uno dei valori appena indicati  il server interrompe il collegamento e genera un errore che causa la richiesta di ritrasmissione del messaggio, mentre in caso negativo l’e-mail viene inoltrata normalmente al destinatario. In caso di collegamento interrotto, i server “mittente” correttamente configurati, ritentano l’invio del messaggio (in genere dopo un’attesa di 10 minuti). Questo comporta un ritardo nella consegna del messaggio dell’ordine di qualche decina di minuti solo per il primo messaggio proveniente da un determinato mittente, esclusi quelli in arrivo da alcuni domini di uso abituale che sono già approvati all’interno delle greylist, mentre i messaggi successivi non subiranno alcun ritardo.

Postgrey

In questa piccola guida parleremo di postgrey, un’ implementazione delle greylist per postfix (ma può essere usata con un qualsiasi altro 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:60000

Nota:
le varie voci relative a smtpd_recipient_restrictions dovranno essere separate da una virgola, e se smtpd_recipient_restrictions non dovesse esistere, sarà necessario aggiungerla nel seguente modo:

smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:60000

Una volta terminato sara’ 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.

Postgrey configurazione

La configurazione di postgrey è modificabile tramite tre file:

1) /etc/defaults/postgrey # che 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;
--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.

2) whitelist_clients

Contiene una lista dei domini da cui greylist non bloccherà la posta.

3) 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.

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.