Obwohl, so neu sind sie gar nicht. Bereits 2019 hat Spamhaus die Einführung erweiterter Return Codes angekündigt:
https://www.spamhaus.org/news/article/788/spamhaus-dnsbl-return-codes-technical-update.
Aber ab März wird es ernst:
https://www.spamhaus.org/news/article/807/using-our-public-mirrors-check-your-return-codes-now
Das betrifft alle Nutzer der Public Server, also alle, die z.B. zen.spamhaus.org in ihrer Config stehen haben. Die teilweise kostenfreien Spamhaus DQS (eigener Query Code via Subdomain) und auch der rsync Service sind nicht betroffen.
Was machen diese neuen Return Codes nun? Sie geben erweiterte Status Codes zurück. Normalerweise antwortet eine RBL auf eine Anfrage mit einer lokalen IP Adresse z.B. 127.0.0.2. Spamhaus kennt für die ZEN z.B. die Return Codes 127.0.0.2-11. Hinter den unterschiedlichen Zahlen im letzten Oktet ist die jeweilige Kategorie des Eintrags kodiert. Genaueres zu den Return Codes hier: https://www.spamhaus.org/faq/section/DNSBL%20Usage#200
Die neuen Error Return Codes liegen im Bereich 127.255.255.0/24. Derzeit gibt es drei:
Und das ist auch so schon mal schicker, als wenn es nur einen DNS Servfail geben würde.
##Also wo ist das Problem? Deine Config
Zur Abfrage der Spamhaus RBL setzen wir in unserer Postfix Restriction Musterlösung, wie dutzende andere Howtos in aller Welt, den Eintrag
reject_rbl_client zen.spamhaus.org
So schön, so einfach. Aber so reagiert Postfix auf jeden einzelnen Return Code mit einem Reject, denn normalerweise sendet eine RBL, wenn etwas nicht gelistet ist, NXDOMAIN zurück - Eintrag nicht gefunden.
Jeder der neuen Error Return Codes wird also zu einem wahrscheinlichen False Positive und abgelehnt!
Das haben wir neulich erst aus einem lustigen anderen Grund gesehen:
https://www.golem.de/news/spamfilter-e-mail-zustellungsfehler-durch-abgelaufene-spamcop-domain-2101-153801.html
Und natürlich gibt es dazu auch eine Postfix Lösung:
reject_rbl_client zen.spamhaus.org=127.0.0.[2..11]
Wir geben Postfix gleich mit an, auf welche Return Codes er reagieren soll. Im Fall von Spamhaus möchten wir auf die Rückgabewerte 127.0.0.2-11 reagieren, also SBL, XBL, DROP, PBL. Wer die DSL-IPs nicht gleich rejecten möchte, hat so sogar die Möglichkeit, die PBL auszunehmen 127.0.0.[2..9]. Alle anderen Return Codes werden ignoriert.
Für die Rückgabewerte haben sich viele RBL’s ein eigenes Schema ausgedacht. Während die meisten einen Return Code von 127.0.0.2 kennen, gibt es darüber hinaus verschiedene Vorgehensweisen. Manche bilden in ihren möglichen Rückgaben auch Blacklisting und Whitelisting gleichzeitig ab. Daher sollte man jede eingesetzte RBL vorab darauf überprüfen.
Aber wo lauert diese Gefahr noch überall? In Spamassassin wurden die neuen Return Codes schon 2019 eingepflegt und auf bestehende Return Codes wurde bereits vorher geachtet. Ebenso bei Rspamd.
## Kurz: Kontrolliert eure Custom Configs
Viele Howtos für Spamassassin haben extra (und damit sogar doppelte Configs) für Spamhaus, die eben nicht auf den Return Code achten:
#header RCVD_IN_ZEN eval:check_rbl('zen-lastexternal','zen.spamhaus.org.')
#describe RCVD_IN_ZEN Received via a relay in Spamhaus Zen
#tflags RCVD_IN_ZEN net
#score RCVD_IN_ZEN 3.0
Das gibt auf jede Mail +3 Punkte und ist mit den aktuellen Spamassassin Regeln heute so auch unsinnig ;)
Ansonsten Postscreen, postfwd und vor allem policyd-weight - wer es noch im Einsatz hat. Dabei kann man Postscreen ebenso wie reject_rbl_client die Return Codes beibringen. Und es sieht so aus, als ob postfwd schon im Default auf einen 127.0.0.[0-255] Return filtert.
Bei policyd-weight sieht es leider schlecht aus. Derzeit kann das Tool nicht mit verschiedenen Rückgaben umgehen.
Und wenn man schon einmal nach den Einstellungen von Spamhaus sucht, könnte man auch allen anderen RBL’s die richtigen Return Code eintragen ;-)
Autor: Carsten Rosenberg, Linux-Consultant, Heinlein Support
Kommentare
2 Antworten zu # Achtung: neue Return Codes bei Spamhaus
Spamhaus hat in der Konfigurationsanleitung
https://docs.spamhaus.com/datasets/docs/source/40-real-world-usage/Publ…
einen Fehler:
Die Zeile
warn_if_reject rbl_client zen.spamhaus.org=127.255.255.[1..255]
muss
warn_if_reject reject_rbl_client zen.spamhaus.org=127.255.255.[1..255]
lauten.
Wenn man schon dabei ist seine Postfix main.cf anzupassen dann kann man auch direkt die expliziten Spamhaus Error Codes berücksichtigen:
Beispiel:
reject_rbl_client zen.spamhaus.org=127.0.0.[2..11]
warn_if_reject reject_rbl_client zen.spamhaus.org=127.255.255.[1..255]
Damit bekommt man dann also einen Hinweis geloggt, wenn man diese DNSBL falsch benutzt (Überschreitung des Abfragelimits oder ähnliches).