DNS-Verschlüsselung
AdGuard Home unterstützt alle modernen DNS-Verschlüsselungsprotokolle standardmäßig:
AdGuard Home unterstützt sowohl clientseitige als auch serverseitige DNSCrypt. Erfahren, wie Sie AdGuard Home als DNSCrypt-Server konfigurieren.
Diese Anleitung erklärt, wie man einen verschlüsselten DNS-Server mit AdGuard Home einrichtet.
Serverinstallation
Der Zweck der Sicherung des DNS-Verkehrs besteht darin, ihn vor Dritten zu schützen, die ihn analysieren oder verändern könnten, z. B. Internetdienstanbieter.
Das bedeutet, dass Sie einen Server mit einer öffentlichen dedizierten IP-Adresse benötigen. Es gibt viele günstige Cloud-Server-Anbieter: DigitalOcean, Vultr, Linode, usw. Whlen Sie einfach einen aus, erstellen Sie dort einen Cloud-Server und installieren Sie AdGuard Home auf Ihrem Server.
Registrierung eines Domainnamens
Als Erstes benötigen Sie einen Domainnamen. Falls Sie noch nie eine Domain registriert haben, finden Sie hier eine einfache Anleitung, die Ihnen dabei hilft.
SSL-Zertifikat abrufen
Sowohl DNS-over-HTTPS als auch DNS-over-TLS basieren auf TLS-Verschlüsselung, daher benötigen Sie ein SSL-Zertifikat, um sie zu verwenden.
Ein SSL-Zertifikat kann bei einer Zertifizierungsstelle (CA) erworben werden, einem Unternehmen, dem Browser und Betriebssysteme die Ausstellung von SSL-Zertifikaten für Domains anvertrauen.
Alternativ können Sie das Zertifikat kostenlos von der Let's Encrypt CA, einer kostenlosen Zertifizierungsstelle, die von der Internet Security Research Group (ISRG) entwickelt wurde, erhalten.
Dieser Leitfaden erklärt, wie man von ihnen ein Zertifikat erhält.
Verwendung von CertBot
Certbot ist ein benutzerfreundlicher Client, der ein Zertifikat von Let's Encrypt abruft.
- Öffnen Sie die Seite certbot.eff.org und wählen Sie die Option None of the above (Keine der oben genannten) Software sowie Ihr Betriebssystem aus.
- Befolgen Sie die Installationsanweisungen und unterbrechen Sie den Vorgang, sobald Sie den Abschnitt Erste Schritte erreichen.
Abrufen eines Zertifikats mit DNS-Challenge
Wenn Sie einen Domainnamen besitzen, ist die DNS-Validierung der einfachste Weg, ein Zertifikat zu erhalten.
Führen Sie diesen Befehl aus und befolgen Sie die Anweisungen von Certbot:
sudo certbot certonly --manual --preferred-challenges=dns --preferred-chain="ISRG Root X1"
Letztendlich erhalten Sie zwei Dateien:
fullchain.pem: Ihr PEM-kodiertes SSL-Zertifikatprivkey.pem: Ihr PEM-kodierter privater Schlüssel
Beide sind für die Konfiguration von AdGuard Home erforderlich.
Um das bestehende Zertifikat zu verlängern, müssen Sie genau denselben Vorgang erneut durchführen.
Verwendung von LEGO
Es gibt auch eine wirklich gute und benutzerfreundliche Alternative zu CertBot namens LEGO.
- Installieren Sie es mit einer geeigneten Methode.
- Wählen Sie Ihren DNS-Anbieter aus der Liste aus und befolgen Sie die Anweisungen, um ein Zertifikat anzufordern.
Außerdem finden Sie hier ein einfaches Skript, mit dem Sie die Erstellung und Erneuerung von Zertifikaten automatisieren können.
AdGuard Home konfigurieren
-
Öffnen Sie die Weboberfläche von AdGuard Home und gehen Sie zu Einstellungen.
-
Wählen Sie den Abschnitt Verschlüsselung.

