Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
B6 Privacy mit unbound / DNS over TLS
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation
View previous topic :: View next topic  
Author Message
pietinger
Guru
Guru


Joined: 17 Oct 2006
Posts: 566
Location: Bavaria

PostPosted: Sun Dec 13, 2020 12:39 am    Post subject: B6 Privacy mit unbound / DNS over TLS Reply with quote

(Dieser Post ist Teil einer Installation-Anleitung. Falls nicht schon geschehen lies bitte: Installation Guide for Paranoid Dummies)



B.6 Privacy mit unbound / DNS over TLS

Auch wenn viele auf "dnsmasq" schwören, ist m.M. "unbound" für einen Desktop geeigneter. Falls Dir die Überschrift wenig sagt, lies doch:
https://de.wikipedia.org/wiki/DNS_over_TLS
Hier findest Du auch öffentliche DNS-Server, die behaupten nicht zu zensieren und zu protokollieren. Im folgenden werde ich zwei Beispiel-Server daraus verwenden. Entscheide Dich selbst für Dir geeignet erscheinende DNS-Server. Ich habe unbound nicht als Ad-blocker konfiguriert, da ich dafür den privoxy verwende. Du kannst natürlich die Konfiguration von unbound entsprechend erweitern. Links ins Gentoo Wiki kann ich Dir leider nicht geben, weil ... ist nicht ... dafür aber zwei hervorragende Links zum Thema:
https://www.privacy-handbuch.de/handbuch_93c.htm
https://dnsprivacy.org/wiki/display/DP

Wenn Du DHCP im Einsatz hast, konfiguriere es so, dass es die /etc/resolv.conf NICHT überschreibt ! Ich empfehle nach wie vor für private Zwecke eine statische IP-Adresse zu verwenden (macht das Leben einfacher).

Wenn Du eine FireWall im Einsatz hast, ergänze diese um folgende Freigaben (setze die IP-Adresse(-n) Deiner auserwählten DNS-Server ein):
Code:
ip_dnssec1="185.95.218.42"      # free dns-server: Digitale Gesellschaft (CH)
ip_dnssec2="185.95.218.43"      # free dns-server: Digitale Gesellschaft (CH)
[...]
# accept dnssec
iptables -A OUTPUT      -d ${ip_dnssec1} -p tcp --dport 853 -j ACCEPT
iptables -A OUTPUT      -d ${ip_dnssec2} -p tcp --dport 853 -j ACCEPT


1. Ich habe mir die Version 1.13 von unbound geholt, welcher Stand heute noch unstable ist:
Code:
ACCEPT_KEYWORDS="~amd64" emerge -pvD unbound


2. Wenn ich die Version abfrage erhalte ich:
Code:
# unbound -V
Version 1.13.0

Configure line: --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --docdir=/usr/share/doc/unbound-1.13.0 --htmldir=/usr/share/doc/unbound-1.13.0/html --with-sysroot=/ --libdir=/usr/lib64 --disable-debug --disable-gost --disable-dnscrypt --disable-dnstap --enable-ecdsa --disable-subnet --disable-cachedb --disable-static --disable-systemd --without-pythonmodule --without-pyunbound --with-pthreads --with-libnghttp2 --disable-flto --disable-rpath --enable-event-api --enable-ipsecmod --enable-tfo-client --enable-tfo-server --with-libevent=/usr --without-libhiredis --with-pidfile=/run/unbound.pid --with-rootkey-file=/etc/dnssec/root-anchors.txt --with-ssl=/usr --with-libexpat=/usr
Linked libs: libevent 2.1.11-stable (it uses epoll), OpenSSL 1.1.1i  8 Dec 2020
Linked modules: dns64 ipsecmod respip validator iterator
TCP Fastopen feature available

BSD licensed, see LICENSE in source package for details.
Report bugs to unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues


3. Danach editierst Du die /etc/unbound/unbound.conf. Ich habe hier - beispielhaft - obige DNS-Server eingetragen. Ändere dies auf die von Dir gewünschten (ansonsten kannst Du einfach von hier rauskopieren). Folgendes sollte genügen:
Code:
server:
        verbosity: 1
        num-threads: 2
        interface: 127.0.0.1
        port: 53
        so-reuseport: yes
        cache-min-ttl: 300
        cache-max-ttl: 86400
        do-ip4: yes
        do-ip6: no
        do-udp: yes
        do-tcp: yes
        use-systemd: no
        do-daemonize: yes
        # By default everything is refused, except for localhost.
        # access-control: 127.0.0.0/8 allow
        use-syslog: yes
        # file to read root hints from.
        # get one from https://www.internic.net/domain/named.cache
        # root-hints: ""
        hide-identity: yes
        hide-version: yes
        harden-short-bufsize: yes
        harden-large-queries: yes
        harden-glue: yes
        harden-dnssec-stripped: yes
        harden-below-nxdomain: yes
        harden-referral-path: yes
        harden-algo-downgrade: yes
        qname-minimisation: yes
        qname-minimisation-strict: no
        aggressive-nsec: yes
        use-caps-for-id: yes
        prefetch: yes
        rrset-roundrobin: yes
        minimal-responses: yes
        # File with trusted keys for validation. Specify more than one file
        # with several entries, one file per entry.
        # Zone file format, with DS and DNSKEY entries.
        # Note this gets out of date, use auto-trust-anchor-file please.
        # trust-anchor-file: "/etc/dnssec/root-anchors.txt"

