DNSSEC fähiger Resolver auf dem Pi

vorhergehende Artikel in: Linux
13.08.2022

Nachdem ich meinen Raspi immer weiter zum Home-Server ausbaue, versuche ich auch immer mehr, mich vor den Versuchen zu schützen, in das einzudringen, was ich für meine Privatsphäre halte. Nun habe ich einen weiteren Schritt in dieser Richtung vollzogen:

Nachdem ich mir mittels des Projekts PiHole meinen eigenen Adblocker und Spam-Bekämpfer eingerichtet habe, habe ich mich weiter unabhängig gemacht, indem ich mir meine eigene Atom-Uhr gebaut habe.

Ich bin auch endlich dazu übergegangen, eine eigene VPN-Infrastruktur in Betrieb zu nehmen, die es mir erlaubt, all diese schönen Dinge auch außer Haus zu genießen.

Als vorerst letzten Baustein in diesem Bestreben nach Unabhängigkeit habe ich nunmehr die PiHole-Installation nochmals angepasst: Bisher leitete der PiHole DNS-Abfragen die noch nicht gecacht waren und nicht abgelehnt/gefiltert werden sollten an einen festzulegenden externen DNS-Server weiter.

Aber wo auch immer er sich hinwendet bzw. welchen extenen Server man auch immer verwendet: eine externe Partei gewinnt dadurch Zugriff auf Informationen, die ich für höchst privat halte: Nämlich über den Verlauf der Verbindungsdaten zu externen Servern - und zwar nicht nur zu Webservern.

Daher erschien es mir erstrebenswert, dem durch das Einrichten eines eigenen DNS-Resolvers entgegenzuwirken. Vor ein paar Tagen fand ich einen sehr schönen Artikel, in dem genau das erklärt wurde - auch noch auf der Basis des PiHole; also genau das, was ich gesucht hatte.

Nachdem ich dieser Anleitung gefolgt war, funktionierte noch nicht alles: Die Anleitung geht davon aus, dass der Pi gleichzeitig als DHCP-Server im lokalen Netz fungiert und daher auch die Namen in diesem Netz (dieser Domain) auflösen kann. Da das bei mir nicht so ist - und ich keine Lust hatte, das umzukonfigurieren - folgte ich einem weiteren Tutorial, das erklärte, wie man diese Anfragen an einen anderen Resolver weiterleitet (bei mir immer noch die Fritz-Box).

Als letztes Tüpfelchen auf der Sahnetorte dieses Erfolges hätte ich jetzt gerne noch die Informationen des Resolvers in Grafana überwacht, leider jedoch existiert dafür bisher noch kein Input-Plugin dafür - allerdings wünschen sich so etwas bereits andere und es liegt allerdings bereits ein Merge-Request für ein solches vor; daher gehe ich davon aus, dass ich auch das in naher Zukunft umsetzen kann...

Aktualisierung vom 1. Dezember 2019

Nachdem ich bisher eigentlich nie Probleme mit dem beschriebenen Setup hatte - von einigen kleineren Ausfällen einmal abgesehen, die sich aber immer durch einen Neustart des Pi lösen ließen - war heute morgen Schluss mit Internet. Nichts ging mehr - weder die lokalen Zonen noch das große weiter Internet. Es dauerte eine Weile, bis ich die Ursache gefunden hatte: Das Update der Zonen war fehlgeschlagen und hatte die Datei in einen 0 Byte großen Zombie verwandelt. Das Cron-gesteuerte wget-Statement zur Aktualisierung versucht den Download aber über einen DNS-Namen für den Server. Damit hatte ich ein wunderschönes Henne-Ei-Problem und ich musste meine DNS-Auflösung von Hand um den Pihole herumbiegen, um zunächst einmal wieder die Datei herunterladen zu können, die anschließend die Namensauflösung für alle wieder möglich machte.

Kurz zusammengefasst: Ich habe das Management des DNS auf meinem Pihole nun geändert: vor dem Herunterladen der neuen Datei wird zunächst mal die bisherige als Backup-Kopie verewigt - für den unwahrscheinlichen Fall, dass beim Herunterladen noch einmal Probleme auftauchen werde ich dann auf das lokale Backup zurückgreifen können.

