OpenWRT
Openwrt
Serial console
sudo screen /dev/ttyUSB0 115200
Activate wifi for openwrt:
opkg update && opkg install python ath10k-firmware-qca988x kmod-ath10k wpad && reboot
Stubby
Installieren von Stubby
opkg install dnsmasq-full --download-only && opkg remove dnsmasq && opkg install dnsmasq-full --cache . && rm *.ipk
Jegliche existierenden Konfigurationdateien werden durch ein “-opkg” erweitert und man erhält folgende Warnung
* resolve_conffiles: Existing conffile /etc/config/dhcp is different from the conffile in the new package. The new conffile will be placed at /etc/config/dhcp-opkg.
opkg install stubby
Stubby laucht nun auf Port 5453 am loopback-interface. Also muss dafür gesorgt werden das DNS Anfragen dahin weitergeleitet werden:
uci add_list dhcp.@dnsmasq[-1].server='127.0.0.1#5453'
uci set dhcp.@dnsmasq[-1].noresolv=1
uci commit && reload_config
Um nicht den ISP-DNS zu verwenden wird folgendes ausgeführt
uci set network.wan.peerdns='0'
uci set network.wan.dns='127.0.0.1'
uci set network.wan6.peerdns='0'
uci set network.wan6.dns='0::1'
uci commit && reload_config
Anschließend entfernen wir Cloudfare als DNS anbieter (wer möchte) und ersetzt diese durch andere. Hier ein beispiel:
config resolver
option address '80.241.218.68'
option tls_auth_name 'fdns1.dismail.de'
list spki 'sha256/MMi3E2HZr5A5GL+badqe3tzEPCB00+OmApZqJakbqUU='
config resolver
option address '46.182.19.48'
option tls_auth_name 'dns2.digitalcourage.de'
list spki 'sha256/v7rm6OtQQD3x/wbsdHDZjiDg+utMZvnoX3jq3Vi8tGU='
Alle anderen “config resolver” sollten entfernt sein/werden.
Eventuell muss die list spki aktualisieren. Abschließend noch tls aktivieren:
config stubby 'global'
[..]
option tls_min_version '1.2'
Aktivieren von DNSSEC:
uci set dhcp.@dnsmasq[-1].dnssec=1
uci set dhcp.@dnsmasq[-1].dnsseccheckunsigned=1
uci commit && reload_config
Nun nur noch die Dienste neustarten:
/etc/init.d/stubbs restart
/etc/init.d/dnsmasq restart
Nun können wir das ganze testen:
dig dnssectest.sidn.nl +dnssec +multi @OpenWrt-Gateway-IP-Adresse
Interessant am output ist das ad bei den Flags. Das bedeutet, dass der DNS server die Antwort für authentisch hält:
; <<>> DiG 9.11.11-RedHat-9.11.11-1.fc30 <<>> dnssectest.sidn.nl +dnssec +multi @172.16.1.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55451
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 512
;; QUESTION SECTION:
;dnssectest.sidn.nl. IN A
;; ANSWER SECTION:
dnssectest.sidn.nl. 3599 IN A 213.136.9.12
dnssectest.sidn.nl. 3599 IN RRSIG A 8 3 3600 (
20200110081058 20191211081058 42033 sidn.nl.
frItOICbrx/NS5TYCcvNbpQXRsbllQ2Tgmc2av33p9wi
e9tdH5eg1Pj0anlDgbD9zluuI6M41JN9xILkkZRvWkFG
xpg+WSTkqoYbMjQscq2sbRmSvcMv4EVWiR0HphLSh+et
6C+9Rwu3gVr1u/Yj/3RiO0fuZP9H9d9zG5hqX5U= )
;; Query time: 275 msec
;; SERVER: 172.16.1.1#53(172.16.1.1)
;; WHEN: Mi Dez 11 13:29:10 CET 2019
;; MSG SIZE rcvd: 230
Quelle: https://www.kuketz-blog.de/stubby-verschluesselte-dns-anfragen-openwrt-teil5/