Una Realtime Block List (RBL) è una lista di indirizzi che il fornitore della lista RBL ritiene che sia sorgente di Spam.
Update 28 ottobre 2022: aggiunto un appunto su come evitare di essere ignorati da spamhaus (grazie e Marco Varanda).
- Scarica la patch qmail-dnsbl
- Autore: Fabio Busatto
- Added support for welcomelists, TXT and A queries, configurable return codes 451 or 553 with custom messages (by Luca Franceschini)
Questa patch sostituisce il programma rblsmtpd dell'autore dello stesso qmail, Daniel Bernstein. Essa incorpora la parte riguardante il controllo nelle Block List all'interno di qmail-smtpd con il vantaggio che si può vedere l'envelope dalla lettura del log. Registrare l'envelope accanto all'IP bannato è importante per poter risalire sempre a che fine hanno fatto i messaggi non ricevuti e poter così dare risposte certe ai nostri utenti.
Un'altra miglioria di questa patch rispetto al vecchio rblsmtpd è che gli utenti che si autenticano per inviare la posta da remoto con un IP dinamiconon vengono bannati e quindi possiamo ora attivare il filtro anche sulla porta 587.
Per attivare il check rbl è sufficnete aggiungere le liste favorite nel control file dnsbllist (uno per riga) come segue:
cat > /var/qmail/control/dnsbllist << __EOF__ -b.barracudacentral.org -zen.spamhaus.org -psbl.surriel.com -bl.spamcop.net __EOF__
Ora riavviamo qmail e controlliamo che le liste scelte siano attive:
> qmailctl restart > qmail-showctl |grep dnsbl dnsbllist: List at -zen.spamhaus.org configured for dnsbl check. List at -b.barracudacentral.org configured for dnsbl check. List at -psbl.surriel.com configured for dnsbl check. List at -bl.spamcop.net configured for dnsbl check.
Migliorie rispetto alla patch qmail-dnsbl originale
- il file di default
control/dnsbllist
può essere sovrascritto con la variabile di ambiente DNSBLLIST - se la variabile di ambiente DNSBLSKIP è impostata, qmail-smtpd evita il controllo RBL
- se
control/dnsblfailclosed
o DNSBLFAILCLOSED sono state definite,qmail-smtpd
considera l'ip remoto come bloccato anche in caso di lookup failures (controllare il man dirblsmtpd
per maggiori dettagli) - supporto per la variabile di ambiente RBLSMTPD (leggere il man di
rblsmtpd
per maggiori dettagli) - dnsbllist può contenere linee vuote e commenti con '#' all'inizio o alla fine della riga; gli spazi vuoti iniziali o finali sono rimossi automaticamente
Esempi
Chiama rbl per un record TXT, restituendo il codice 451: "451 http://www.spamhaus.org/query/bl?ip=30.50.20.3"
zen.spamhaus.org
Chiama rbl per un record TXT, restituendo il codice 553: "553 http://www.spamhaus.org/query/bl?ip=30.50.20.3"
-zen.spamhaus.org
Chiama rbl per un record A, personalizzando il messaggio restituiro con un codice 451: "451 Message rejected"
zen.spamhaus.org:Message rejected
Chiama rbl per un record A, personalizzando il messaggio di ritorno con codice 553: "553 Message rejected", the following syntaxes are allowed:
-zen.spamhaus.org:Message rejected zen.spamhaus.org:-Message rejected -zen.spamhaus.org:-Message rejected
Chiama rbl per un recor A, personalizzando il messaggio di ritorno con la variabile IP, rimpiazzata con l'IP remoto:
zen.spamhaus.org:Message blocked from %IP%
dns welcomelist A query:
+welcome.dnsbl.local:welcomelist test +welcome.dnsbl.local
La seguente sintasi non è ammessa:
zen.spamhaus.org: zen.spamhaus.org:-
Come evitare di essere bannati dalle RBL lists
Alla fine di questa guida mostrerò come settare fail2ban
al fine di respingere IP sospetti anche per diminuire il numero di richieste alle liste RBL, evitando così di essere bannati a nostra volta da queste.
In alternativa, potete dare una occhiata a questa soluzione molto brillante che mi ha inviato Costel Balta, che persegue lo stesso obiettivo facendo però uso di shorewall
, ipsets
e swatch
.
Una cosa a cui prestare particolare attenzione quando si configura il server sono i dns usati, ovvero è necessario evitare di evitare di scegliere quelli pubblici come quelli di google come 8.8.8.8 per risolvere i servizi di spamhaus (maggiori info qui). Questo causerebbe infatti un bypass delle nostre richieste, in quanto l'uso di dns pubblici non consentirebbe loro di pesare il nostro carico.
Controllare la reputazione del proprio IP
Quando compri un indirizzo IP, come sai non è nuovo e erediti la sua reputazione. Quindi la prima cosa che dovresti fare è verificare se è listato in qualche RBL qui: http://multirbl.valli.org o https://mxtoolbox.com/SuperTool.aspx