Antispam con Postfix

postfixSappiamo tutti che lo spam è un problema significativo nei server di posta. Io, come tutti gli amministratori di sistema, modifichiamo giornalmente le configurazioni per contribuire a fermare il flusso di nuove varianti di SPAM. Anche se la nostra infrastruttura prevede Antispam, Professionali o no che siano, ci troviamo in ogni caso ad effettuare tuning manuale per garantire che l’utente finale non riceva mail che possano infastidire il suo operato. Online esistono milioni di guide per implementare prodotti tipo Spamassassin o equivalenti, in questa guida vedremo come utilizzare l’RBL di postfix per prevenire la minaccia prima che l’antispam scansioni il messaggio.

La direttiva in cui possiamo definire le regole di ricezione è smtpd_sender_restrictions nel file /etc/postfix/main.cf.

Un esempio può essere:

smtpd_recipient_restrictions =
                   permit_mynetworks,
                   reject_unknown_recipient_domain,
                   reject_unknown_sender_domain,
                   reject_unauth_destination,
                   reject_unauth_pipelining,
                   reject_invalid_hostname,
                   reject_non_fqdn_sender,
                   reject_non_fqdn_recipient

Queste direttive, se in ogni modo efficaci, eliminano solo il 10% delle minacce, che unite al nostro prodotto Antispam proteggono al massimo il 60%.

Se vogliamo aumentare la percentuale di protezione possiamo farlo utilizzando le RBL (Real-time Blackhole List). Le RBL sono semplici liste, libere e accessibili a tutti, contenenti gli IP che sono da considerarsi Spammer.  Questo è un modo molto semplice di aumentare la protezione del traffico SPAM bloccando in modo diretto gli IP dei spammer prima che arrivino all’analisi del nostro Antispam.

I primincipali siti che forniscono queste liste sono:

Per implementare sul nostro Mail Server, bisogna semplicemente modificare il main.cf di postfix, aggiungendo nella direttiva smtpd_sender_restrictions le voci come nell’esempio di seguito:

smtpd_recipient_restrictions =
                ...
                reject_rbl_client zen.spamhaus.org,
                reject_rbl_client bl.spamcop.net,
                reject_rbl_client dnsbl.sorbs.net,
                reject_rbl_client cbl.abuseat.org,
                reject_rbl_client b.barracudacentral.org,
                reject_rbl_client psbl.surriel.com,
                ...

Riavviamo Postfix e il gioco è fatto. Possiamo visualizzare il corretto funzionamento visualizzando il maillog di Postfix. Se uno spammer viene bloccato da una delle liste indicate nel log vedremo:

Jul 20 13:39:40 MAILSVR1 postfix/smtpd[16657]: NOQUEUE: reject: RCPT from mx240.200.mnmailer.com[46.29.200.240]: 454 4.7.1 Service unavailable; Client host [46.29.200.240] blocked using dnsbl-1.uceprotect.net; IP 46.29.200.240 is UCEPROTECT-Level 1 listed. See http://www.uceprotect.net/rblcheck.php?ipr=46.29.200.240; from=<bounce-back.mnidm.2114.842.40490.1876152117._@mn1.mnmailer.com> to=<test@ipv1001.it> proto=ESMTP helo=<mx240.200.mnmailer.com>

oppure:

Jul 20 13:24:25 MAILSVR1 postfix/smtpd[15615]: NOQUEUE: reject: RCPT from mail15.unikici.com[xx.xx.xx.xx]: 454 4.7.1 Service unavailable; Client host [xx.xx.xx.xx] blocked using b.barracudacentral.org; from=<test2@medannonces.com> to=<test@ipv1001.it> proto=SMTP helo=<ksxxxxx.kimsufi.com>

Questo tuorial vuole essere di aiuto a tutti coloro, che come me, impregano ogni giorno cercando di prevenire Spam.

Alla prossima