2 min read

DNS over TLS und DNSSEC mit Stubby in PiHole einrichten

Stubby soll auf dem Pi laufen und alle DNS-Anfragen verschlüsseln, ehe sie durchs Internet geschickt werden. So kann niemand durch den Datenverkehr auf das jeweilige Surfverhalten schließen.

Vor der Installation sollten die Paketlisten aktualisiert werden, da Stubby noch nicht lange im Buster Repository enthalten ist. Alternativ kann man Stubby auch aus dem Quellcode kompilieren, Details befinden sich dazu im Github Repository.
apt update
apt install stubby

Nun kann man überprüfen, ob der Dienst erfolgreich gestartet wurde, falls ja sollte die untere Zeile im Ende des Outputs erscheinen:
systemctl status stubby.service

Jan 09 18:23:02 raspberrypi stubby[9249]: [18:23:02.858915] STUBBY: Starting DAEMON....

Danach muss in der Datei /etc/stubby/stubby.yml die folgende Zeile auskommentiert werden, um die DNSSEC Funktion einzuschalten:
dnssec: GETDNS_EXTENSION_TRUE

systemctl restart stubby.service
systemctl status stubby.service

Nach einem Neustart des Dienstes sollte dan diese Zeile erscheinen:
Jan 09 18:26:49 raspberrypi stubby[9403]: [18:26:49.809307] STUBBY: DNSSEC Validation is ON

Danach kann man noch in der Konfigurationsdatei eigene DNS Server eintragen, hier empfiehlt es sich, freie, unprotokollierte DNS Resolver wie Dismail oder Digitalcourage. Meine /etc/stubby/stubby.yml sieht dann so aus:
###own DNS Server config###
#IPv4
#Dismail
 - address_data: 80.241.218.68
   tls_auth_name: "fdns1.dismail.de"
   tls_pubkey_pinset:
     - digest: "sha256"
       value: MMi3E2HZr5A5GL+badqe3tzEPCB00+OmApZqJakbqUU=
#Digitalcourage
 - address_data: 46.182.19.48
   tls_auth_name: "dns2.digitalcourage.de"
   tls_pubkey_pinset:
     - digest: "sha256"
       value: v7rm6OtQQD3x/wbsdHDZjiDg+utMZvnoX3jq3Vi8tGU=

Die restlichen Server habe ich auskommentiert.
Danach habe ich noch die Listen Adress auf 127.0.0.1, und den Port auf 5553 eingestellt, sowie IPv6 deaktiviert:
listen_addresses:
 - 127.0.0.1@5553
#  - 0::1

Nun noch einmal Stubby neustarten (systemctl restart stubby), und schon kann man die ersten Tests durchführen. Zunächst die Grundfunktion testen:
dig @127.0.0.1 -p 5553 heise.de

Der nächste Befehl sollte den Status SERVFAIL zurückliefern:
dig @127.0.0.1 -p 5553 fail01.dnssec.works

Danach sollte noch gestestet werden ob DNSSEC funktioniert, hier sollte in der Antwort die flag "ad" auftauchen, welches für authenticated data steht:
dig @127.0.0.1 -p 5553 postbank.de

;; flags: qr rd ra ad; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

Schließlich kann man dann auch schon im Webinterface von Pihole Stubby als neuen Upstream DNS eintragen:

Quellen: CT 05/2019

https://forum.kuketz-blog.de/viewtopic.php?f=44&t=4495&p=45810

https://forum.kuketz-blog.de/viewtopic.php?f=42&t=1366

Pi-hole mit dns-over-tls
Vor einiger Zeit habe ich bei mir Zuhause ein Pi-hole auf einem Raspberry installiert, um unerwünschte Werbung zu filtern. Dieser funktioniert nach einigen Startschwierigkeiten (selbstgemachte Firewall Probleme) sehr gut. Damit wird nun sämtlicher Netzwerkverkehr in meinem Netzwerk gefiltert, was au…

Author: peterge