Firewalls richtig konfigurieren: Port 53 TCP und EDNS

Mitglied: LordGurke

LordGurke (Level 3) - Jetzt verbinden

08.01.2021, aktualisiert 09.01.2021, 1555 Aufrufe, 5 Kommentare, 4 Danke

Moin,

weil ich gerade diesen bescheuerten Fehler aus der Ferne debuggen durfte:

Liebe Menschen, die ihr Firewalls bei Kunden konfiguriert: DNS benutzt Port 53 auf UDP und TCP.
TCP ist nicht optional sondern wird in freier Wildbahn wirklich genutzt! Und ist auch standardisiert: RFC 1035, 4.2.2

Aber da dieser Fehler alleine noch genug Raum für funktionierendes DNS ließe:
Wenn eure Firewall noch der lange überholten Meinung ist, dass DNS-Antworten per UDP niemals einen Payload > 512 Bytes haben dürfen, sollte euer Resolver oder Forwarder, der hinter dieser Firewall steht, das auch wissen, damit dieser nicht per EDNS arglos größeren Payload anbietet.
Das starre 512 Bytes-Limit ist spätestens mit verbreiteter Einführung von EDNS überholt, denn jetzt können beide Seiten diese Payload-Größe aushandeln.


Also, kurz zusammengefasst:
    • DNS-Anfragen mit UDP und TCP erlauben
    • Wenn die UDP-Payloadgröße durch die Firewall begrenzt wird, muss der DNS-Resolver oder Forwarder diesen Wert kennen, damit er nichts falsches via EDNS advertised. Allerdings tut man sich schon aus Performance-Gründen einen Gefallen, wenn man UDP-Payload bis wenigstens 786 Bytes durchlässt - das reicht im Falle von DKIM und DNSSEC in vielen Fällen schon aus und verhindert die latenzbehafteteren Nachfragen per TCP.


Wer jetzt sagt: "Ach, was betrifft mich das, so riesengroße DNS-Antworten sind hochgradig exotisch und sowas haben wir hier nicht!":
Ausgang meiner Recherche war, dass der (aus meiner Sicht auch, aber anderweitig kaputte) Spamfilter beim Empfänger versuchte, die DKIM-Signaturen eingehender Mails gegen die DKIM-Einträge im DNS zu validieren, bei manchen Mails dann dabei wegen oben beschriebener Fehler aber keine Antworten bzw. "SERVFAIL" bekam und deshalb dann die E-Mail nicht haben wollte.
Ursache dafür war, dass der DNS-Server beim Empfänger per EDNS advertisete, dass er 1680 Bytes UDP-Payload empfangen kann. Und meine DNS-Server ihm daher wie geheißen die 517 Bytes großen Antworten per UDP schickten.
Die Firewall fraß diese Pakete auf, weil sie mehr als 512 Bytes Payload trugen. Eine Nachfrage des Empfänger-DNS-Servers via TCP scheiterte, weil die Firewall keine DNS-Anfragen per TCP heraus ließ. Also: Timeout auf allen Kanälen und damit keine Antwort.

Das Debugging wurde dadurch erschwert, dass dies nur bei einer Absenderdomain passierte. Mails anderer Domains auf dem selben Server mit dem exakt selben DKIM-Schlüssel im DNS liefen problemlos durch. Die problematische Domain war einfach insgesamt relativ lang (29 Zeichen mit Subdomain), die anderen, deutlich kürzeren Domains haben den Payload in der Antwort nicht über 512 Bytes aufgebläht.





Nachtrag:
Ich wollte doch noch ein paar nicht-repräsentative Grafiken über die Anfrage- und Antwortstatistiken meiner Nameserver mitgeben!

Das hier ist die Response-Size:

dns-rsizes - Klicke auf das Bild, um es zu vergrößern

Ja, das Problem mit der Response-Size betrifft für reguläre positive Antworten (Rcode 0) zwar nur 1-2% der Queries (zumindest bei den Domains auf meinen Nameservern), aber das reicht ja wie man sieht schon aus, um ernsthafte Probleme zu verursachen.

Die Antworten mit Rcode 3 sind Antworten auf Fragen nach nichtexistenten Namen (NXDOMAIN), wo man mit DNSSEC relativ große Antworten mitliefert, weil man durch NSEC3-Hashes ja beweisen muss, dass da nichts ist. Die würden auf jeden Fall kleben bleiben, da merkt man es aber kaum, weil der Name ja eh nicht auflösbar wäre.


Ein Blick auf die gewählten Transporte: Etwa 10% aller Anfragen kommen mit TCP, also nicht ganz unsignifikant.
dns-transp - Klicke auf das Bild, um es zu vergrößern


Das korreliert von der Menge her interessanterweise mit dem Anteil EDNS-Fähiger Resolver, die eine Buffersize von <= 1023 Bytes advertisen und deshalb für manche Antworten zwingend auf TCP umschalten müssen. Nicht-EDNS-Fähige Resolver scheinen kaum noch unterwegs zu sein.

