Hardcoded DNS in Apps und Endgeräten



  • Hallo zusammen,

    mir ist seit kurzem aufgefallen, dass meine pfSense Anfragen von mehreren internen Clients zum Google DNS 8.8.8.8 blockiert. Dies lies sich dahin zurückverfolgen, dass ein DNSBL Feed mittlerweile eine Google DNS IP in seiner Block_List aufgenommen hat.

    Das verwunderliche war aber viel mehr, ich nutze gar keine Google DNS Server! Weder habe ich die Google DNS Server als Forwarder im Unbound konfiguriert noch haben die Clients einen manuell gesetzten DNS Server.
    Nun habe ich etwas gegooglet und dabei feststellen müssen, dass mittlerweile einige Apps (z.B. Chrome) oder auch einige Endgeräte (Nvidia Shield, Google Home Mini, Chromecast) teilweise Anfragen hart kodiert an die Google DNS Server schicken.

    Beispiele:
    https://www.reddit.com/r/googlehome/comments/8917ci/google_home_mini_using_its_own_dns_addresses_are/
    https://www.reddit.com/r/pihole/comments/8iwuig/disable_async_dns_resolver_in_google_chrome/
    https://www.xda-developers.com/fix-dns-ad-blocker-chrome/

    Der ein oder andere fragt sich jetzt sicher, was daran schlimm ist.
    Zum einen betreibe ich nicht ohne Grund meinen eigenen DNS Resolver um Anfragen eben nicht an andere DNS Server weiterleiten zu müssen und sie dort ggf. noch ausgewertet oder manipuliert werden. Zum anderen hat gerade im Beispiel Chrome es dazu geführt, dass ADs teilweise wieder geladen wurden, da die pfsense die Anfragen anscheinend gar nicht erhalten hat.

    Also habe ich kurzerhand eine NAT Regel auf das LAN Interface gelegt und lasse nun alle DNS Anfragen zu 8.8.8.8 und 8.8.4.4 zu meiner pfSense IP umleiten. Möglicherweise ist das nicht die optimale Lösung jedoch funktioniert sie.

    0_1528211243613_84141c04-cc97-49e7-8ff3-132b4635c79e-grafik.png

    In dem Beispiel sieht man, wie der Client zwar die Google DNS Server anfragt, jedoch die pfSense mit Hilfe des DNSBL Feeds antwortet.

    Habt ihr damit schon Erfahrung gesammelt und es ggf. anders gelöst?


  • Moderator

    @m0nji Jetzt wo dus schreibst, fällt es mir auch auf, dass es durchaus Sachen gibt, die das hardcoded auflösen. In dem Fall denke ich wirst du mit der NAT Regel die "schonendste" Art getroffen haben, das umzuleiten. Aber ich hatte gestern auch erst einen pfSense Support Fall, wo eine Telefonanlage nicht laufen wollte mit Fingerzeig auf die pöse Firewall - bis sich rausstellte, dass der Kollege da nur seine VoIP Gegenstelle und die DNSe geroutet hatte. Die wurden aber gar nicht gefragt. Als er dann mal ne default Route eingetragen hatte (warum auch immer er nur Host Routen wollte...) ging es plötzlich aber der DNS Call ging an die 8.8.8.8, nicht an die internen Resolver obwohl die in seiner Kiste eingetragen waren - angeblich. Irgendein Programmteil hat wohl hardcoded die anderen Server angefragt und keine Antwort bekommen.

    Also zukünftig durchaus ein Auge wert, wenn man analysiert, wo/ob es irgendwo DNS leaks o.ä. gibt (bei VPN etc.) oder warum Geräte nicht funktionieren, obwohl sie doch theoretisch per DHCP die Sense als DNS gepusht bekommen.



  • @jegr ich hoffe es war keine Cisco Anlage ;) Die Teile haben da auch ihre Eigenarten beim DNS. (wobei, nicht nur da...)
    Ich muss das jetzt erstmal beobeachten und habe auch explizit mal ein Logging eingeschaltet für DNS Anfragen Richtung Google. Ebenfalls das Thema Adblock via DNS werde ich jetzt etwas genauer beobachten.