Una Realtime Block List (RBL) è una lista indirizzi che un fornitore di liste RBL ritiene siano causa di Spam.
Come alternativa a rblsmtpd, per bloccare gli IP di queste liste faremo uso del programma qmail-rblchk di Luca Morettoni.
- Info: http://www.morettoni.net/qmail-rblchk.html
- Scarica: http://www.morettoni.net/qmail/qmail-rblchk-2.4.1.tar.gz
- Vedi anche: http://www.spamhaus.org/
Per una guida esaustiva sul programma si consiglia la visione del sito dell'autore.
Installazione di qmail-rblchk
Per prima cosa dobbiamo applicare la patch errno, poichè il programma è derivato da djbdns di DJB. La patch è inclusa nei sorgenti di netqmail.
cd /usr/local/src wget http://www.morettoni.net/qmail/qmail-rblchk-2.4.1.tar.gz tar xzf qmail-rblchk-2.4.1.tar.gz cd qmail-rblchk chown -R root:root . patch < /usr/local/src/netqmail-1.06/other-patches/djbdns-1.05.errno.patch make setup check
Questo installerà qmail-rblchk nella cartella /var/qmail/bin.
Preparazione della cartella log
Se si desidera che il programma registri le sue attività e gli IP bloccati (cosa utile per creare una propria lista in seguito) è necessario creare un cartella per i log e assegnare i privilegi di scrittura all'utente sotto il quale gira qmail-smtpd:
mkdir /usr/local/etc/rbl chown -R vpopmail /usr/local/etc/rbl
Modalità di utilizzo
qmail-rblchk è un filtro che deve essere eseguito prima della consegna del messaggio (delivery). E' necessario installarlo nella prima riga del file .qmail-default.
> /var/qmail/bin/qmail-rblchk -h
qmail-rblchk: usage: qmail-rblchk [opz] [dir]
options may be:
-h this screen
-s add X-Spam header into the incoming mail (work only with delivery ``dir'')
-c turn on condredirect compatibility mode
-i NUM ignore first ``NUM'' IPs found in the header
-x IP do not check ``IP'', try to find other address in header
-v verbose (debug) mode
-V show program version
-q quiet mode (suppress any output)
-p don''t check private IP class:
127.0.0.0 - 127.255.255.255
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
-m check all IPs in email (default: check only first IP)
-l log write program action to ``log'' file
-L data write blocked IP to ``data'' file
-r addr use ``addr'' for RBL checking (if TXT record exist block mail)
-R addr use ``addr'' for RBL reverted checking (if TXT record NOT exist block mail)
-C addr use ``addr'' for one time RBL checking (if TXT or A record exist don''t block mail)
-a addr use ``addr'' for anti-RBL checking (if A record NOT exist block mail)
-A addr use ``addr'' for anti-RBL reverted checking (if A record exist block mail)
-X cdb check IP from tcpserver-style ``cdb'' file (IP:deny block mail from that IP)
You must specify one or more (max 32) RBL address, example:
qmail-rblchk -r dnsbl.sorbs.net -r sbl-xbl.spamhaus.org -r relays.ordb.org
You can ignore (-x option) no more than 16 IP address
If ``dir'' is given in command line and it exist all blocked mails are delivered
into Maildir ``dir'' (dir must start with a / or a . and end with a /);
the program run in ``delivery mode''.
The program exit status may be (normal mode):
0 when the message is not blocked
100 when the message is blocked
111 when fails or no checking options was given
In ``delivery mode'':
0 the message is not blocked (continue .qmail checking)
99 the blocked message has been wrote to ``dir'' Maildir
111 same as above
In ``condredirect compatibility mode'':
0 when the message is blocked
1 when the message is not blocked
111 same as above
Questo potente programma può registrare la sua attività, salvare gli IP bloccati, spostare lo spam nella cartella Junk, bypassare i messaggi in arrivo dalla rete interna.
Ecco come lo uso io nei miei file .qmail-default. E' necessario inserire una linea come questa all'inizio del file .qmail-default del dominio dove si vuole abilitare il filtro:
|/var/qmail/bin/qmail-rblchk -r zen.spamhaus.org -r dnsbl.sorbs.net -p -L /usr/local/etc/rbl/rbl.txt -l /usr/local/etc/rbl/qmail-rblchk.log
NB: Se si decide di usare zen.spamhaus.org come suggerito qui, assicurarsi di soddisfare i requisiti delle condizioni d'uso gratuite se non si vuole che l'accesso ai server sia inibito.
Un'altra cosa che si può fare è usare uno script della shell presente nella directory contrib della cartella sorgente per ruotare i log file e avvisare periodicamente l'amministratore del sistema su ciò che sta facendo il programma.
> cp /usr/local/src/qmail-rblchk/contrib/spam-report.sh /usr/local/etc/rbl/qmail-rblchk-report.sh > crontab -e 3 02 * * * /usr/local/etc/rbl/qmail-rblchk-report.sh postmaster@yourdomain.net 5
dove 5 è il numero massimo di file log da lasciare su disco.