dns-ednsbuffersizes - Klicke auf das Bild, um es zu vergrößern
Mitglied: lcer00
08.01.2021 um 20:06 Uhr
Hallo,

der Fehler kommt schnell mal von hinten durch die Brust daher und zwar wie folgt:

Zonentransfers erfolgen über TCP. Deshalb definiert man eine tcp-Regel für Zonentransfers, bei der nur die Zielserver freigegeben sind. Oder man sperrt Zonentransfers komplett mittels einer TCP-deny Regel. Danach gibt man dann halt UDP für alle anderen frei. Und schwupps hat man TCP-Nachfragen für lange Antworten vergessen.

So schnell geht das und man glaubt noch alles wunderbar korrekt gemacht zu haben.

Grüße

lcer
Bitte warten ..
Mitglied: Mystery-at-min
09.01.2021 um 12:12 Uhr
Hallo,

gut, was aber, wenn die Firewall DNS-Proxy ist?

Deine Empfehlung ist ein Hurra an jeden Malwareschreiber, denn DNS ist leider viel zu oft komplett liberalisiert - vermutlich aufgrund der "Einfachheit", der "Grundsätzlichkeit", sowie vermutlich der Unkenntnis des Admins.

https://www.computerwoche.de/a/datenklau-durch-unbemerkte-dns-tunnel,333 ...

(Kurzes 5sek Google Ergebnis, gibt sicherlich elitärere Quellen).

Das hier propagierte Konzept lädt quasi ein wirklich jedweden anomalen/maliziösen Verkehr über DNS zu schieben.

Ich sage, Klasse statt Masse.
Bitte warten ..
Mitglied: LordGurke
09.01.2021, aktualisiert um 17:12 Uhr
Die Firewallregeln gelten natürlich auch, wenn die Firewall selbst der Forwarder ist.
Mit händisch angelegten fehlerhaften Regeln kannst du auch den DNS-Dienst auf diesen Geräten verstümmeln und unbrauchbar machen.

Und es soll ja Szenarien geben, wo du vertrauenswürdigen Geräten (z.B. nachgelagerte Firewalls) erlauben willst, selbst per DNS im Internet nachzufragen.
Oder weil du einen bei dir stehenden autoritativen Server aus dem Internet erreichbar machen willst — in diese Richtung machen fehlerhafte Regeln die gleichen Probleme.


Und: Ich behaupte, als Malware-Schreiber kann ich auch deinen DNS-Proxy auf der Firewall missbrauchen um Daten zu exfiltrieren oder Malware nachzuladen ;-) face-wink
Bitte warten ..
Mitglied: Mystery-at-min
22.01.2021 um 13:57 Uhr
Mit händisch angelegten fehlerhaften Regeln kannst du auch den DNS-Dienst auf diesen Geräten verstümmeln und unbrauchbar machen.

Ein geübter DAU-Admin macht das nebenher.

Und es soll ja Szenarien geben, wo du vertrauenswürdigen Geräten (z.B. nachgelagerte Firewalls) erlauben willst, selbst per DNS im Internet nachzufragen.

Nenne Sie mir, aber damit machst du das Konzept etwas...

Oder weil du einen bei dir stehenden autoritativen Server aus dem Internet erreichbar machen willst — in diese Richtung machen fehlerhafte Regeln die gleichen Probleme.

Denke vom fehlerhaften gehen wir nicht aus, sonst - "man nehme Fritzbox oder DAU und sei wesentlich günstiger am Ziel."

Und: Ich behaupte, als Malware-Schreiber kann ich auch deinen DNS-Proxy auf der Firewall missbrauchen um Daten zu exfiltrieren oder Malware nachzuladen ;-) face-wink face-wink

Darfst du behaupten, aber kannst du auch beweisen? Welche Firewall wollen wir uns als erstes für den Gegenbeweis vornehmen?
Bitte warten ..
Mitglied: LordGurke
22.01.2021, aktualisiert um 14:22 Uhr
Zitat von Mystery-at-min:
Und es soll ja Szenarien geben, wo du vertrauenswürdigen Geräten (z.B. nachgelagerte Firewalls) erlauben willst, selbst per DNS im Internet nachzufragen.

Nenne Sie mir, aber damit machst du das Konzept etwas...

Wir betreiben absichtlich zwei Resolver mit verschiedener Software (PowerDNS und Bind). Das macht die DNS-Auflösung zuverlässiger, da ein Bug in er deinen Software, welcher die DNS-Auflösung stört, in der anderen nicht vorhanden ist.
Diese Art Bug ist inzwischen sehr selten geworden, aber das ist z.B. einer der legitimen Gründe, weshalb man zusätzliche Resolver haben möchte, die selbst rekursiv arbeiten und deshalb ungefiltert im Internet per DNS herumfragen können müssen.
Die Provider-DNS fallen spätestens dann weg, wenn du sehr viele Anfragen an DNSBLs durchführst und die DNSBLs Abfragelimits pro IP haben.


Oder weil du einen bei dir stehenden autoritativen Server aus dem Internet erreichbar machen willst — in diese Richtung machen fehlerhafte Regeln die gleichen Probleme.