remote-control:
        control-enable: no

forward-zone:
        name: "."
        forward-tls-upstream: yes
        forward-addr: 185.95.218.42@853
        forward-addr: 185.95.218.43@853


4. Danach testen wir ob alles läuft. Zuerst machen wir eine herkömmliche Abfrage (bei mir ist momentan der Router als DNS-Server eingetragen) und danch eine über unbound. Diese wiederholen wir, um den Cache-Effekt zu sehen (Query Time):
Code:
# /etc/init.d/unbound start

# dig gentoo.org

; <<>> DiG 9.16.6 <<>> gentoo.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 544
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;gentoo.org.                    IN      A

;; ANSWER SECTION:
gentoo.org.             5681    IN      A       89.16.167.134

;; Query time: 10 msec
;; SERVER: 192.168.2.1#53(192.168.2.1)
;; WHEN: So Dez 13 00:42:32 CET 2020
;; MSG SIZE  rcvd: 55


# dig @localhost gentoo.org

; <<>> DiG 9.16.6 <<>> @localhost gentoo.org
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8967
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
gentoo.org.             7200    IN      A       89.16.167.134

;; Query time: 253 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: So Dez 13 00:43:14 CET 2020
;; MSG SIZE  rcvd: 55


dig @localhost gentoo.org

; <<>> DiG 9.16.6 <<>> @localhost gentoo.org
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16266
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
gentoo.org.             7193    IN      A       89.16.167.134

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: So Dez 13 00:43:21 CET 2020
;; MSG SIZE  rcvd: 55

Falls Du eine FW im Einsatz hast, solltest Du jetzt diese Pakete auch mit "iptables -L -v -n" sehen.

5. Wenn alles funktioniert hat, stellen wir unsere /etc/resolv.conf auf unseren unbound um:
Code:
nameserver 127.0.0.1
options trust-ad


6. Falls Du D.) AppArmor einsetzt, kopiere gleich das entsprechende Profil für unbound aus D.6 in Dein /etc/apparmor.d Verzeichnis.

7. Aktiviere unbound für den nächsten Systemstart mit:
Code:
# rc-update add unbound default


8. Führe einen Reboot durch und prüfe als erstes einen "normalen" dig. Wenn alles funktioniert, dann entferne in Deiner FireWall die bisherigen Freigaben für Port 53 ... da obsolet ... ;-)

.


Last edited by pietinger on Fri Dec 25, 2020 12:39 pm; edited 2 times in total
Back to top
View user's profile Send private message
pietinger
Guru
Guru


Joined: 17 Oct 2006
Posts: 566
Location: Bavaria

PostPosted: Wed Dec 16, 2020 10:49 pm    Post subject: Test it Reply with quote

Ich vergaß ein paar Links damit Du das auch testen kannst:

Folgender Link sollte von Deinem Browser nicht mehr geöffnet werden können:
https://www.dnssec-failed.org

Hier kannst Du prüfen ob DNSSEC funktioniert (nur für IPv4 halt); Domain signature validation (DNSSEC) sollte ein grünes Häkchen haben:
https://internet.nl/connection

Zuletzt noch ein DNSSEC resolver algorithm test:
https://rootcanary.org/test.html
Back to top
View user's profile Send private message
pietinger
Guru
Guru


Joined: 17 Oct 2006
Posts: 566
Location: Bavaria

PostPosted: Thu Jan 21, 2021 12:14 pm    Post subject: Reply with quote

Aktuell wurden Sicherheitslücken im DNSMASQ gefunden: https://www.jsof-tech.com/disclosures/dnspooq/ und https://www.jsof-tech.com/wp-content/uploads/2021/01/DNSpooq_Technical-Whitepaper.pdf

(Deutsch: Heise -> https://www.heise.de/news/DNSpooQ-Sicherheitsluecken-im-DNS-DHCP-Server-Dnsmasq-entdeckt-5030266.html )

Das könnte aber jedem DNS-Server passieren - auch dem von uns verwendeten unbound. Deshalb möchte ich noch einmal eindringlich auf das AA-Profil für unbound in D6 hinweisen.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum