Wie man DNS über HTTPS unter Linux konfiguriert

Diese Anleitung hilft Ihnen bei der Einrichtung und Konfiguration von DNS über HTTPS (DoH) auf Ihrem Linux-System und deckt mehrere Konfigurationsmethoden und Best Practices ab.

Voraussetzungen

  • Linux-Betriebssystem
  • Administratorrechte (root)
  • Grundkenntnisse der Kommandozeile
  • Stabile Netzwerkverbindung

systemd-resolved verwenden

Schritt 1: systemd-resolved-Version überprüfen

systemctl --version
systemd-resolve --version

Stellen Sie sicher, dass die Version 247 oder höher ist, da diese Versionen DoH unterstützen.

Schritt 2: resolved.conf konfigurieren

Bearbeiten Sie /etc/systemd/resolved.conf:

[Resolve]
DNS=1.1.1.1 1.0.0.1
DNSOverTLS=yes
DNSSEC=yes
Cache=yes
DNSStubListener=yes

Für DoH fügen Sie folgende Konfiguration hinzu:

[Resolve]
DNS=https://cloudflare-dns.com/dns-query
     https://dns.google/dns-query
DNSOverTLS=no
DNSSEC=yes
Cache=yes
DNSStubListener=yes

Schritt 3: Dienst neu starten

sudo systemctl restart systemd-resolved
sudo systemctl status systemd-resolved

NetworkManager verwenden

Schritt 1: NetworkManager-Version überprüfen

nmcli --version

Stellen Sie sicher, dass die Version DoH-Funktionalität unterstützt.

Schritt 2: Verbindung konfigurieren

Konfigurieren Sie DoH mit nmcli:

# Aktuelle Verbindungen anzeigen
nmcli connection show

# Bestimmte Verbindung ändern
sudo nmcli connection modify "Verbindungsname" ipv4.dns "1.1.1.1,1.0.0.1" ipv4.dns-over-tls yes
sudo nmcli connection modify "Verbindungsname" ipv6.dns "2606:4700:4700::1111,2606:4700:4700::1001" ipv6.dns-over-tls yes

Schritt 3: Änderungen anwenden

sudo nmcli connection up "Verbindungsname"

Eigenständige Clients verwenden

dnscrypt-proxy

  1. Installation
# Debian/Ubuntu
sudo apt install dnscrypt-proxy

# Fedora
sudo dnf install dnscrypt-proxy

# Arch Linux
sudo pacman -S dnscrypt-proxy
  1. Konfiguration

Bearbeiten Sie /etc/dnscrypt-proxy/dnscrypt-proxy.toml:

server_names = ['cloudflare', 'google']
listen_addresses = ['127.0.0.1:53']
max_clients = 250
ipv4_servers = true
ipv6_servers = true
dnscrypt_servers = true
doh_servers = true
require_dnssec = true
require_nolog = true
require_nofilter = true
force_tcp = false
timeout = 2500
keepalive = 30
  1. Dienst starten
sudo systemctl enable dnscrypt-proxy
sudo systemctl start dnscrypt-proxy
sudo systemctl status dnscrypt-proxy

Stubby

  1. Installation
# Debian/Ubuntu
sudo apt install stubby

# Fedora
sudo dnf install stubby

# Arch Linux
sudo pacman -S stubby
  1. Konfiguration

Bearbeiten Sie /etc/stubby/stubby.yml:

resolution_type: GETDNS_RESOLUTION_STUB
dns_transport_list:
  - GETDNS_TRANSPORT_TLS
tls_authentication: GETDNS_AUTHENTICATION_REQUIRED
tls_query_padding_blocksize: 128
edns_client_subnet_private: 1
round_robin_upstreams: 1
idle_timeout: 10000
listen_addresses:
  - 127.0.0.1@53
  - 0::1@53
upstream_recursive_servers:
  - address_data: 1.1.1.1
    tls_auth_name: "cloudflare-dns.com"
  - address_data: 1.0.0.1
    tls_auth_name: "cloudflare-dns.com"
  1. Dienst starten
sudo systemctl enable stubby
sudo systemctl start stubby
sudo systemctl status stubby

Konfiguration überprüfen

Methode 1: dig verwenden

# DNS-Auflösung testen
dig @127.0.0.1 example.com

# DNSSEC überprüfen
dig @127.0.0.1 example.com +dnssec

# DoH-Server verifizieren
dig @127.0.0.1 whoami.cloudflare CH TXT

Methode 2: resolvectl verwenden

# Aktuelle DNS-Einstellungen anzeigen
resolvectl status

# DNS-Auflösung testen
resolvectl query example.com

# DNSSEC überprüfen
resolvectl query --dnssec example.com

Methode 3: Online-Test

  1. DNS-Leak-Test-Website besuchen
  2. Umfassenden Test durchführen
  3. DNS-Anfragen-Routing überprüfen

Fehlerbehebung

Häufige Probleme

  1. Auflösungsfehler

    • Netzwerkverbindung prüfen
    • Konfigurationsdateien verifizieren
    • Dienststatus überprüfen
    • Systemprotokolle überprüfen
  2. Leistungsprobleme

    • Nächsten Server wählen
    • Cache-Einstellungen optimieren
    • Antwortzeit überwachen
    • Systemressourcen prüfen
  3. Kompatibilitätsprobleme

    • Pakete aktualisieren
    • Abhängigkeiten prüfen
    • Systemanforderungen verifizieren
    • Alternative Konfigurationen testen

Protokollanalyse

  1. Systemprotokolle
# systemd-resolved Protokolle anzeigen
journalctl -u systemd-resolved

# NetworkManager Protokolle prüfen
journalctl -u NetworkManager

# dnscrypt-proxy Protokolle anzeigen
journalctl -u dnscrypt-proxy
  1. Netzwerkdiagnose
# Netzwerkverbindung testen
ping 1.1.1.1

# DNS-Auflösung prüfen
nslookup example.com

# DNSSEC verifizieren
dig example.com +dnssec

Best Practices

  1. Anbieterauswahl

    • Datenschutzrichtlinien bewerten
    • Serviceverfügbarkeit prüfen
    • Geografische Lage berücksichtigen
    • Verbindungsgeschwindigkeit testen
  2. Sicherheitsempfehlungen

    • Vertrauenswürdige Anbieter verwenden
    • DNSSEC aktivieren
    • Regelmäßige System-Updates
    • Netzwerkaktivität überwachen
  3. Leistungsoptimierung

    • Nächste Server wählen
    • Cache-Einstellungen optimieren
    • Leistungsmetriken überwachen
    • Regelmäßige Wartung

Unternehmensbereitstellung

Systemweite Konfiguration

  1. Konfigurationsdateien erstellen

    • systemd-resolved einrichten
    • NetworkManager konfigurieren
    • Client-Software bereitstellen
  2. Bereitstellungsstrategie

    • Konfigurationsmanagement verwenden
    • Überwachung implementieren
    • Wartungsfenster planen
  3. Wartungsmanagement

    • Regelmäßige Updates
    • Leistungsüberwachung
    • Problemverfolgung
    • Backup-Verfahren

Nächste Schritte