Wer bereits Pi-Hole installiert hat, kann nun mit nur wenigen Schritten seinen eigenen DNS-Resolver inkl. DNSSEC anstelle von bsp. Google oder Cloudflare nutzen. Hinzu kommt, dass wir uns die erste Anfrage an die DNS-Rootserver durch eine Zonenliste sparen.
Punkt 1: Wir installieren PowerDNS Recursor
Zuerst fügen wir das passende Repository hinzu. In diesem Beispiel gehe ich auf Debian 12 ein, weitere Repos unter https://repo.powerdns.com/.
1 |
deb [signed-by=/etc/apt/keyrings/rec-52-pub.asc] http://repo.powerdns.com/debian bookworm-rec-52 main |
Wir pinnen das ganze.
1 2 3 |
Package: rec* Pin: origin repo.powerdns.com Pin-Priority: 600 |
Nun kann der APT Key geladen und das Paket installiert werden.
1 2 3 |
sudo install -d /etc/apt/keyrings; curl https://repo.powerdns.com/FD380FBB-pub.asc | sudo tee /etc/apt/keyrings/rec-52-pub.asc && sudo apt-get update && sudo apt-get install pdns-recursor |
Punkt 2: PowerDNS Recursor konfigurieren
In der Konfiguration setzen wir folgende Werte, der Rest kann so bleiben.
1 2 3 4 5 6 7 8 9 10 11 12 |
dnssec: validation: validate incoming: listen: - '127.0.0.1' port: 5353 recursor: hint_file: /etc/powerdns/named.root outgoing: source_address: - '0.0.0.0' - '::' |
Punkt 2.1: Upgrade von PowerDNS Recursor 5.1 auf 5.2
Wenn du von Version 5.1 auf 5.2 aktualisiert hast, kannst du deine recursor.conf zu recursor.yml konvertieren:
1 |
rec_control show-yaml > /etc/powerdns/recursor.yml |
Entferne doppelte „dnnsec“ Einstellungen und lösche die Zeilen:
1 2 3 4 5 6 |
# Start of converted Lua config .yml based on /etc/powerdns/recursor.lua dnssec: trustanchors: [] trustanchorfile: /usr/share/dns/root.key # Validation result: OK # End of converted /etc/powerdns/recursor.lua |
Punkt 3: DNS-Rootserver Zone herunterladen
Wir laden einmalig die named.root Zonendatei herunter.
1 |
wget https://www.internic.net/domain/named.root -O /etc/powerdns/named.root |
Ein wöchentlicher Cronjob sorgt für den aktuellsten Stand.
1 |
@weekly wget --quiet https://www.internic.net/domain/named.root -O /etc/powerdns/named.root |
Wir starten den Recursor Dienst neu.
1 |
systemctl restart pdns-recursor.service |
Punkt 4: DNS-Resolver in Pi-Hole eintragen und DNSSEC aktivieren
- Wir gehen in das Pi-Hole Admin Interface auf Settings > DNS, entfernen alle Haken bei den Upstream DNS Servers.
- Nun fügen wir unseren Upstream DNS Server Custom 1 (IPv4) hinzu: 127.0.0.1#5353 und aktivieren diesen.
- Zuletzt aktivieren wir Use DNSSEC und drücken Save.
Punkt 5: Testen
Wir prüfen ob DNSSEC aktiviert ist am einfachsten auf der Webseite http://dnssec.vs.uni-due.de/.
Alternativ über die Linux Konsole.
1 2 |
dig sigok.verteiltesysteme.net @127.0.0.1 (should return A record) dig sigfail.verteiltesysteme.net @127.0.0.1 (should return SERVFAIL) |
Unterstütze unsere Arbeit mit einer Spende. |