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

  • Certstream, InfluxDB, Grafana und Netflix

    16.04.2019

    Nachdem ich vor kurzem über mein erstes Spielen mit dem certstream berichtete, habe ich weitere Experimente gemacht und die Daten zur besseren Auswertung in eine InfluxDB gepackt, um sie mit Grafana untersuchen zu können.

    Weiterlesen...

Neueste Artikel

  • Die sQLshell ist nun cloudnative!

    Die sQLshell hat eine weitere Integration erfahren - obwohl ich eigentlich selber nicht viel dazu tun musste: Es existiert ein Projekt/Produkt namens steampipe, dessen Slogan ist select * from cloud; - Im Prinzip eine Wrapperschicht um diverse (laut Eigenwerbung mehr als 140) (cloud) data sources.

    Weiterlesen...
  • LinkCollections 2024 III

    Nach der letzten losen Zusammenstellung (für mich) interessanter Links aus den Tiefen des Internet von 2024 folgt hier gleich die nächste:

    Weiterlesen...
  • Funktionen mit mehreren Rückgabewerten in Java

    Da ich seit nunmehr einem Jahr bei meinem neeun Arbeitgeber beschäftigt und damit seit ungefähr derselben Zeit für Geld mit Python arbeite, haben sich gewisse Antipathien gegenüber Python vertieft (ich kann mit typlosen Sprachen einfach nicht umgehen) - aber auch einige meiner Gründe, Python zu lieben sind ebenso stärker geworden. Einer davon ist der Fakt, dass eine Methode in Python mehr als einen Wert zurückgeben kann.

    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.