Pi-Hole – Eigener DNS-Resolver + DNSSEC

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 9 ein, weitere Repos unter https://repo.powerdns.com/.

deb [arch=amd64] http://repo.powerdns.com/debian stretch-rec-42 main

Wir pinnen das ganze.

Package: pdns-*
Pin: origin repo.powerdns.com
Pin-Priority: 600

Nun kann der APT Key geladen und das Paket installiert werden.

curl https://repo.powerdns.com/FD380FBB-pub.asc | sudo apt-key add - &&
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.

dnssec=validate
hint-file=/etc/powerdns/named.root
local-address=127.0.0.1
local-port=5353
query-local-address6=::

Punkt 3: DNS-Rootserver Zone herunterladen

Wir laden einmalig die named.root Zonendatei herunter.

wget https://www.internic.net/domain/named.root -O /etc/powerdns/named.root

Ein wöchentlicher Cronjob sorgt für den aktuellsten Stand.

@weekly wget --quiet https://www.internic.net/domain/named.root -O /etc/powerdns/named.root

Wir starten den Recursor Dienst neu.

systemctl restart pdns-recursor.service

Punkt 4: DNS-Resolver in Pi-Hole eintragen und DNSSEC aktivieren

  1. Wir gehen in das Pi-Hole Admin Interface auf Settings > DNS, entfernen alle Haken bei den Upstream DNS Servers.
  2. Nun fügen wir unseren Upstream DNS Server Custom 1 (IPv4) hinzu: 127.0.0.1#5353 und aktivieren diesen.
  3. 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.

dig sigok.verteiltesysteme.net @127.0.0.1 (should return A record)
dig sigfail.verteiltesysteme.net @127.0.0.1 (should return SERVFAIL)

 

Dominion

Dominion

Linux Systemadministrator

Das könnte Dich auch interessieren …

12 Antworten

  1. Avatar Eulalia sagt:

    Klappt wunderbar, danke!

  2. Avatar Pat sagt:

    Danke dir, sieht nun besser aus!
    Sieht das gut aus: ?

    root@PiHole:~# dig sigok.verteiltesysteme.net @127.0.0.1

    ; <> DiG 9.10.3-P4-Debian <> sigok.verteiltesysteme.net @127.0.0.1
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15957
    ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 512
    ;; QUESTION SECTION:
    ;sigok.verteiltesysteme.net. IN A

    ;; ANSWER SECTION:
    sigok.verteiltesysteme.net. 60 IN A 134.91.78.139

    ;; Query time: 162 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: Sun Apr 14 16:48:08 CEST 2019
    ;; MSG SIZE rcvd: 71

    root@PiHole:~# dig sigfail.verteiltesysteme.net @127.0.0.1

    ; <> DiG 9.10.3-P4-Debian <> sigfail.verteiltesysteme.net @127.0.0.1
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 43357
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 512
    ;; QUESTION SECTION:
    ;sigfail.verteiltesysteme.net. IN A

    ;; Query time: 69 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: Sun Apr 14 16:49:27 CEST 2019
    ;; MSG SIZE rcvd: 57

  3. Avatar pat sagt:

    In „Query Log“, I don’t see any DNSSEC column? Normal?

  4. Avatar Bastian sagt:

    Hey, habe es auf meinen Raspi (3B+) versucht.
    Natürlich die entsprechende Repo (raspbian stretch-rec-master main) genommen. Leider bekomme ich diesed Fehler:
    @raspberrypi:~ $ sudo systemctl restart pdns-recursor.service
    Job for pdns-recursor.service failed because the control process exited with error code.
    See „systemctl status pdns-recursor.service“ and „journalctl -xe“ for details.

    Ich habe auch einen Neustart des Raspi versucht; keine Besserung.
    Bitte um Hilfe, Danke

  5. Avatar Bastian sagt:

    Ergänzend die Ausgabe vom „systemctl status pdns-recursor.service“:
    ● pdns-recursor.service – PowerDNS Recursor
    Loaded: loaded (/lib/systemd/system/pdns-recursor.service; enabled; vendor preset: enabled)
    Active: activating (auto-restart) (Result: exit-code) since Wed 2019-04-17 13:33:22 CEST; 97ms ago
    Docs: man:pdns_recursor(1)
    man:rec_control(1)
    https://doc.powerdns.com
    Process: 7580 ExecStart=/usr/sbin/pdns_recursor –daemon=no –write-pid=no –disable-syslog –log-timestamp=no (code=exited, status=1/FAILURE)
    Main PID: 7580 (code=exited, status=1/FAILURE)
    ~

  6. Avatar Tom sagt:

    Hallo, ich bin auf den gleichen Fehler gestoßen wie Bastian.
    Gibt es mittlerweile eine Lösung dafür?

  7. Avatar Tom sagt:

    Hallo, danke Dominion, das war tatsächlich die Lösung des Problems.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.