Stand Ende 2018 & updated 2022

DNS - Übertragung sicherer machen

DNS Datenschutzalptraum entschärfen - wie es einfach geht   

Problem 

Jeder DNS-Anbieter bekommt von seinem Kunden (also: Du!) eine vollständig detaillierte,  chronologische Aufstellung aller online - Aktivitäten frei Haus.
Das ist der feuchte Traum jedes Datenkriminellen (a.k.a. Amazon, NSA, Google, BND, Facebook, GHCQ, GRU, ...). Täglich frei Haus.
IETF: "DNS Privacy is a real problem and more relevant than ever".
Ausführlicher Hintergrund bei der IETF.

Siehe auch: DNS Privacy project home page, the site is the home of a collaborative open project to promote, implement and deploy DNS Privacy.

Der Bundestrojaner von „FINFISHER“ in Deutschland und Oesterreich
wird meistens installiert vermittels Webseitenzugriffe umleiten. Die Umleitungen benutzen das Provider- DNS und auch verschiedene andere Umleitungsmöglichkeiten im Netzwerk des Internetanbieters (Basis: Layer 2; alle Provider: DTAG, VFD2, Unitymedia, o2 Telefonica, A1, T-Mobile, Drei, UPC, alle). Damit ist die Wahrscheinlichkeit, dass dies bei einem Nutzer angewendet werden kann und erfolgreich ist, mehr als 95%. Darum ist diese Installationsmethode auch die am meisten verbreitete. (Quelle)


Thi
s site is the home of a collaborative open project to promote, implement and deploy DNS Privacy. 

Anmerkungen

Das totale Kriegen der Metadaten!

Abhilfe





DNS muss kein Alptraum sein.


Idee

Meine Inhalte schuetzen:

Den Transportweg schuetzen:


Aktion

Anm: Basierend auf einem Ubuntu 19.10 System, aktualisiert 2019, 2020, 2021, 2022.

Index



Lösungsansatz Teil 1

Wenn DNS-Server hoch sensible Daten protokollieren, kann man
DNS-Anfragen verteilen ist möglich, aber ziemlich aufwändig. Die anfragende ID (IP, MAC) permanent wechseln, ist für die MAC einfach und ratsam.

Simpel ist es, einen ziemlich vertrauensvollen DNS-Server zu benutzen.
Auch für IPv6.
Digitalcourage ist IMHO ein glaubwürdiger Anbieter.
Es gibt auch https://dnsforge.de/ und weitere, bitte selbst eruieren.
Weitere Suchwörter findest Du bei DNS Privacy org und beispielsweise Uncensored DNS in DK.

Aktion

different MAC
      addresses Nun haben wir vertrauenswürdige DNS eingerichtet und die überwachen uns nicht.
Gut so!?
Nee, gar nicht.

Der bekannte Man-in-the-middle-Anfgriff beruht z.B. auf DNS Spoofing, d.h. eine andere DNS-Adresse wird untergeschoben und ein "angepasster" DNS leitet den traffic durch Schnüffelboxen zum Mitlesen "interessanter" Daten. Der Man-in-the-middle-Anfgriff wurde pseudolegal in ein Geschäftsmodell umgebaut:
Der Provider macht selbst eine DNS-Umleitung, das ahnt der Kunde nicht.
Transparent DNS proxies heißt die Schweinerei und baut ein schwer erkennbares Problem auf.
Wie dagegen absichern?

Lösungsansatz Teil 2


DNS - Abfragen beim unzensierten, unprotokollierten Server geringsten Misstrauens sollte man absichern!
Zwei eng verwandte Stufen stehen zur Verfügung:

DNS-over-TLS

DNS-over-TLS verschlüsselt die Abfrage ("DoT"; siehe RFC7858) .
Es ist also eine verschlüsselte Verbindung.
Vorteil: Dritte können nicht einfach mitlesen und darin herumpfuschen und Phishing unterschieben.

DNS-over-TLS ist 100% performant und 100% alltagstauglich!
Eine wünschenswerte Basis wie https gerade wurde.

Dazu wird der DNS-Verkehr mit DNS-over-TLS abgesichert. Das ist nicht Standard bei DNS-Servern.
Der Digitalcourage  Server kann DNS-over-TLS. 

Das Verfahren kann leicht und problemlos aktiviert werden!
In Lösungskonfiguration wird es gezeigt.

DNSSEC

prüft das DNS Zertifikat, es ist eine Prüfung, ob die erhaltenen DNS-Zonendaten auch tatsächlich identisch sind mit denen, die der Ersteller der Zone autorisiert hat und sichert die Übertragung von Resource Records durch digitale Signaturen ab. Der DNS Server muss DNSSEC unterstützen (prüfen!). Der Digitalcourage  Server kann DNSSEC.

Leider sind erstaunlich viele Server im Netz unzureichend konfiguriert. Dafür gibt es einen Zwischenweg: Wie in DNS-over-TLS ist bei "geht nicht" ein automatisches "Abschalten" möglich.  

