Öffentliche DNS Anfragen / Hardcoded DNS umleiten bzw. unterbinden - DNS, DoT, DoH und Co

tiermutter

Well-known member
Moin zusammen,

dem einen oder anderen bin ich damit ja schon auf den Sack gegangen... ich denke es nun ist es Zeit euch alle damit zu nerven :D

Ich möchte unterbinden, dass Clients mit falsch oder fest eingestellten DNS Servern direkt über öffentliche DNS Server auflösen, stattdessen sollen die Anfragen an meinen eigenen Resolver (DNScryptProxy) umgeleitet und von diesem aufgelöst werden. Warum? Ganz einfach weil ich (!) entscheide, welche DNS Server verwendet werden dürfen.

Für normales DNS auf Port 53 stellt das auch kein Problem dar, die Anfragen werden einfach in der Firewall auf den eigenen Resolver umgeleitet, fertig.
Bei DoT und DoH wird das schon komplizierter und fängt damit an, dass der Client nur Antworten vom angefragten Server akzeptiert.
An dieser Stelle gleich eine Frage auf die ich noch keine Antwort gefunden habe:
Ist das nun ein DoT bzw. DoH Feature, oder ist die Verwendung von DNSSEC daran "Schuld"?

Da ich leider noch keine Lösung habe, wie ich diese Anfragen umleiten kann (was ja auch Sinn und Zweck des Features ist), behelfe ich mir momentan damit, diese schlichtweg zu blockieren. Je nach Anwendung fällt diese dann auf normales DNS zurück oder endet im Timeout. Das Blockieren selbst ist bei DoT (Port 853) kein Problem, bei DoH (Port 443) stellt sich das aber auch schon wieder kompliziert dar, da man 443 nicht einfach immer umleiten kann. Das DoH Problem löse ich, indem ich Listen von öffentlichen DNS Servern als Alias verwende und den Zugriff von Clients auf diese IPs verbiete. Leider sind diese Listen nicht unbedingt aktuell. Daher eine zweite Frage:
Kennt ihr Listen mit DNS Servern, welche zuverlässig aktualisiert werden und vollständig sind?

Ich hatte einst echt lange dazu im Netz rumgesucht und tatsächlich nur einen veralteten Post gefunden, bei dem sich jemand ebenfalls Gedanken um das Thema gemacht hat, was mich zu den letzten Fragen bringt:
Interessiert es niemanden von euch, auf welchem Wege eure Clients Namen auflösen bzw. dass diese eure eigenen Regeln mit Leichtigkeit umgehen können?
Falls doch: Habt ihr andere Lösungsansätze?
Falls nicht: Stelle ich mich hier zu sehr an?


Cheers!
 

blurrrr

Well-known member
Och, das ist ganz einfach: Halt Dich einfach fern von diesen Listen und mache es so, wie Du Probleme "normalerweise" (in anderweitigen Situationen) angehen würdest.

Gehen wir mal davon aus, Du hättest Kinder und diese würden (ausnahmsweise mal 😁) auf Dich hören. Deine Kinder sollen von Ihrem Taschengeld keine Süssigkeiten kaufen. Was machst Du nun? Verbietest Du Deinen Kindern nun jegliche Süssigkeitenläden, Kioske, sonstige Einkaufsmöglichkeiten zu betreten, oder verbietest Du ihnen einfach Süssigkeiten vom Ihrem Taschengeld zu kaufen?

Kurzum: DoT (wie Du schon geschrieben hast) kannst Du über eine ausgehende Sperre für Port 853 erreichen. Bei DoH wird es natürlich etwas komplizierter, aber wenn es "Dein" Netz ist, wäre "die" Möglichkeit eine ganz einfache: An der Firewall die SSL-Verschlüsselungen aufbrechen (bzw. Client redet mit Proxy, Proxy mit dem Rest der Welt), so bist Du in der Lage trotz SSL-Verschlüsselungen in die Pakete zu schauen und kannst dort auch filtern (z.B. nach dns-query).

