Pihole Unbound und DNS-over-TLS (DoT)

Hallo zusammen,

ich habe einen Pihole mit Unbound installiert und möchte gerene meine DNS anfragen verbergen.
Kann man bei Pihole und Unbound einen weiteren externen DNS-Server eintragen, der Verschlüsselung unterstützt.
Z.B. https://dnsforge.de/

Wenn ja, wo müsste ich diesen DNS Server eintragen?

Siehe hier

1 „Gefällt mir“

Ja, das geht.
Dann werden alle regelmäßig alle DNS Server abgefragt und dein o.g. Zweck wird nicht erfüllt.

Du kannst entweder nur die DoT Server im Pihole eintragen (dann brauchst du den unbound nicht), oder du trägst die in unbound ein (s.u.). Dann solltest Du im PiHole nur den unbound eintragen.


unbound.conf (letzter Zone-Eintrag)

forward-zone:                                                                                                                                                                 
    name: "."                                                                                                                                                                 
    forward-first: yes                                                                                                                                                        
                                                                                                                                                                              
    forward-ssl-upstream: yes
    forward-addr: 9.9.9.9@853#dns.quad9.net
    forward-addr: 149.112.112.112@853#dns.quad9.net
    forward-addr: 2620:fe::fe@853#dns.quad9.net
    forward-addr: 2620:fe::9@853#dns.quad9.net

Im Beispiel der Quad9 DNS.

1 „Gefällt mir“

Hallo zusammen,

vielen Dank, ich habe jetzt


forward-zone:                                                                                      >
    name: "."                                                                                      >
    forward-first: yes                                                                             >
                                                                                                   >
    forward-ssl-upstream: yes
forward-addr: 176.9.93.198
forward-addr: 176.9.1.117
forward-addr: 2a01:4f8:151:34aa::198
forward-addr: 2a01:4f8:141:316d::117

in die /etc/unbound/unbound.conf.d/pi-hole.conf eingetragen, die kommen von https://dnsforge.de/
Ich habe unbound neu gestartet und bekommen bei:

dig dnssec.works @127.0.0.1 -p 5335

; <<>> DiG 9.16.48-Debian <<>> dnssec.works @127.0.0.1 -p 5335
;; global options: +cmd
;; connection timed out; no servers could be reached

dig +nocmd +noall +answer @pns101.cloudns.net www.spiegel.de
dig: couldn't get address for 'pns101.cloudns.net': failure

Kann mir einer sagen was ich hier falsch eingestellt habe?

vielleicht ein Zahendreher? „-p 5353“ ? was liefert denn „netstat -a -n | grep 5335“ bzw. 5353?

1 „Gefällt mir“

:thinking: Wozu poste ich eigentlich ein Beispiel? :tired_face: *

    forward-ssl-upstream: yes                           
    forward-addr: 176.9.93.198@853#dnsforge.de          
    forward-addr: 176.9.1.117@853#dnsforge.de           
    forward-addr: 2a01:4f8:151:34aa::198@853#dnsforge.de
    forward-addr: 2a01:4f8:141:316d::117@853#dnsforge.de

*) rhetorische Frage

1 „Gefällt mir“

Hallo, sorry für das Chaos mit den Einträgen, kann mir einer erklären, warum
176.9.1.117@853#dnsforge.de. das @853 eingetragen werden muss?

Ich habe jetzt die /etc/unbound/unbound.conf
mit dem Eintrag erweitert:

forward-zone:
name: ".“
forward-first: yes
forward-ssl-upstream: yes
forward-addr: 176.9.93.198@853#dnsforge.de
forward-addr: 176.9.1.117@853#dnsforge.de
forward-addr: 2a01:4f8:151:34aa::198@853#dnsforge.de
forward-addr: 2a01:4f8:141:316d::117@853#dnsforge.de