Denke vom fehlerhaften gehen wir nicht aus, sonst - "man nehme Fritzbox oder DAU und sei wesentlich günstiger am Ziel."

Und dennoch ist die so entstandene Regel dann aufgrund Unvermögen fehlerhaft ;-) face-wink


Und: Ich behaupte, als Malware-Schreiber kann ich auch deinen DNS-Proxy auf der Firewall missbrauchen um Daten zu exfiltrieren oder Malware nachzuladen ;-) face-wink face-wink

Darfst du behaupten, aber kannst du auch beweisen? Welche Firewall wollen wir uns als erstes für den Gegenbeweis vornehmen?

Rein konzeptionell:
Wenn ich eine möglichst kurze Domain registriere, kann ich durch entsprechend lange Subdomains pro Anfrage - sagen wir mal - 50-60 Bytes exfiltrieren ohne dass die Anfragen doof aussehen. Wenn ich komprimiere sogar mehr.

Ich frage also nach "V2VyIGRhcyBsaWVzdCBpc3QgZG9vZgeqeq.prod.apps.meinegenerischedomain.tld" und habe damit schonmal den Text "Wer das liest ist doof" aus deinem Netz rausgetragen.
Auf meinem DNS-Server kann ich die Anfragen schön mitloggen und damit auch größere Datenfragmente über den Tag verteilt übertragen.

Per DNS kann ich dann auch relativ leicht Payload für Malware nachladen - muss ich ja nur als TXT-Record abfragen und halbwegs gut tarnen.
z.B. als "_443._tcp.prod.apps.meinegenerischedomain.tld", Typ TLSA. Oder ich frage syntaktisch nach DKIM-Schlüsseln.

Solange meine Domain nicht auf irgendwelchen Blacklists steht, wird die Firewall meine Anfragen mit hoher Wahrscheinlichkeit nicht filtern ;-) face-wink
Und ich kann ja, Domains sind billig, viele registrieren.
Bitte warten ..
Heiß diskutierte Inhalte
Off Topic
HomeOffice Pflicht - Büroaustattung vom Arbeitgeber?
h45okeg493sVor 1 TagFrageOff Topic37 Kommentare

Hallo zusammen, aufgrund der HomeOffice Situation wollte ich mal rumfragen, muss der Arbeitgeber neben der Hardware wie Notebook, etc. auch Büroausstattung wie Bürostühle zur ...

Server-Hardware
Gebrauchte Server von eBay-Kleinanzeigen
gelöst dh2411Vor 1 TagFrageServer-Hardware16 Kommentare

Hallo zusammen, neulich war ich auf eBay-Kleinanzeigen unterwegs und dort wurden mir einige Server vorgeschlagen. Ich habe dort auch meinen aktuellen Home-Server recht günstig ...

Backup
Backupmöglichkeit Teamviewer
gelöst greenhorn1Vor 1 TagFrageBackup19 Kommentare

Hallo, ich habe bei meiner Teamviewer Lizenz die Möglichkeit ein Backup des PC´s durchzuführen. Leider funktioniert das nicht! Nach Rückfrage an Teamviewer erhielt ich ...

Grafikkarten & Monitore
Zweiter Bildschirm geht sporadisch immer aus?!
GeronimooVor 1 TagFrageGrafikkarten & Monitore8 Kommentare

Moin zusammen, ich habe ein Problem mit meinem 2. Monitor und zwar geht dieser sporadisch immer für 1-2 Sekunden aus oder flackert ein bisschen ...

Windows Tools
Jemand hat bereits Teams für Ihre Organisation eingerichtet (Microsoft Teams)
nachgefragtVor 1 TagFrageWindows Tools6 Kommentare

Hallo Administratoren, bevor ich weiß, dass Internet ist voll davon, daher darf ich es kurz machen: Problem Wir nutzten ausschließlich die kostenlose Variante von ...

Switche und Hubs
Kurioses Problem IP Adresse ändern am Cisco SG350 10p
gelöst Xaero1982Vor 1 TagFrageSwitche und Hubs16 Kommentare

Moin Zusammen, ich habe hier einen neuen Cisco SG350 10p. Wie schon so oft wollte ich ihm eine neue IP geben, also gehe ich ...

TK-Netze & Geräte
Panasonic NS700 - Endgeräte klingeln nicht, bzw. Gespräche kommen nicht an
gelöst jensgebkenVor 1 TagFrageTK-Netze & Geräte24 Kommentare

Hallo Gemeinschaft, nun habe ich mir für meine gebrauchte Anlage doch noch eine gebrauchte BRI gekauft - Installation klappte soweit auch - raustelefonieren kann ...

Internet
TV-Anschluss zu DSL Anschluss
FabioST88Vor 1 TagAllgemeinInternet12 Kommentare

Hallo zusammen, ich bin vor kurzer Zeit in eine kleine Wohnung gezogen und habe nur einen TV-Anschluss sprich das runde Kabel. Leider kenne ich ...