Interessant ist an der Kommunikation aber, dass i.d.R. die "großen" Anbieter inkl. CDN genutzt werden und vorher eine Anfrage vom Client rausgeht (kein DoH), welche erstmal nachfragt, welchen Server man denn benutzen kann (kannste mal mit tcpdum oder wireshark nachgucken). Theoretisch müsste man dann von den "großen" auch keine IP-Adressen mehr pflegen, sondern könnte auch im Vorfeld einfach schon DNS-Anfragen an die entsprechenden CDNs/FQDNs unterbinden (die laufen nämlich "noch" nicht über DoH, da ja noch kein Server dafür bekannt ist beim Client). So könnte man ggf. schon im Vorfeld Dinge wie "cloudflare-dns.com" o.ä. unterbinden. Ist aber auch wieder mit einiger Arbeit verbunden (und muss auch ständig aktualisiert werden). Mag jetzt noch relativ einfach sein, die Anzahl der Server (auch von kleineren Anbietern) wächst aber von Tag zu Tag, von daher würde ich persönlich eher direkt den Traffic filtern. Für intern und eigenes Gedöns wäre das wohl der beste, sicherste und am wenigsten aufwändigste Weg - eben eine dauerhafte Lösung ohne ständig nachzuarbeitende Listen. Bei Gästen z.B. sieht das schon wieder anders aus, wenn die erst noch Dein CA-Zertifikat installieren müssen (ausserdem könntest Du dann auch in den sonstigen Traffic schauen und ich glaube, dass die Leute das wohl eher weniger gern hätten... oder Du lässt es Dir unterschreiben) 😁
 

rednag

Well-known member
Tja @tiermutter,

nun bist Du an dem Punkt angelangt wo ich schon vor Monaten anstand.
DNS über dubiose Listen zu blockieren, (wie Du bereits angemerkt hast nicht immer aktuell sind), oder den Traffic aufzubrechen
sind auch nicht so ohne. Ich jedenfalls sehe das nicht als meine Lebensaufgabe an.
Ich habe die Netze über die Firewall/Switch segmentiert und das Gast-WLAN z. B. darf über 80/443 ins WAN.
Was die Geräte dann innerhalb des vLANs feiern interessiert mich nicht mehr wirklich.
 

tiermutter

Well-known member
So könnte man ggf. schon im Vorfeld Dinge wie "cloudflare-dns.com" o.ä. unterbinden. Ist aber auch wieder mit einiger Arbeit verbunden (und muss auch ständig aktualisiert werden).
Das macht letztlich leider kaum einen Unterschied, da genau so aufwändig wie Du sagst.
An der Firewall die SSL-Verschlüsselungen aufbrechen (bzw. Client redet mit Proxy, Proxy mit dem Rest der Welt)
Das klingt zumindest erstmal ganz nice... Aber sicherlich werde ich nicht bei allen Geräten ein entsprechendes Zertifikat installieren können, Gäste wären mir dabei noch egal, die haben hier auch ihr eigenenes VLAN und es interessiert mich wenig, was mit denen passiert. Auch kann ich nicht einschätzen, wie sehr das die Firewall / CPU belastet, ich würde mir nur sehr ungern einen Xeon als Firewall hinstellen :D
nun bist Du an dem Punkt angelangt wo ich schon vor Monaten anstand.
😝 ... und irgendwann wird es eine schicke Lösung geben.
DNS über dubiose Listen zu blockieren, (wie Du bereits angemerkt hast nicht immer aktuell sind)
Wenn es aber eine Liste geben würde, wäre das Ding erledigt. Da stellt sich die Frage, wie solche Listen überhaupt erstellt werden. Da wird doch sicherlich ein Automatismus hinterstecken. Aktuell habe ich gut 25.000 Einträge in der Liste, die wird doch niemand manuell zusammengeschrieben haben?!
Was die Geräte dann innerhalb des vLANs feiern interessiert mich nicht mehr wirklich.
Und Deine eigenen Geräte im LAN dürfen auch tun was sie wollen? Bekommen zwar DNS Server vorgeschrieben, aber wenn sie dann halt doch andere verwenden, egal ob langsam, mit Logging in China oder USA und an eventuellen DNS Filtern vorbei, ist das auch ok?

Und angenommen, jemand möchte pornografische Inhalte von seinen Kindern fernhalten, verwendet dafür entsprechende DNSBL, dann darf der Client/ Browser entscheiden, ob die Kinder das sehen dürfen oder nicht?
 

rednag

Well-known member
Die Geräte im LAN sowie vLANs nutzen AdGuard als DNS.
Und DoT, DoH...so what. Ich kann und will mich nicht mehr um alles kümmern.
Bei Dir Jungspund sieht das vermutlich noch anders aus. :p
Zwar wäre mir eine vernünftige und funktionierende Lösung auch lieber, aber es soll eben auch keine Lebensaufgabe werden.
 

tiermutter

