DNS Resolver ohne USA einstellen

Ich habe Manjaro mit XFCE installiert. Dort ist der NetworkManager aktiv.
Mein Ziel ist nun, einen DNS Resolver wie von digitalcourage (Zensurfreier DNS-Server | Digitalcourage) einzustellen und außerdem DNS over TLS (DoT).

Ich habe die Datei /etc/NetworkManager/conf.d/20-dns-tls.conf
mit dem Inhalt

DNS=5.9.164.112#dns3.digitalcourage.de
DNSOverTLS=opportunistic

erstellt und den NetworkManager Dienst neu gestartet. Es hat jetzt funktioniert.

Wie kann ich jetzt feststellen, ob dieser DNS Resolver wirklich verwendet wird?

Manche empfehlen systemd-resolved. Ist das besser als NetworkManager?

mit NetworkManager:

  • das Icon im Panel klicken
  • Verbindungen bearbeiten
  • Deine Verbindung raussuchen
  • doppelt klicken oder das Zahnrad unten → wenn Du die Maus drüberhälst kommt ein Tip: “die Verbindung bearbeiten”
  • dann im fünften und sechsten Tab von links (IPv4 und IPv6 Einstellungen) die Methode von “automatisch (DHCP)” auf “automatisch (DHCP), nur Adressen” stellen
  • unten bei DNS Server Deinen gewünschten (oder zwei - mit Komma getrennt) eintragen
  • speichern, fertig

Zu DNS über TLS weiß ich nichts - außer daß z.B. Firefox dies anbietet - aber das wär dann nur für den Browser selbst, nicht für das ganze System.

Ich hab Google gefragt:
“welcher dns server wird verwendet test Linux”

eine der Antworten:

Linux | Konsole | genutzte(n) DNS-Server ermitteln/auslesen | ComputerBase Forum

mit dig oder nslookup

Das muss in systemd-resolved config eingetragen werden und das:

[main]
dns=systemd-resolved

in deine NetworkManager config. Aber eigentlich nicht nötig. Systemd-resolve wird so oder so verwendet.

Im journal:

journalctl --unit=NetworkManager --boot=0

Den DNS Resolver, den das eigene System aktuell nutzt, zeigt diese Seite an:

Oder das AUR Programm dnsleaktest ausführen im Terminal.

yay -Ss dnsleaktest                                                                                                                          
aur/dnsleaktest 1.3-2

Die IP Adresse des ermittelten DNS resolvers kann trotz alledem vom konfigurierten abweichen, da manche DNS Resolver Dienste ganze IP Blöcke belegen oder intern weiterschalten (wie bei globalem DNS Dienst Mullvad)…

Hey, vielen Dank für eure Antworten!

Bei mir ist systemd-resolved garnicht gestartet. Aber warum? Ich hatte mich darum nie gekümmert.

Wenn ich eure Antworten lese, frage ich mich, warum ich bei der Suche im Internet so verschiedene und irritierende Lösungen finde.

Verstehe ich es richtig: die Einträge DNS und DNSOverTLS in der NetworkManager.conf haben keine Wirkung?
Und ich muss systemd-resolved aktivieren?

Wenn ich das versuche, wird der Speichern Button deaktiviert. Als DNS Server wollte ich 5.9.164.112:853 eintragen.

In welchen Paketen stecken nslookup und dig? Beide sind nicht installiert.

Der typischste Fall ist ist ein Heimnetzwerk mit einem Router, z.B. Fritz Box, in dem ein oder mehrere DNS-over-TLS Server eingetragen werden (können). In diesem Fall wird im eigenen PC DNS-over-TLS nicht konfiguriert. Falls der PC unterwegs wäre, böte sich an den PC mit VPN mit dem eigenen Router zu verbinden (z.B. Fritz Box mittels WireGuard), um den sicheren Routerausgang weiter zu benutzen.

Falls der eigene PC für DNS-over-TLS konfiguriert werden soll, muss geschaut werden, welcher Resolver im System eingerichtet ist. Das kann z.B. nur mit NetworkManager sein, oder mit Openresolv, oder mit system-resolved, oder andere.
Manjaro hatte bisher standardmäßig Openresolv.

Ein Vorteil hat systemd-resolved als Resolver gegenüber den Anderen, es hat einen Cache.
Domain name resolution - ArchWiki - Abschnitt 7

1 Like

Das erlaubt die Syntax nicht - Du kannst da eine Server Adresse eintragen, aber nicht mit Port.

Dann wohl so wie es @megavolt gesagt hat - wie gesagt habe is von DNS over TLS keine Ahnung.

dig und nslookup sind beide im Paket bind