DNSSEC funktioniert im praktischen Leben meistens gut und ausreichend performant. Weil so viele Server unzureichend konfiguriert sind, ist Sicherung mit DNSSEC momentan (2019) IMHO nur begrenzt massentauglich.
Man kann es einfach mal probieren und ggf. abschalten.

Anleitungen

Es gibt für Ubuntu ab den 16er Versionen nur eine mir bekannte Anleitung von TechRepublic (ueber DNS over TLS) mittels Stubby im Internet - und die ist m.E. viel zu kompliziert. Denn Ubuntu hat mehrere Paradigmenwechsel in den Versionen 17, 18 und 19 untergebracht, die praktisch kaum dokumentiert sind. Beispielsweise benutzt  Ubuntu 18+ NetworkManager gesteuert durch Netplan, insbes. bei Neuinstallationen. Faktisch kaum dokumentiert.  Systemd-resolvd ist exklusiv im Einsatz; man darf nicht mehr die 127.0.0.53 töten.

Siehe auch die grossartige Dokumentation bei Arch über DNS over TLS unter systemd-resolved.

Wie es funktioniert, habe ich zuerst bei Askubuntu beschrieben, einschl. dreckiger Lösung mittels fixierter /etc/resolv.conf 
Hier folgt eine verbesserte Version:

Lösungskonfiguration

Vorarbeit:

DNS eintragen

Zensurfreien DNS im Networkmanager (/usr/bin/nm-connection-editor) eintragen, DNS auf keinen Fall direkt in /etc/resolv.conf eintragen.
Adresse:
46.182.19.48   bzw.   2a02:2970:1002::18
NetwMgr IPv6 set
      DNS

hier für v4:

Screenshot DNS setzen im
      NetworkManager Ubuntu19.04


Link resolv.conf

Darauf achten, dass unbedingt  die /etc/resolv.conf einen Link beschreibt auf  /run/resolvconf/resolv.conf !
Zielzustand:
lrwxrwxrwx 1 root root 39 Apr 28 14:16 /etc/resolv.conf -> /run/resolvconf/resolv.conf
Im Zweifel umbenennen und neu anlegen mit
  sudo ln -s /run/resolvconf/resolv.conf   /etc/resolv.conf

Das ist zwingend erforderlich und wird sogar abgefragt.
Siehe auch Rel.-Notes Ubuntu 14.04.6 LTS unter Networking.    
# \|/ to be reviewed #

Einschalten DNS-over-TLS ("DoT"):