Well-known member
Ein ganz kleines Bisschen tut sich was bei dem Thema. Zumindest war es zuletzt immer wieder mal Thema im OPNsense Forum, auch wenn es immer wieder im Sande verläuft.
Dort wurde die Tage auch auf eine sehr gute, aktiv gepflegte DNS Server Liste (v4 und v6) genannt, die ich bislang noch nicht kannte.

Insgesamt kann ich nun den Zugriff auf etwa 33.400 DNS Server blockieren. Sicherlich noch nicht das Ende der Fahnenstange, aber immerhin :)
 

-jody-

Active member
hi..
ich verstehe die Dramatik offenbar noch nicht so ganz :unsure:

Also Überschriften Heimnetz und DNS...
In meinem Netz bin ich der Admin und lege fest, welcher DNS-Server genutzt wird. Dieser wird mittels DHCP an die möglichen Clients vergeben. Soweit so gut ;)
Sollte sich jemand in meinem Gast befinden, ist es mit schlicht egal, wie er diesen Dienst auf seinem Endgerät konfiguriert hat.
Alles was sich im internen Netz befindet, wird sowieso von mir eingerichtet, gepflegt und aktualisiert (Heimnetz eben ;) )

Ich bin da rein gedanklich bei rednag:
...so what. Ich kann und will mich nicht mehr um alles kümmern.

Ich gebe allerdings zu, dass ich das Thema durchaus spannend finde und bei Gelegenheit sich auch mal tiefer in die Materie einsteigen werde, auch wenn ich die "Notwendigkeit" in meinem HEIMNETZ derzeit nicht sehe... ;)
 

blurrrr

Well-known member
In meinem Netz bin ich der Admin und lege fest, welcher DNS-Server genutzt wird.
Das siehst Du nicht ganz richtig, da die Anfragen via DoH (DNS over HTTPS, RFC8484) in Webpakete verpackt werden (heisst ja nicht ohne Grund so). Guckst Du nicht in die Verbindung hinein (SSL aufbrechen/Zertifikate unterschieben (das kann sich ggf. wieder mit HSTS beissen)), wirst Du nie erfahren, ob es ein DNS-Request war. Sicherlich kann man anhand der IP irgendwelche Mutmaßungen anstellen, aber 1000%ig ist das nicht (zumal jeden Tag neue Server dazu kommen und theoretisch kann ein Gast ja auch einen laufen haben, von welchem Du nix weisst - nach wie vor würdest Du nur den HTTPS-Traffic sehen.

Aber... lange Rede kurzer Sinn: Teste es einfach selbst:

- DNS komplett sperren
- Browser: z.B. Chrome -> Einstellungen -> Datenschutz und Sicherheit -> Sicherheit -> "Sicheres DNS verwenden" -> einen aus der Liste wählen
- DNS via Chrome durch URL-Aufrufe testen

Die Pakete kommen als HTTPS bei der Firewall an und gehen auch als HTTPS aus der Firewall hinaus. Von DNS siehst Du da erstmal nichts, sofern direkt IPs bei den Anfragen genutzt werden. Ist nur ein FQDN hinterlegt, wird der erste Request noch ein ganz normaler DNS-Request nach einem A/AAAA-Record sein, wo versucht wird, die IP des entsprechend gewählten DoH-Servers zu ermitteln.

@tiermutter geht eben den Weg, dass er sich an einer Liste orientiert, wo viele DoH-Server gelistet sind und diese einfach sperrt. Kann man sicherlich machen, wird aber nie "vollständig" sein. Hat Dein Gast selbst einen DoH-Service laufen und nutzt diesem aus Deinem Netz heraus, würde z.B. die Liste von @tiermutter jetzt auch nicht unbedingt helfen (Wer sollte es denn den Listenbetreibern melden? ;)). Insofern bleibt eigentlich nur die Option, entsprechend in die HTTPS-Pakete hinein zu schauen und entsprechend nach versteckten DNS-Anfragen zu filtern, was natürlich wiederum extremst auf die Privatsphäre drückt. In einer Firma sicherlich kein Problem (IT darf nur geschäftlich genutzt werden, nix privates, usw.), privat rechtlich jedoch eher "bedenklich"... ☺️

@tiermutter's Variante ist sicherlich eine "schnelle" Lösung, welche den Großteil der DoH-Requests (vermutlich) abfängt, da viele öffentliche Server auf der Liste stehen (primär aber vermutlich eher von größeren Betreibern). Gegen das Kleinvieh kommt man damit halt auch nicht an, aber ist auch immer die Frage, ob man sich den Aufwand wirklich machen will für das private Netzwerk (muss man ja auch mal dazu sagen) 🙃
 

