Hallo,
ich habe auf einem (Mail-) Server unbound + systemd-resolved eingerichtet.
Die Konfiguration von unbound ist identisch mit der Dokumentation " Pi-hole: Einrichtung und Konfiguration mit unbound – AdBlocker Teil2 bis auf 1 Ausnahme: unbound verwendet Port 53.
Die Konfiguration von systemd-resolved ist einfach gehalten, d.h. systemd-resolved läuft im Stub-Modus und lauscht auf 127.0.0.53:53
Nach meinem Verständnis funktioniert dieses Setup zur Namensauflösung:
❯ sudo resolvectl status
Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=yes/supported
resolv.conf mode: stub
Current DNS Server: 127.0.0.1
DNS Servers: 127.0.0.1
DNS Domain: ~.
Link 2 (eth0)
Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=yes/supported
❯ ss -tulpen | grep 53
udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:* uid:102 ino:11614558 sk:5e cgroup:/system.slice/systemd-resolved.service <->
udp UNCONN 0 0 127.0.0.1:53 0.0.0.0:* ino:11535189 sk:5f cgroup:/system.slice/unbound.service <->
tcp LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* uid:102 ino:11614559 sk:69 cgroup:/system.slice/systemd-resolved.service <->
tcp LISTEN 0 256 127.0.0.1:53 0.0.0.0:* ino:11535190 sk:6a cgroup:/system.slice/unbound.service <->
tcp LISTEN 0 256 127.0.0.1:8953 0.0.0.0:* ino:11535192 sk:6c cgroup:/system.slice/unbound.service <->
Die Funktionsprüfung von DNSSEC mit dig dnssec.works
gibt das korrekte Ergebnis mit dem AD Flag zurück:
❯ dig dnssec.works
; <<>> DiG 9.18.18-0ubuntu0.22.04.1-Ubuntu <<>> dnssec.works
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57628
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;dnssec.works. IN A
;; ANSWER SECTION:
dnssec.works. 2618 IN A 5.45.107.88
;; Query time: 4 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Sat Jan 20 11:13:49 CET 2024
;; MSG SIZE rcvd: 57
Im Arch Linux Wiki zu unbound wird eine andere Option zur DNSSEC Validierung verwendet: unbound-host
. Wenn ich diese Prüfung ausführe erhalte ich die Ausgabe der IP mit der Kennzeichnung „insecure“:
❯ unbound-host -v dnssec.works
dnssec.works has address 5.45.107.88 (insecure)
dnssec.works has IPv6 address 2a03:4000:6:12af::1 (insecure)
dnssec.works mail is handled by 10 mail.dnssec.works. (insecure)
Somit ist die Validierung inkonsistent und es stellen sich 2 Fragen:
- Warum ist die Validierung von DNSSEC inkonsistent?
- Welche Validierung ist korrekt?
dig
oderunbound-host
?
Update: Das Problem ist gelöst.
Lösung:
unbound-host
muss mit ausreichenden Berechtigungen (sudo) und mit Option -C
ausgeführt werden, denn in der Hilfe zu unbound-host
steht:
-C config use the specified unbound.conf (none read by default)