Ich betreibe hier NetworkManager zusammen mit dnsmasq, der den Cache bereitstellt.
Aber: das ist ein Mint System, nicht Arch oder Manjaro - aber da hatte ich es genau so gehabt als das noch mein System war.

Vielen Dank euch!
Wieder was gelernt.

Mit der FritzBox kann man DNS over TLS (DoT) aktivieren…
Internet > Zugangsdaten > DNS-Server
Bei Auflösungsnamen der DNS-Server können Einträge (jeweils eine Zeil) stehen:

dnsforge.de
dns11.quad9.net

Wenns hilft…

1 Like

Schönen Dank!
Das hatte ich gar nicht auf dem Schirm - ich hab eine und werd das sicher bald mal implementieren.

… hilft natürlich nur vom Heimnetz aus …

Korrekt.

Ja…

Im Prinzip so:

sudo systemctl enable --now systemd-resolved
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
sudo mkdir -p  /etc/systemd/resolved.conf.d/
sudo nano /etc/systemd/resolved.conf.d/dnsovertls.conf

Den Inhalt:

[Resolve]
DNS=8.8.8.8#dns.google 8.8.4.4#dns.google 2001:4860:4860::8888#dns.google 2001:4860:4860::8844#dns.google
FallbackDNS=
DNSOverTLS=yes
Cache=yes
CacheFromLocalhost=yes
sudo systemctl restart systemd-resolved
$ resolvectl status 
Global
         Protocols: +LLMNR +mDNS +DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: stub
Current DNS Server: 8.8.8.8#dns.google
       DNS Servers: 8.8.8.8#dns.google 8.8.4.4#dns.google 2001:4860:4860::8888#dns.google 2001:4860:4860::8844#dns.google

Link 2 (eno1)
    Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6 mDNS/IPv4 mDNS/IPv6
         Protocols: +DefaultRoute +LLMNR +mDNS DNSOverTLS=opportunistic DNSSEC=no/unsupported
Current DNS Server: 192.168.178.1
       DNS Servers: 192.168.178.1 fd00::cece:1eff:feca:6f6c
        DNS Domain: fritz.box
     Default Route: yes

Link 3 (docker0)
    Current Scopes: none
         Protocols: -DefaultRoute +LLMNR +mDNS +DNSOverTLS DNSSEC=no/unsupported
     Default Route: no

Wenn du absolut sicher gehe willst, dass auch wirklch DoT verwendet word, dann mal tcpdump bemühen…

sudo tcpdump -ni eno1 -p port 53 or port 853

Somit wird DNS komplett von systemd-resolve verwaltet.


Andere Methode mit Konfiguration in NetworkManager:

sudo systemctl enable --now systemd-resolved
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
sudo mkdir /etc/NetworkManager/conf.d/
echo -e  "[main]\ndns=systemd-resolved" > /etc/NetworkManager/conf.d/dns.conf       

Dann für ein Verbindungprofil modifizieren (hier: cable1):

nmcli connection modify cable1 connection.dns-over-tls=2
nmcli connection modify cable1 ipv4.ignore-auto-dns true
nmcli connection modify cable1 ipv6.ignore-auto-dns true
nmcli connection modify cable1 ipv4.dns '9.9.9.9#dns.quad9.net;149.112.112.112#dns.quad9.net'
nmcli connection modify cable1 ipv6.dns '2620:fe::fe#dns.quad9.net;2620:fe::9#dns.quad9.net'
sudo nmcli connection reload
nmcli connection down cable1 && nmcli connection up cable1

Prüfen, ob Port 853 verwendet wird:

sudo tcpdump -ni eno1 -p port 53 or port 853

Nee, eben nicht.
Die Fritz Box bietet wireguard VPN an, um von “außerhalb” sich mit dem Router im Heimnetz zu verbinden und den Router mit seiner DOT Konfiguration zu verwenden. Wireguard geht für den Linux PC direkt über den NetworkManager (VPN-Verbindungen/Wireguard) und am Handy über den Wireguard App ( im F-Droid verfügbar als FOSS).

1 Like

Naja, wenn man es bei der DoT Konfiguration beläßt, dann schon.

Natürlich kann man dann mit wireguard VPN noch weitermachen.

Aber wer von den “Noobs” oder “casual users” versteht auch nur die Hälfte des Konzeptes - um auch nur zu beginnen es umzusetzen von überall her …

Mir persönlich … ist das zuviel Arbeit für Null benefit (für mich).

Mein Laptop ist zu Hause - woanders benutze ich ein externes VPN (was ich für extrem wenig Geld für jetzt noch weitere 2 Jahre nutzen kann weil schon insgesamt bezahlt).

… wenn ich nicht zu Hause bin ist mein Router aus - … so funktioniert das nicht :wink:

1 Like