rednag

Well-known member
Na ja, so prinzipiell wäre mir eine "einfache" Lösung auch lieber. Aber das Vorgehen anhand von Listen welche wie von @blurrrr bereits angemerkt nie aktuell sind erscheint mir falsch. Und HTTPS aufzubrechen um dort DNS rauszufiltern klingt noch falscher. 🙃 Ich hab mich damit abgefunden, glücklich bin ich aber nicht.
 

UdoAA

Active member
Muß @rednag beipflichten, man kann sich heute nicht mehr um alles im Internet kümmern, dazu gibt es zu viel und ist zu komplex.
ICh habe auf meinem DHCP Server ein gut funktionierendes pihole laufen, der die DNS-Anfragen an meine Fritzbox weiterleitet, von da aus gehts via DoT. Mehr will ich nicht machen, wenn eine Webseite partout via DoH eine DNS-Anfrage stellt, soll sie, ich denke, ich habe ein ganz gutes Gefühl dafür, welche Webseiten vertrauenswürdig sind. Und vollstädnige Sicherheit kanns nicht geben.
Mehr Gedanken machen ich mir da über das Tracking von facebook etc.
 

tiermutter

Well-known member
Mehr Gedanken machen ich mir da über das Tracking von facebook etc.
Das spielt da doch mit rein.
Ich blocke Werbung und Tracking auf DNS-Ebene, dazu muss zwingend mein Resolver verwendet werden.
Ist in einem Programm oder Gerät der DNS fest vorgegeben, interessiert es nullkommanix, was der DHCP als DNS bekanntgibt oder was in dem Betriebssystem für ein DNS eingestellt ist.
Die verwenden einfach ihren DNS und gut... und damit ist die Blockade von Tracking und Werbung spielend einfach umgangen.

Was die Sicherheit angeht habe ich da auch wenig Bedenken, schließlich wird durch DoT/DoH ja schon eine gewisse Sicherheit erreicht, die ich (nach dem Filter) ebenfalls einsetze. Die bösen Dinge (wenn zB ein böses Programm mal mit einem bösen, fest programmiertem DoH-DNS Server um die Ecke kommen sollte) werden ohnehin auf IP Ebene geblockt, hier habe ich also auch wenig Sorge.
 

UdoAA

Active member
Da ich nicht mit facebook arbeite habe ich ich im pihole alle bekannten facebook-Domains geblockt, damit sollte das größte Problem abgestellt sein.
 

the other

Well-known member
Moinsen,
ich finde das Thema mit den eigens gepflegten Listen auch schwierig und ehrlicherweise: ich vermute, ich würde die Eskalationsspirale irgendwann verlassen, weil zuviel Arbeit.
Aktuell behelfe ich mir damit, dass generell alle DNS Anfragen direkt über den Resolver der *sense laufen. Alles auf Port 53 geht dahin und wird dort gefiltert. Damit ist das Problem mit Anfragen via 853 schon mal weg.

Da ich nicht mit facebook arbeite habe ich ich im pihole alle bekannten facebook-Domains geblockt, damit sollte das größte Problem abgestellt sein.
Das ist auch gut so. Nur: das ist ja genau das Problem hier...fragt ein Gerät / Programm DNS via 53 ab, ohne dass die Anfrage verschlüsselt wird mit https, dann erkennt dein Pihole das und sagt NÖ. Nutzt das Gerät /Programm aber eine verschlüsselte Anfrage, dann erkennt Pihole nicht, was bzw wer da beim DNS Server erfragt wird, folglich greifen deine auf DNS basierenden Blocklisten nicht und HUI, lauter Nackedeis auf dem Kindertablet....(so als eine der doofen Fälle).

Die großen DoH Server (google, usw) habe ich als Aliase in der *sense eingetragen. Damit erwische ich sicher nicht alles, was da ggf. angefragt wird. Aber doch einen ziemlichen Teil, den afaik gibt es bisher doch eine überschaubare Liste an Anbietern dazu.
Erste Listen sind im Netz auch am Entstehen, ich vermute mal, das wird noch stressiger in den nächsten Jahren (so wie gefühlt alles aktuell).

Bis dahin: beobachten, nicht immer alles installieren, was blinkt, aufmerksam sein...und zum Glück / leider aktuell auch nicht das weltallergrößte Problem bzgl. Netzwerksicherheit...
;)
 

Letzte Anleitungen

Statistik des Forums

Themen
586
Beiträge
8.667
Mitglieder
204
Neuestes Mitglied
sina27
Oben