Direkt zum Inhalt
24.02.2021 - Admin-Alarm

# Achtung: neue Return Codes bei Spamhaus

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.

Funktionsweise der neuen Return Codes

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:

  • 127.255.255.252 = Du hast dich bei der Subdomain verschrieben z.B. xen anstatt zen
  • 127.255.255.254 = Du nutzt einen öffentlichen DNS Resolver deines ISPs zur Abfrage. (Diese sind wegen der Flut der Abfragen natürlich gesperrt.)
  • 127.255.255.255 = Du nutzt zwar deine eigene IP,aber fragst zu viel

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

h-Icon
Hermann Gotstchalk
20. April 2021 um 17:06

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.

g-Icon
Georg Sauthoff
27. August 2023 um 16:25

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).