-
Kopieren Sie den Inhalt der Datei
fullchain.pemund fügen Sie ihn in das Feld unter Zertifikate ein oder geben Sie den Pfad zur Datei an. -
Kopieren Sie den Inhalt der Datei
privkey.pemund fügen Sie ihn in das Feld unter Privater Schlüssel ein oder geben Sie den Pfad zur Datei an. -
Geben Sie Ihren Domainnamen unter Servername ein.
-
Rufen Sie die Bestätigungsmeldungen ab und klicken Sie auf Einstellungen speichern.
AdGuard Home lädt Zertifikate und/oder private Schlüssel, die über einen Dateipfad angegeben wurden, automatisch neu, sobald sich diese ändern. Ein Neuladen kann auch durch ein SIGHUP-Signal ausgelöst werden.
Verwendung mit Reverse-Proxy
Es gibt bereits eine Anleitung zur Konfiguration eines Reverse-Proxy-Servers für den Zugriff auf die Weboberfläche von AdGuard Home.
AdGuard Home kann DNS-over-HTTPS-Anfragen einschränken, die von einem Proxy-Server stammen, der nicht in der Liste der „vertrauenswürdigen“ Server aufgeführt ist. Standardmäßig ist es so konfiguriert, dass Anfragen von IPv4- und IPv6-Loopback-Adressen akzeptiert werden.
Damit AdGuard Home DNS-over-HTTPS-Anfragen von einem Reverse-Proxy-Server verarbeiten kann, setzen Sie die Einstellung trusted_proxies in der Datei AdGuardHome.yaml auf die IP-Adresse des Proxy-Servers. Wenn Sie über mehrere Proxy-Server verfügen, können Sie anstelle einer einfachen IP-Adresse einen CIDR-Bezeichner verwenden.
Nginx Reverse-Proxy
Um AdGuard Home so zu konfigurieren, dass es Anfragen vom Nginx-Reverse-Proxy-Server akzeptiert, stellen Sie sicher, dass der Reverse-Proxy-Server selbst korrekt konfiguriert ist.
Die Datei nginx.conf sollte die entsprechenden Anweisungen enthalten, um die unterstützten Weiterleitungsheader X-Real-IP oder X-Forwarded-For an die Anfrage anzuhängen. Dies lässt sich mit dem ngx_http_realip_module erreichen. Kurz gesagt: Das Modul erfasst die tatsächliche IP-Adresse des Clients und schreibt sie in den Header der HTTP-Anfrage. AdGuard Home empfängt den Wert dieses Headers und interpretiert ihn als die tatsächliche Adresse des Clients. Die Adresse des Reverse-Proxy-Servers wird ebenfalls empfangen und anhand der Liste der „vertrauenswürdigen“ Proxys überprüft.
Ein weiterer Header, den Sie möglicherweise weiterleiten möchten, ist der Host-Header. Dieser ist erforderlich, damit AdGuard Home Anfragen von Clients erkennt, deren Hostnamen eine Client-ID enthalten.
Wenn die Konfiguration des Reverse-Proxy-Servers beispielsweise die folgenden Anweisungen enthält:
location /dns-query {
# …
proxy_set_header Host $host;
proxy_set_header X-Real-IP '1.2.3.4';
proxy_bind 192.168.1.2;
# …
}
AdGuard Home erhält die Adresse 192.168.1.2 als Adresse Ihres Proxy-Servers und gleicht sie mit der Liste trusted_proxies ab. Die 1.2.3.4 wird durch die Zugriffseinstellungen gesteuert, sofern der Proxy als „vertrauenswürdig“ eingestuft ist.
Cloudflare CDN
Das Content Delivery Network von Cloudflare fungiert als Reverse-Proxy und fügt den weitergeleiteten Anfragen seine eigenen Header hinzu, nämlich CF-Connecting-IP und True-Client-IP. Diese werden auch von AdGuard Home unterstützt, sodass die Adressen der Reverse-Proxy-Server direkt in die Liste trusted_proxies eingefügt werden können. Weitere Informationen zur Wiederherstellung der ursprünglichen IP-Adresse des Besuchers finden Sie in der offiziellen Cloudflare-Anleitung.
Weitere Header
Möglicherweise werden in Zukunft weitere HTTP-Header von AdGuard Home unterstützt. Funktionswünsche, die sich auf Header beziehen, sollten jedoch zunächst durch eine entsprechende Konfiguration des Reverse-Proxys selbst gelöst werden.
Um beispielsweise den HTTP Strict Transport Security-Mechanismus so anzupassen, dass er die experimentelle preload-Anweisung enthält, könnte etwa die folgende Konfiguration verwendet werden:
location /dns-query {
# …
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
# …
}
Geräte konfigurieren
Android
- Android 9 und höher unterstützt standardmäßig
DNS-over-TLS. Um dies einzurichten, öffnen Sie Einstellungen → Netzwerk & Internet → Erweitert → Privater DNS und geben Sie dort Ihren Domainnamen ein. - AdGuard für Android unterstützt
DNS-over-HTTPS,DNS-over-TLS,DNSCryptundDNS-over-QUIC. - Intra erweitert Android um Unterstützung für
DNS-over-HTTPS.
iOS
- iOS 14 und höher unterstützen standardmäßig
DNS-over-TLSundDNS-over-HTTPSüber Konfigurationsprofile. Um Ihnen die Arbeit zu erleichtern, kann AdGuard Home diese Konfigurationsprofile für Sie erstellen. Öffnen Sie einfach die Einrichtungsanleitung → DNS-Datenschutz und wechseln Sie zum Abschnitt für iOS. - AdGuard für iOS unterstützt
DNS-over-HTTPS,DNS-over-TLS,DNSCryptundDNS-over-QUIC. - DNSCloak unterstützt
DNS-over-HTTPS, aber um es für die Verwendung Ihres eigenen Servers zu konfigurieren, muss dafür ein DNS-Stempel generiert werden.
Windows
- Windows 10 Build 19628 und höher unterstützen standardmäßig
DNS-over-HTTPS. - AdGuard für Windows unterstützt
DNS-over-HTTPS,DNS-over-TLS,DNSCryptundDNS-over-QUIC.
macOS
- macOS Big Sur und höher unterstützen
DNS-over-TLSundDNS-over-HTTPSnativ über Konfigurationsprofile. Um Ihnen die Arbeit zu erleichtern, kann AdGuard Home diese Konfigurationsprofile für Sie erstellen. Öffnen Sie einfach die Einrichtungsanleitung → DNS-Datenschutz und wechseln Sie zum Abschnitt für iOS.
Weitere Implementierungen
- AdGuard Home selbst kann auf jeder Plattform als sicherer DNS-Client fungieren.
- dnsproxy unterstützt alle bekannten sicheren DNS-Protokolle.
- dnscrypt-proxy unterstützt
DNS-over-HTTPS. - Mozilla Firefox unterstützt
DNS-over-HTTPS.
DNSCrypt konfigurieren
AdGuard Home kann als DNSCrypt-Server genutzt werden. Diese Funktion ist jedoch nur über die Konfigurationsdatei verfügbar und kann nicht über die Weboberfläche eingerichtet werden. In dieser Anleitung wird die Vorgehensweise erläutert.
Erstellen einer Konfigurationsdatei
So erstellen Sie eine DNSCrypt-Konfigurationsdatei und verweisen AdGuard Home darauf:
Stellen Sie sicher, dass Ihre TLS-Einstellungen korrekt sind und die Verschlüsselung aktiviert ist.
-
Laden Sie die neueste Version des Dienstprogramms
dnscryptfür Ihr System herunter. Entpacken Sie das Archiv und wechseln Sie in den so entstandenen Ordner.-
Unter Unix mit einer POSIX-kompatiblen Shell:
(Hier und im Folgenden wird
linux-amd64als Beispiel verwendet. Achten Sie darauf, die für Ihre Plattform geeignete Version herunterzuladen und zu verwenden.)-
Entpacken Sie die Dateien wie folgt:
tar -f ./dnscrypt-linux-amd64-v2.2.3.tar.gz -v -x -zBeispiel für die Ausgabe:
linux-amd64/linux-amd64/README.mdlinux-amd64/LICENSElinux-amd64/dnscrypt -
Wechseln Sie in den entpackten Ordner:
cd ./linux-amd64/ -
Erstellen Sie die Konfigurationsdatei:
./dnscrypt generate --provider-name '2.dnscrypt-cert.example.org' --out ./dnscrypt.yamlBeispiel für die Ausgabe:
02.01.2022 12:34:56 [Info] Konfiguration für 2.dnscrypt-cert.example.org wird erstellt02.02.2022 12:34:56 [Info] Konfiguration wurde in ./dnscrypt.yaml geschrieben02.02.2022 12:34:56 [Info] Besuchen Sie https://dnscrypt.info/stamps, um einen SDNS-Stempel zu generieren02.02.2022 12:34:56 [Info] Sie können einen DNSCrypt-Server mit dem folgenden Befehl ausführen:02.02.2022 12:34:56 [Info] dnscrypt server -c ./dnscrypt.yaml -f 8.8.8.8
-
-
Unter Windows mit PowerShell:
(Hier und im Folgenden wird
windows-amd64als Beispiel verwendet. Achten Sie darauf, die für Ihre CPU-Architektur geeignete Version herunterzuladen und zu verwenden.)-
Entpacken Sie die Dateien wie folgt:
Expand-Archive -Path .\dnscrypt-windows-amd64-v2.2.3.zip -
Wechseln Sie in den entpackten Ordner:
Set-Location -Path .\dnscrypt-windows-amd64-v2.2.3\windows-amd64\ -
Erstellen Sie die Konfigurationsdatei:
.\dnscrypt.exe generate --provider-name '2.dnscrypt-cert.example.org' --out .\dnscrypt.yamlBeispiel für die Ausgabe:
02.01.2022 12:34:56 [Info] Konfiguration für 2.dnscrypt-cert.example.org wird erstellt02.02.2022 12:34:56 [Info] Die Konfiguration wurde in die Datei .\dnscrypt.yaml geschrieben02.02.2022 12:34:56 [info] Besuchen Sie https://dnscrypt.info/stamps, um einen SDNS-Stempel zu generieren02.02.2022 12:34:56 [info] Sie können einen DNSCrypt-Server mit dem folgenden Befehl ausführen:02.02.2022 12:34:56 [Info] dnscrypt server -c .\dnscrypt.yaml -f 8.8.8.8
-
Dabei ist
example.orgder Name Ihres Hosts und./dnscrypt.yamlder Name der Konfigurationsausgabedatei.Sie können den Pfad zur Binärdatei in Ihre
PATH-Variable bzw. in$env:PATHeinfügen. -
-
Fügen Sie in der Konfigurationsdatei (in der Regel
AdGuardHome.yaml) die folgenden Zeilen ein:'tls':# Hinweis: Die Verschlüsselung muss aktiviert sein.'enabled': true# …'port_dnscrypt': 5443'dnscrypt_config_file': './dnscrypt.yaml'Dabei ist
5443der Port für Ihren DNSCrypt-Server und./dnscrypt.yamlder Name der in Schritt 2 erstellten Konfigurationsdatei.WichtigBeenden Sie AdGuard Home, bevor die Konfigurationsdatei geändert wird.
tipUnter Windows wird empfohlen, den vollständigen Pfad zur Konfigurationsdatei anzugeben. Zum Beispiel
C:\Users\Me\Files\dnscrypt.yaml.
Einen DNSCrypt-Stempel (DNSCrypt stamp) erstellen
Diese Anleitung beschreibt, wie Sie einen DNSCrypt-Stempel erstellen und Ihre Installation überprüfen können:
-
Geben Sie die Daten aus Ihrer DNSCrypt-Konfigurationsdatei ein. Der öffentliche Schlüssel des Anbieters ist der Wert des Feldes
public_keyin Ihrer DNSCrypt-Konfigurationsdatei.noteGeben Sie den Host mit Ihrem benutzerdefinierten Port ein.
-
Jetzt haben Sie einen Stempel, der in etwa so aussieht:
sdns://AQcAAAAAAAAADTEyNy4wLjAuMTo0NDMg8R3bzEgX5UOEX93Uy4gYSbZCJvPeOXYlZp2HuRm8T7AbMi5kbnNjcnlwdC1jZXJ0LmV4YW1wbGUub3JnÜberprüfen Sie Ihre Installation, indem Sie folgenden Befehl ausführen:
./dnscrypt lookup-stamp \--domain 'example.com' \--stamp 'sdns://AQcAAAAAAAAADTEyNy4wLjAuMTo0NDMg8R3bzEgX5UOEX93Uy4gYSbZCJvPeOXYlZp2HuRm8T7AbMi5kbnNjcnlwdC1jZXJ0LmV4YW1wbGUub3Jn' \--type 'a'Oder unter Windows:
.\dnscrypt.exe lookup-stamp `--domain 'example.com' `--stamp 'sdns://AQcAAAAAAAAADTEyNy4wLjAuMTo0NDMg8R3bzEgX5UOEX93Uy4gYSbZCJvPeOXYlZp2HuRm8T7AbMi5kbnNjcnlwdC1jZXJ0LmV4YW1wbGUub3Jn' `--type 'a'Wobei
example.comder zu suchende Domainname ist.
Geräte für die Verwendung von DNSCrypt konfigurieren
Alle Plattformen
dnscrypt-proxy(Referenzimplementierung). DNSCrypt-Proxy ist ein Befehlszeilen-Proxy für Linux, BSD, Windows, macOS, Android und weitere Plattformen.
Android
- AdGuard für Android unterstützt DNSCrypt.
iOS
- AdGuard für iOS unterstützt DNSCrypt.
- DNSCloak verwendet intern
dnscrypt-proxyund unterstützt DNSCrypt.
Windows
- AdGuard für Windows unterstützt DNSCrypt.
- Simple DNSCrypt ist ein einfaches Verwaltungstool zum Konfigurieren und Ausführen von
dnscrypt-proxyunter Windows.
Weitere Informationen finden Sie auf der DNSCrypt-Website und in der Liste des DNS-Privacy-Projekts.