Aktualisierung vom 13. August 2022

Nachdem mich das Problem mit dem fehlgeschlagenen Update der Zonen neulich wieder betroffen hat, habe ich nun den Cron-Job nochmals ein wenig verändert - des Ergebnis des Aufrufs von wget wird gecheckt und nur falls dort kein Fehler erkannt wurde und die heruntergeladene Datei nicht leer ist wird die Datei in /etc/powerdns/named.root durch die heruntergeladene ersetzt.

/usr/bin/wget --quiet https://www.internic.net/domain/named.root \
-O /tmp/named.root; if [ $? -eq 0 ]; then if [ -s /tmp/named.root ]; \
then mv /tmp/named.root /etc/powerdns/named.root; fi; fi

Hier noch eine Ressource zu DNSSEC und wie man die korrekte Funktionsweise prüft:

Artikel, die hierher verlinken

Osterprojekt 2023: DNSSEC

23.05.2023

Das Osterprojekt dieses Jahr sollte sich mit EMail-Servern, Nameservern, DNSSEC und ACME (LetsEncrypt) beschäftigen.

PiHole-Bug bei Installation

25.07.2021

Ich trage mich aktuell mit dem Gedanken, analog zu meinen Skripts zur Einrichtung von Kartenservern oder Netzwerkinfrastruktur einen kleinen Server komplett unattended einrichten zu können, der PiHole, DNSSEC und einen autonomen root-Resolver integriert.

DNS-Fallback ohne IP-Adress-Sharing

12.02.2021

Ich fasse zunächst mal das Szenario zusammen: DNS komt über DHCP und der DHCP-Server ist nicht in der Lage (oder kann nicht so konfiguriert werden) ein oder mehrere DNS Fallbacks mitzuschicken

Raspberry mit schnellem Massenspeicher

30.05.2020

Ich habe auf meinem Raspberry 3 eine Instanz InfluxDB und Grafana fürs Monitoring installiert. Diese Konfiguration läuft nun bereits verhältnismäßig lange und ich stellte erste Abnutzungserscheinungen fest...

LXC bootstrap für GUI Container

02.07.2019

Nachdem ich bereits öfter über LXC und xpra berichtet habe möchte ich hier nun ein Skript vorstellen, mit dem man sehr schnell zu einem Container kommen kann, in dem man graphische Anwendungen betreiben kann, von denen man den Eindruck hat, dass sie in einer Sandbox besser aufgehoben wären.

Alle Artikel rss Wochenübersicht Monatsübersicht Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Fährnisse des Buildprozesses unter Windows

    17.07.2019

    Nachdem ich begonnen hatte, mich mit der Beschleunigung der Berechnung des Mandelbrot-Fraktals unter Zuhilfenahme der Shadereinheiten in Graphikkarten zu beschäftigen und erste Erfolge feiern konnte, wollte ich das mal auf einer richtigen Graphikkarte ausprobieren...

    Weiterlesen...

Neueste Artikel

  • Datenvalidierung UTF8 mit BiDi-Steuerzeichen (TrojanSource 2.0)

    Ich bin heute nochmal inspiriert worden, weiter über die Trojan Source Vulnerability nachzudenken. Meiner Meinung nach bestehen hier noch Probleme - speziell bei Nutzereingaben oder Daten, die über externe Schnittstellen ampfangen werden.

    Weiterlesen...
  • OpenStreetMap Navi als Docker-Container

    Ich habe die auf OpenStreetMap basierende OpenSource Navigationslösung Graphhopper in einen Docker-Container gepackt und als neuestes Mitglied in meinem Docker-Zoo willkommen geheißen.

    Weiterlesen...
  • SQL-Aggregatfunktionen in SQLite als BeanShell-Scripts

    Ich habe neulich über eine Möglichkeit berichtet, SQLite mittels der sQLshell und Beanshell-Skripten um SQL-Funktionen zu erweitern. In diesem Artikel versprach ich auch, über eine solche Möglichkeit für Aggregatfunktionen zu berichten.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.