Editiere /etc/systemd/resolved.conf
Ändere den Eintrag von DNSOverTLS zu 
DNSOverTLS=opportunistic
Gutes Beispiel (aus U 20.04.2):
[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no-negative
#DNSStubListener=yes
#ReadEtcHosts=yes
DNSSEC="allow-downgrade"
DNSOverTLS=opportunistic

Pruefen DNS-over-TLS

Adressen mit DNS-over-TLS (DoT) kann man mit einem tool des kommerziellen Anbieters Verisignlabs verifizieren lassen, ob sie korrekt implementiert sind.


Optional:

DNSSEC einschalten

DNSSEC ist komplett vorkonfiguriert, man braucht es nur einschalten.
Editiere /etc/systemd/resolved.conf,
ändere den Eintrag von
    DNSSEC=
auf
    DNSSEC=yes


Einschalten mit automatischem Zurücknehmen bei Bedarf:   
DNSSEC="allow-downgrade"
Die sehr gute man page zu RESOLVED.CONF sagt: Defaults to "allow-downgrade"

Deaktivieren total  mit

    DNSSEC=no 

Externer link: Anleitung DNSSEC zu überprüfen.

ACHTUNG! Vorsicht! Ubuntu ueberschreibt bei einem (Versions-) Upgrade die /etc/systemd/resolved.conf und macht damit die ganze Sicherhheit zu nichte!
HINWEIS: Nach jedem grossen Update nachkontrollieren!

DNS im Router

Der Router zum Internet, nicht nur der PC, sollte abgesichert werden.
Der Anbieter AVM mit seinen FRITZ!Box Produkten unterstützt das gut: Andere DNS-Server in FRITZ!Box einrichten umfasst auch DNS-over-TLS (DoT). Mit Version 7.21 ist die Umsetzung konsequent geworden.
Unzureichende Einträge kann man evtl. mit nslookup analysieren, um beispielsweise die korrekten FQDN (Fully-Qualified-Domain-Name, Auflösungsnamen) der DNS-Server zu finden. 

Einträge, die 01/2021 funktionieren:

Digitalcourage
46.182.19.48 und 2a02:2970:1002::18   mit FQDN:  dns2.digitalcourage.de
und neu:
5.9.164.112 (nur IPv4 bisher) FQDN: dns3.digitalcourage.de, SPKI pinset: 2WFzfO2/56HpeR+v/l25NPf5dacfxLrudH5yZbWCfdo=


UncensoredDNS
91.239.100.100 und 2001:67c:28a4::  mit FQDN: anycast.uncensoreddns.org

Ergebnis-Beispiel einer FritzBox:
mit den drei FQDN dns2.digitalcourage.de, anycast.uncensoreddns.org, anycast.censurfridns.dk
2a02:2970:1002::18 (DoT verschlüsselt)   ## Host: dns2.digitalcourage.de
46.182.19.48 (DoT verschlüsselt) ## Host: dns2.digitalcourage.de
2001:67c:28a4:: (aktuell genutzt für Standardanfragen - DoT verschlüsselt) ## anycast.censurfridns.dk
91.239.100.100 (DoT verschlüsselt) ## anycast.censurfridns.dk

Anbieter, Empfehlungen

Ganz ohne Zensur oder mit Filter gegen aggressiv schaedliche und spionierende Seiten? Es gibt unterschiedliche Versprechen zur Lieferung.
Hier kommt es sicher auf die Muendigkeit des Nutzers an, was zu bevorzugen ist.

Weitere Anbieter für datenschutzkonforme DNS, die in Frage kommen:
UncensoredDNS Denmark
Digitale Gesellschaft Switzerland
dns.watch
OpenNIC

Eine hervorragende Uebersicht mit Empfehlungen bietet der Kuketz-Blog.

 

Bilanz

Alles gut jetzt?
Nein. 
"DNSOverTLS=opportunistic" bietet keine allzeit verlässliche Sicherheit in allen Situationen.

Aber:

Einschränkung:

Da resolvd nur den opportunistic - mode kennt, schaltet das System ggf. das DNSOverTLS ungefragt ab, um weiter DNS-Auflösung liefern zu können.
Im Heimnetz kein Problem,
Laptops mit WLAN haben es schwerer: Eine Fahrt im ICE-WLAN zeigt das Sicherheitsproblem voll auf (zwangsweise unsicheres DNS / siehe Dnsleaktest.com).
Ratsam ist dann die Nutzung eines eigenen Internet-Modems oder eine full-blow Lösung mit z.B. Stubby. Die DNS - Angaben zur Konfiguration seines Servers in Stubby liefert Digitalcourage  vollständig und zutreffend.

Die in WLANs zunehmend automatisierte Netzwerkkonfiguration fragt DNS vom besuchten Provider ab, was natürlich zu unerwünschten Schmiereffekten führt. Der Service-Anbieter möchte als Gegenleistung Deine persönlichen  Daten haben (das dominierende Internet - Geschaeftsmodell).
Gegenmittel: "To configure the resolver, add the IP addresses of the nameservers that are appropriate for your network to the netplan configuration file."; quote: https://help.ubuntu.com/lts/serverguide/network-configuration.html"
Wie das geht, steht in Netplan configuration.
Man sollte sich allerdings den Gefallen tun, "renderer: NetworkManager" zu setzen (und darunter strikt gar nichts!)!


It is the consumer who is consumed.
You are the product.
You are delivered to the advertiser who is the customer.
Richard Serra and Carlota Fay Schoolman 1973



Nachprüfung

DNS Server

Test Server vom DNS Privacy project.

Test Server eines privaten Anbieters ("bash.ws").

Welcher DNS von systemd-resolved benutzt wird:
resolvectl status
Ob resolvectl mit dem DNS eine bekannte Adresse auflöst:
resolvectl query archlinux.org 


Nachprüfbar ist die Nutzung des zensurfreien Servers hier:
    https://dnsleaktest.com/
leaktest-Screenshot

Das heisst, protokolliere mich nicht, das heisst aber nicht, dass auch DNS-over-TLS eingeschaltet ist. 

Tatsächlich benutzter DNS

durch den systemd-resolved:
resolvectl status


DNS-over-TLS prüfen

Die Nutzung des DNSOverTLS lässt sich einfach mit Wireshark prüfen:
Es darf nichts Wesentliches von der Schnittstelle (WLAN, Ethernet) mehr über Port 53 gehen, aller Internet-traffic muss über Port 853 gehen. 

Vorschlag Vorgehen: Im InfoSec Handbook


Anmerkung zu Geschichte und Name

DNS werden gerne Resolver genannt. Hier die Herkunft dieser Bezeichnung, zitiert aus dem NAG (Network Administrators Guide by Olaf Kirch and Terry Dawson):
"When an application needs to find the IP address of a given host, it relies on the library functions gethostbyname(3) and gethostbyaddr(3). Traditionally, these and a number of related procedures were grouped in a separate library called the resolverlibrary ; on Linux, these functions are part of the standard libc. Colloquially, this collection of functions is therefore referred to as “the resolver.”"


DNS Privacy Reference Material

siehe DNS Privacy Reference Material
Relevant Internet Drafts and RFCs
Selection of Presentations
Technical reports

Eine Seite mit ganz aehnlichem Fokus und vielen Referenzen fuer DNS-Server ist bei


Lizenz:  CC BY 4.0

ipv6 test