DNSSEC mit Fritz!Box und PiHole

Mit der Version 7.20 von Fritz!OS ist es möglich, DNSSEC auf der Fritz!Box zu konfigurieren. Wenn man zusätzlich noch PiHole als Ad Blocker im Heimnetz verwendet, ergibt sich daraus eine gute Kombination, um die eigene Kommunikation im Internet zu anonymisieren.

Voraussetzung ist, das Sie PiHole bereits installiert haben und eine Fritz!Box mit der entsprechenden OS Version verwenden.

Zunächst konfigurieren wir DNSSEC auf der Fritz!Box. Dazu wählen wir unter dem Menüpunkt Internet/Zugangsdaten den Tabulator DNS. Hier müssen wir als erstes die DNS Server eintragen, die wir verwenden wollen. Selbstverständlich müssen diese DNSSEC unterstützen. Freie Server mit DNSSEC Unterstützung und no logging policy findet man unter anderen hier.

Ich habe die Server von DigitalCourage e.v. (als primärer Server) und der Schweizer Digitalen Gesellschaft (als sekundärer Server) ausgewählt.

Diese trägt man dann in die entsprechenden Felder auf der Seite ein. Als IPv6 DNS trägt man die entsprechenden IPv6 Adressen ein.

Dann muss man noch die Auflösungsnamen der DNS Server eintragen. Die kann man mittels dig ermitteln:

dig -x 2a05:fc84::42
; <<>> DiG 9.10.6 <<>> -x 2a05:fc84::42
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50947
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;2.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.4.8.c.f.5.0.a.2.ip6.arpa. IN PTR
;; ANSWER SECTION:
2.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.4.8.c.f.5.0.a.2.ip6.arpa. 2170 IN PTR dns1.digitale-gesellschaft.ch.
;; Query time: 286 msec
;; SERVER: 192.168.1.120#53(192.168.1.120)
;; WHEN: Wed Nov 11 14:21:52 CET 2020
;; MSG SIZE rcvd: 144

Hier also für die IPv6 Adresse der Name dns1.digitale-gesellschaft.ch.

Ausserdem muss sollte man noch alle Haken in den entsprechenden Feldern setzen. Am Ende sollte die Seite so aussehen:

Einstellungen der Fritz!Box für die DNSSEC Server

Eventuell wurde ja vorher hier der PiHole als Forward DNS eingetragen. Das funktioniert nun natürlich nicht mehr. Damit alle Clients im Netz den PiHole als DNS Server verwenden, muss dieser jetzt per DHCP verteilt werden. Hierzu wählen wir in der Fritz!Box GUI unter Heimnetz/Netzwerk den Tab Netzwerkeinstellungen aus. Wir scrollen zum Ende der Seite und sehen dort die beiden Button IPv4-Konfiguration und IPv6-Konfiguration.

Hier können wir die DHCP Einstellungen konfigurieren. Hier tragen wir jeweils als lokalen DNS Server die IP des Pi-Hole ein. Für die IPv6 Konfiguration sollten immer die local link Adressen verwendet werden, da sich der Prefix der anderen Adressen bei jeder neuen Verbindung zum Provider ändern kann. Zumindest bei 1und1 ist das der Fall und leider gibt es dort auch noch immer die tägliche Zwangstrennung.

Dann müssen wir noch den forward DNS des Pi-Hole konfigurieren. Das wird dann die Fritz!Box. Wir gehen also auf die Webseite des Pi-Hole. Dort tragen wir unter Settings im TAB DNS die Adressen der Fritz!Box als upstream DNS Server ein. Auch hier sollte wieder die link local Adresse der Fritz!Box verwendet werden.

Das ganze sieht dann so aus:

Settings des Upstream DNS in der Pi-Hole Konfiguration

Nun kann man auf einem der DHCP clients testen, ob die DNS Auslösung mit DNSSEC funktioniert:

dig example.com +dnssec +multi

; <<>> DiG 9.10.6 <<>> example.com +dnssec +multi
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13243
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
; PAD: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (".............................................................................................................................................................................................................................................")
;; QUESTION SECTION:
;example.com.		IN A

;; ANSWER SECTION:
example.com.		68862 IN RRSIG A 8 2 86400 (
				20201130073413 20201109053021 62811 example.com.
				ouYMqxaXEa23LFr1Fwb0vGaJ+VVSTZrgymnqYMm6kVdL
				Jf/LsTwCET/iPZBQll4hsTqzVU5QRt21+ImJWFwrYvVt
				JCyJr0AqZLLfcHmd+FnwGkHJrJ9bYIEFLq6J1Am6Wh/z
				QqDS1+e2FBtSihi1wse7exxwgVXErSpEjNelHHk= )
example.com.		68862 IN A 93.184.216.34

;; Query time: 9 msec
;; SERVER: 192.168.1.120#53(192.168.1.120)
;; WHEN: Wed Nov 11 14:01:55 CET 2020
;; MSG SIZE  rcvd: 468

Die Antwort sollte ähnlich wie hier aussehen. Wichtig ist in der Zeile flags der Eintrag ad (steht für authenticated answer).

Ob das ganze auch für IPv6 funktioniert testet man dann mit dem Zusatz AAAA:

dig example.com AAAA +dnssec +multi

; <<>> DiG 9.10.6 <<>> example.com AAAA +dnssec +multi
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6175
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;example.com.		IN AAAA

;; ANSWER SECTION:
example.com.		42890 IN AAAA 2606:2800:220:1:248:1893:25c8:1946
example.com.		42890 IN RRSIG AAAA 8 2 86400 (
				20201130143723 20201109073021 62811 example.com.
				m1CY/NpIYk7g50iFiL3I7dM21D6KkGo75T/uQRWq2uC9
				QGhFgZSCSM1xBkncfdt8qP6tVmoLCiegztdfI2TbADQc
				KAacsf/kiF/W8NVtQIg4BEh6BQ3aCZjPWwn6QZ83OhVq
				66OI7IgjxV0rFI/b2MPkORw8udO+O5kIM6kdqEQ= )

;; Query time: 325 msec
;; SERVER: 192.168.1.120#53(192.168.1.120)
;; WHEN: Wed Nov 11 14:05:13 CET 2020
;; MSG SIZE  rcvd: 239

Viel Spass nun beim surfen.

Schreibe einen Kommentar

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