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/.

Wir pinnen das ganze.

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

Punkt 2: PowerDNS Recursor konfigurieren

In der Konfiguration setzen wir folgende Werte, der Rest kann so bleiben.

Punkt 3: DNS-Rootserver Zone herunterladen

Wir laden einmalig die named.root Zonendatei herunter.

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

Wir starten den Recursor Dienst neu.

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.

 

Dominion

Dominion

Linux Systemadministrator

Das könnte Dich auch interessieren …

9 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)
    ~

Schreibe einen Kommentar

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