BLOG
DNS-over-TLS mit OpenWrt
Webseiten ohne HTTPS sind zum Glück selten geworden. Allerdings werden DNS-Anfragen, die einem Webbrowser die IP-Adresse einer Webseite verraten, in der Regel immer noch unverschlüsselt versendet. Dies macht sie anfällig für Überwachung und Manipulation, was DNS-over-TLS (DoT) verhindern möchte.
Für OpenWrt-Router ist es seit Version 19.07 verhältnismäßig einfach, das private Netzwerk mit DoT abzusichern. Hierzu wird Unbound installiert und sendet öffentliche DNS-Anfragen an den DoT Server der Wahl.
Und das geht so:
Unbound installieren
Neue Softwarepakete werden unter System / Software installiert:
- Zuerst mit Update lists… die Liste der verfügbaren Pakete aktualisieren.
- Dann folgende Pakete (in dieser Reihenfolge) installieren:
ca-bundle
libunbound
bzw.libunbound-light
unbound-daemon
luci-app-unbound
dnsmasq konfigurieren
dnsmasq wird unter Network / DHCP and DNS konfiguriert:
- General Settings: bei DNS forwardings den Eintrag
127.0.0.1#1053
hinzufügen. - Resolv and Hosts Files: die Option Ignore resolv file aktivieren.
- Die Änderungen mit Save abspeichern.
Zu diesem Zeitpunkt sind die Änderungen nur abgespeichert. Sobald sie aktiviert werden, leitet dnsmasq öffentliche DNS-Anfragen an den lokalen Port 1053 weiter (auf dem in Kürze Unbound läuft) und ignoriert die vom Internetprovider konfigurierten DNS-Server.
Unbound konfigurieren
Unbound wird unter Services / Recursive DNS konfiguriert:
- Basic: den Listening Port auf
1053
setzen. - Alle bisherigen Änderungen mit Save & Apply aktivieren.
Zu diesem Zeitpunkt übernimmt Unbound öffentliche DNS-Anfragen, verwendet aber noch kein DNS-over-TLS.
DNS-over-TLS konfigurieren
Die Verwendung von DNS-over-TLS wird in den Unbound-Einstellungen unter Zones konfiguriert. Alle vorkonfigurierten Zonen sollten inaktiv sein (kein Haken bei Enabled) und können gelöscht werden.
Eine neue Zone anlegen und konfigurieren:
Einstellung | Beschreibung |
---|---|
Enabled | Option aktivieren. |
Zone Type | Forward |
Zone Names | . |
Servers | IP-Adressen des DoT Servers eintragen. |
DNS over TLS | Option aktivieren. |
TLS Name Index | Hostnamen des DoT Servers eintragen. |
Beispiel für dns.artikel10.org:
Nachdem die Änderungen mit Save & Apply aktiviert wurden, muss Unbound unter Status / Processes neugestartet werden:
- Unbound (/usr/sbin/unbound) per Hang Up neustarten.
Zu diesem Zeitpunkt sollten öffentliche DNS-Anfragen an den DoT Server gehen. Dies lässt sich mit einem DNS Leak Test prüfen, der die konfigurierten IP-Adressen anzeigen sollte.
Idealerweise validiert der DoT Server auch DNSSEC, was z.B. der DNSSEC Resolver Test anzeigt.
Bei Problemen kann die Zone deaktiviert und Unbound neugestartet werden. Öffentliche DNS-Anfragen werden dann allerdings wieder unverschlüsselt versendet.
OpenWrt-Updates
Nach dem Einspielen eines neuen OpenWrt-Images müssen die oben genannten Softwarepakete neu installiert werden. Dafür sind die beiden Einstellungen unter dnsmasq konfigurieren vorübergehend rückgängig zu machen.
Wenn Unbound installiert ist, kann dnsmasq wieder wie beschrieben konfiguriert werden. Der DNS Leak Test sollte dann den gewählten DoT Server anzeigen!
Basierend auf DNS over TLS with Unbound.