Website-Icon adminForge

Eigenen DoT/DoH DNS Resolver betreiben

Ich beschreibe euch wie ihr einen eigenen DNS Resolver inklusive DoT und DoH für die Namensauflösung im Internet aufsetzen könnt.

So wurde auch der adminForge Service: dnsforge.de konfiguriert.

Aufbau des Setups:

Punkt 1: PowerDNS Repositories hinzufügen

Zuerst fügen wir die beiden Repositories von dnsdist und PowerDNS Recursor hinzu: https://repo.powerdns.com/

Beispiel Debian 11:

Punkt 2: Pakete installieren

Wir installieren die beiden Pakete.

Punkt 3: Pi-hole installieren

Wir starten mit der Installation des Werbeblockers Pi-hole.

Wenn ihr die eine vollständige Pi-hole Installation haben möchtet, mit Webserver und Webinterface, dann drückt die Installation mit ENTER durch.

Das Pi-hole Admin Interface ist dann unter http://YOUR-IP/admin/ zu erreichen. Ich empfehle eine zusätzliche Absicherung des Webinterfaces!

Punkt 4: dnsdist konfigurieren

Kopiert diesen Text in die Konsole um eine dnsdist Konfiguration zu erstellen.

Ersetzt dann eure IPv4 und IPv6 Adressen in den markieten Zeilen.
Für einen öffentlichen Resolver könnt ihr diese Befehle verwenden:

Punkt 5: Let’s Encrypt

Für Let’s Encrypt verwende ich gerne acme.sh, ihr könnt aber auch gerne eigene Zertifikate oder andere Let’s Encrypt Scripte verwenden.

Einen Ordner für die Zertifikate legen wir in folgender Datei fest, ich empfehle den bereits vorhandenen Ordner /etc/ssl/private.

Nun holen wir uns ein Zertifikat.

WICHTIG: Eure Domain sollte bereits jetzt einen A-Record mit der IP-Adresse eures Servers haben und auflösen!

Variante 1 (Pi-hole mit Webserver):

Variante 2 (Pi-hole ohne Webserver):

Punkt 6: dnsdist DoT und DoH aktivieren

In der /etc/dnsdist/dnsdist.conf entfernen wir die -- und ersetzen domain.de mit unserer Domain YOUR-DOMAIN.de aus dem Schritt zuvor.

Änderungen sollten in etwa so ausschauen:

Punkt 7: Pi-hole anpassen

Wir erweitern die Adlist.

Passen /etc/pihole/setupVars.conf unseren Wünschen an: Lokale IP-Adresse, Loopback Interface, deaktivieren Querry logging, stellen Pihole DNS auf unseren PowerDNS Recursor.

Um sicher zu gehen, dass Pi-hole bei einem Update diese Variable nicht löscht, erstellen wir eine neue Datei um das Interface lo zu binden.

Punkt 8: PowerDNS Recursor konfigurieren

Jetzt gehen wir das letzte Element der Kette an – dem Recursor von PowerDNS. Das kleine Programm schickt sämtliche DNS-Anfragen direkt an die DNS-Rootserver und behilft sich der vorinstallierten DNS-Rootserver Datei /usr/share/dns/root.hints.

Punkt 9: Dienste starten

Nun ist es an der Zeit die Pi-hole Konfiguration zu übernehmen

und die Dienste neu zu starten.

WICHTIG: dnsdist zuletzt starten da wir ein checkInterval von 5 Minuten eingestellt haben! Ansonsten ist der downstream Server 127.0.0.1:53 nicht direkt up.

Punkt 10: DNS Auflösung testen

Zu guter Letzt überprüfen wir ob alle Dienste auf den korrekten Ports lauschen.

Soll:
dnsdist/tcp: 53, 443, 853
dnsdist/udp: 53
pihole/tcp+udp: 127.0.0.1:53, ::1:53
pdns_recursor/tcp+udp: 127.0.0.1:5300

Wenn alles stimmt können wir die ersten Namensauflösungen testen.

DNS:

Das Tool dig ist unter Debian vorinstalliert. Tragt hinter dem @ die öffentliche IP-Adresse des Servers ein.

DNS over TLS:

Da PHP dank Pi-hole bereits installiert ist, nutzen wir am einfachsten dnstls zum testen. Anstelle domain.de nehmt bitte eure Domain.

DNS over HTTPS:

Über einen kleinen curl Aufruf kann man prüfen ob DoH funktioniert. Angefragt wird hier example.com (verschlüsselt dns=q80BAAABAAAAAAAAB2V4YW1wbGUDY29tAAABAAE).

 

Das Betreiben der Dienste, Webseite und Server machen wir gerne, kostet aber leider auch Geld.
Unterstütze unsere Arbeit mit einer Spende.
2
Die mobile Version verlassen