Realtime Block List (RBL) - qmail-rblchk

19 settembre 2011 by Roberto Puzzanghera 0 commenti

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.

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.

Aggiungi un commento