B.6 Privacy mit unbound / DNS over TLS
Auch wenn viele auf den "dnsmasq" schwören, ist m.M. der "unbound" für einen Desktop geeigneter. Falls Dir die Überschrift wenig sagt, lies doch:
https://de.wikipedia.org/wiki/DNS_over_TLS
Edit 2023-04-26: WikiPedia hat mal wieder umfangreich gelöscht. Die Liste mit den freien DNS-Servern ist weg ...
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.
Der Artikel in unserem Gentoo Wiki ist (Stand:heute) noch etwas dürftig:
https://wiki.gentoo.org/wiki/Unbound
Dafür gebe ich Dir aber zwei hervorragende Links zum Thema:
https://www.privacy-handbuch.de/handbuch_93c.htm
https://dnsprivacy.org/
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: Select all
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 ACCEPTCode: Select all
# emerge -pv unboundEdit 2022-03-29: Falls "unbound" zentral für mehrere Clients im Einsatz ist, solltest Du die Option "num-threads: 2" prüfen und ggf. höher setzen. Für einen lokalen Einsatz genügt aber auch "num-threads: 1" vollkommen.
Code: Select all
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"
tls-cert-bundle: "/etc/ssl/certs/ca-certificates.crt"
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@853Code: Select all
# /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: 554. Wenn alles funktioniert hat, stellen wir unsere /etc/resolv.conf auf unseren unbound um:
Code: Select all
nameserver 127.0.0.1
options trust-ad6. Aktiviere unbound für den nächsten Systemstart mit:
Code: Select all
# rc-update add unbound default.