systemctl restart unbound.service
Nach dem restart von Unbound erhalte ich beim status diese Meldung:
systemctl status unbound.service

  • unbound.service - Unbound DNS server
    Loaded: loaded (/lib/systemd/system/unbound.service; enabled; vendor preset: enabled)
    Active: active (running) since Sun 2024-06-23 11:24:55 UTC; 30s ago
    Docs: man:unbound(8)
    Process: 2714 ExecStartPre=/usr/lib/unbound/package-helper chroot_setup (code=exited, status=0/>
    Process: 2717 ExecStartPre=/usr/lib/unbound/package-helper root_trust_anchor_update (code=exite>
    Main PID: 2720 (unbound)
    Tasks: 1 (limit: 38052)
    Memory: 7.2M
    CPU: 4.057s
    CGroup: /system.slice/unbound.service
    `-2720 /usr/sbin/unbound -d -p

Jun 23 11:25:08 pihole unbound[2720]: [2720:0] error: ssl handshake failed crypto error:1416F086:SS>
Jun 23 11:25:08 pihole unbound[2720]: [2720:0] error: ssl handshake failed crypto error:1416F086:SS>
Jun 23 11:25:08 pihole unbound[2720]: [2720:0] error: ssl handshake failed crypto error:1416F086:SS>
Jun 23 11:25:08 pihole unbound[2720]: [2720:0] error: ssl handshake failed crypto error:1416F086:SS>
Jun 23 11:25:08 pihole unbound[2720]: [2720:0] error: ssl handshake failed crypto error:1416F086:SS>
Jun 23 11:25:08 pihole unbound[2720]: [2720:0] error: ssl handshake failed crypto error:1416F086:SS>
Jun 23 11:25:09 pihole unbound[2720]: [2720:0] error: ssl handshake failed crypto error:1416F086:SS>
Jun 23 11:25:09 pihole unbound[2720]: [2720:0] error: ssl handshake failed crypto error:1416F086:SS>
Jun 23 11:25:09 pihole unbound[2720]: [2720:0] error: ssl handshake failed crypto error:1416F086:SS>
Jun 23 11:25:09 pihole unbound[2720]: [2720:0] error: ssl handshake failed crypto error:1416F086:S

netstat -a -n | grep 5335
reagiert nicht.

Dafür bekomme ich jetzt bei dig eine Rückmeldung.

dig fail01.dnssec.works @127.0.0.1 -p 5335

; <<>> DiG 9.16.48-Debian <<>> fail01.dnssec.works @127.0.0.1 -p 5335
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 41422
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;fail01.dnssec.works. IN A

;; Query time: 0 msec
;; SERVER: 127.0.0.1#5335(127.0.0.1)
;; WHEN: Sun Jun 23 11:51:30 UTC 2024
;; MSG SIZE rcvd: 48

DoT läuft (wie auch auf dnsforge.de nachzulesen) über Port 853.


Stimmt die Uhrzeit auf deinem Pi.

Hat unbound Zugriff auf den Zertifikatstore deines Pi?

evtl. hilft folgender Eintrag.

tls-cert-bundle: /etc/pki/tls/certs/ca-bundle.crt

(Pfad anpassen!)


Hast Du den Hinweis von Joachim überprüft?

Port 5335 oder 5353

Hallo zusammen,

ich habe den Pihole auf einer Debian 12 unter Proxmox am laufen.

netstat -a -n | grep 5335

tcp 0 0 127.0.0.1:5335 0.0.0.0:* LISTEN
udp 0 0 127.0.0.1:5335 0.0.0.0:*

Mit der Uhrzeit liege ich zwei Stunden hinterher, habe aber ntp am laufen.

date

Sun Jun 23 14:25:51 UTC 2024

Die Einträge sind aber soweit richtig ? oder habe ich da was falsch gemacht?

Das entspricht „Sun Jun 23 16:25:51 CEST 2024“ in Localzeit.
Ist also korrekt.

Hallo zusammen,

ich habe kein ca-bundle.crt

Dieses Problem tritt auch aktuell nicht auf.
Ich habe wie oben geschrieben, in der /etc/unbound/unbound.conf
die Einträge:

forward-zone:
name: ".“
forward-first: yes
forward-ssl-upstream: yes
forward-addr: 176.9.93.198@853#dnsforge.de
forward-addr: 176.9.1.117@853#dnsforge.de
forward-addr: 2a01:4f8:151:34aa::198@853#dnsforge.de
forward-addr: 2a01:4f8:141:316d::117@853#dnsforge.de

hinzugefügt. Ich habe das mit Quad9 auch einmal ausprobiert.
Dann ein systemctl restart unbound.service und der status ist in Ordnung.
Nur bekomme ich dann bei allen Diensten vom Client aus keine Verbundungen mehr.

Das ist unwahrscheinlich.

Vielleicht kann hier jemand mit einem Pi, den Pfad und Dateinamen posten.

Können die Clients keine Verbindung zum unbound aufbauen oder bekommt der unbound keine Verbindung nach draußen?

Poste bitte mal deine vollständige unbound.conf.
(bitte ohne Kommentare)

Hallo,

hier die /etc/unbound/unbound.conf

include-toplevel: "/etc/unbound/unbound.conf.d/*.conf"

forward-zone:                                                                                                                                                                 
    name: "."                                                                                                                                                                 
    forward-first: yes
forward-ssl-upstream: yes
forward-addr: 176.9.93.198@853#dnsforge.de
forward-addr: 176.9.1.117@853#dnsforge.de
forward-addr: 2a01:4f8:151:34aa::198@853#dnsforge.de
forward-addr: 2a01:4f8:141:316d::117@853#dnsforge.de

Habe auch mal diese Anleitung versucht.
https://www.jwillikers.com/dns-over-tls-with-unbound
Klappte aber auch nicht.

Hallo zusammen,

ich wollte einmal Nachfragen ob sich jemand die DNS Einstellungen ansehen kann.
Ich habe jetzt das wie in der Anleitung getestet, für mich sieht das gut aus.


userr@pihole:~$ dig fail01.dnssec.works @127.0.0.1 -p 5335

; <<>> DiG 9.16.48-Debian <<>> fail01.dnssec.works @127.0.0.1 -p 5335
;; global options: +cmd
;; connection timed out; no servers could be reached

stefan@pihole:~$ dig +nocmd +noall +answer @root-dns.netcup.net www.kuketz-blog.de
www.kuketz-blog.de.     86400   IN      CNAME   kuketz-blog.de.
kuketz-blog.de.         86400   IN      A       46.38.242.112
stefan@pihole:~$ dig +nocmd +noall +answer @pns101.cloudns.net www.spiegel.de
www.spiegel.de.         300     IN      CNAME   aacfb9d106f4.link11.de.
stefan@pihole:~$ dig fail01.dnssec.works @127.0.0.1 -p 5335

; <<>> DiG 9.16.48-Debian <<>> fail01.dnssec.works @127.0.0.1 -p 5335
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 15748
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;fail01.dnssec.works.           IN      A

;; Query time: 267 msec
;; SERVER: 127.0.0.1#5335(127.0.0.1)
;; WHEN: Wed Jun 26 18:39:23 UTC 2024
;; MSG SIZE  rcvd: 48

stefan@pihole:~$ dig dnssec.works @127.0.0.1 -p 5335

; <<>> DiG 9.16.48-Debian <<>> dnssec.works @127.0.0.1 -p 5335
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63302
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;dnssec.works.                  IN      A

;; ANSWER SECTION:
dnssec.works.           3600    IN      A       5.45.107.88

;; Query time: 35 msec
;; SERVER: 127.0.0.1#5335(127.0.0.1)
;; WHEN: Wed Jun 26 18:40:01 UTC 2024
;; MSG SIZE  rcvd: 57

stefan@pihole:~$ dig txt qnamemintest.internet.nl +short @127.0.0.1 -p 5335
a.b.qnamemin-test.internet.nl.
"HOORAY - QNAME minimisation is enabled on your resolver :)!"

Vielleicht fällt dem einen oder anderen was auf.

@Cornelius

Ich warte noch auf deine vollständige unbound Konfiguration.

Hallo,

kleines Missverständnis, ich habe die unblound.conf schon oben aber ohne Kommentare gepostet.

less /etc/unbound/unbound.conf



# Unbound configuration file for Debian.
#
# See the unbound.conf(5) man page.
#
# See /usr/share/doc/unbound/examples/unbound.conf for a commented
# reference config file.
#
# The following line includes additional configuration files from the
# /etc/unbound/unbound.conf.d directory.
include-toplevel: "/etc/unbound/unbound.conf.d/*.conf"
/etc/unbound/unbound.conf 
forward-zone:                                                                                                                                                                 
    name: "."                                                                                                                                                                 
    forward-first: yes
forward-ssl-upstream: yes
forward-addr: 176.9.93.198@853#dnsforge.de
forward-addr: 176.9.1.117@853#dnsforge.de
forward-addr: 2a01:4f8:151:34aa::198@853#dnsforge.de
forward-addr: 2a01:4f8:141:316d::117@853#dnsforge.de

Und was ist mit den anderen Konfigurationsdateien aus unbound.conf.d ?

Hallo, in der /etc/unbound/unbound.conf.d/

liegen die Dateien.

pi-hole.conf

  GNU nano 5.4                      pi-hole.conf                                
    edns-buffer-size: 1232

    # Perform prefetching of close to expired message cache entries
    # This only applies to domains that have been frequently queried
    prefetch: yes

    # One thread should be sufficient, can be increased on beefy machines. In r>
    num-threads: 1

    # Ensure kernel buffer is large enough to not lose messages in traffic spik>
    so-rcvbuf: 1m

    # Ensure privacy of local IP ranges
    private-address: 192.168.0.0/16
    private-address: 169.254.0.0/16
    private-address: 172.16.0.0/12
    private-address: 10.0.0.0/8
    private-address: fd00::/8
    private-address: fe80::/10

und die root-auto-trust-anchor-file.conf

server:
# The following line will configure unbound to perform cryptographic
# DNSSEC validation using the root trust anchor.
auto-trust-anchor-file: „/var/lib/unbound/root.key“
root-auto-trust-anchor-file.conf (END)

Das ist nur ein kleiner Teil der Datei.


Ich bin erst mal raus.