DNS-kryptering
AdGuard Home understøtter alle moderne DNS-krypteringsprotokoller out-of-the-box:
AdGuard Home understøtter DNSCrypt på håde klient- og på serversiden. Læs hvordan AdGuard Home opsættes som en DNSCrypt-server.
Denne guide forklarer, hvordan en krypteret DNS-server opsættes med AdGuard Home.
Serverinstallation
Formålet med at sikre DNS-trafikken er at sikre den mod tredjeparter, som kan analysere eller ændre den, f.eks. fra ISP.
Det betyder, at en server med en offentlig dedikeret IP-adresse er nødvendig. Der er masser af udbydere af billige cloud-servere: DigitalOcean, Vultr, Linode mv. Vælg blot en, opret en cloudserver dér, og installér AdGuard Home på din server.
Registrér et domænenavn
Først og fremmest behøves et domænenavn. Har man aldrig prøvet at registreret ét, er her en enkel vejledning til at gøre det.
Få et SSL-certifikat
Både DNS-over-HTTPS og DNS-over-TLS er baseret på TLS Kryptering, så et SSL-certifikat kræves for at benytte dem.
Et SSL-certifikat kan købes via en Certificate Authority (CA), et firma, som webbrowsere og operativsystemer har tillid til ift. at udstede SSL-certifikater til domæner.
Alternativt kan et gratis certifikat fås via Let’s Encrypt CA, en gratis certifikatmyndighed udviklet af Internet Security Research Group (ISRG).
Denne vejledning forklarer, hvordan et certifikat fås fra denne CA.
Vha. CertBot
Certbot er en brugervenlig klient, der henter et certifikat fra Let’s Encrypt.
- Gå til certbot.eff.org og vælg Ingen af ovenstående-software og aktuelt operativsystem.
- Følg installationsvejledningen og stop, når afsnittet Kom i gang nås.
Hent et certifikat via DNS-udfordring
Et domænenavn have, så brug af DNS-udfordring vil være den nemmeste måde at få et certifikat på.
Eksekvér denne kommando, og følg CertBot'ens vejledning:
sudo certbot certonly --manual --preferred-challenges=dns --preferred-chain="ISRG Root X1"
Når færdig, haves to filer:
fullchain.pem: PEM-kodet SSL-certifikatprivkey.pem: PEM-kodet private nøgle
Begge vil være nødvendige for at opsætte AdGuard Home.
Nøjagtig den samme procedure skal benyttes ved fornyelsen af det eksisterende certifikat.
Via Lego
Der er også et rigtig godt og brugervenligt alternativ til CertBot, der hedder LEGO.
- Installér det vha. en passende metode.
- Vælg DNS-udbyder fra [listen][lego-udbyder] og følg vejledningen for at få et certifikat.
Her er også et simpelt script til automatisering af certifikatgenerering og -fornyelse.
Opseætning af AdGuard Hjem
Åbn AdGuard Home-webgrænsefladen og gå til indstillinger.
Vælg afsnittet Kryptering.

Kopiér/indsæt indholdet af
fullchain.pem-filen til inputfeltet under Certifikater eller angiv stien til filen.Kopiér/indsæt indholdet af
privkey.pem-filen til inputfeltet under Privat nøgle eller angiv stien til filen.Angiv aktuelt domænenavn i Servernavn.
Efter besked om gennemført bekræftelse, klik på Gem indstillinger.
AdGuard Home genindlæser automatisk certifikater og/eller private nøgler angivet ved filsti, når disse ændres. En genindlæsning kan også udløses af et SIGHUP-signal.
Brug med omvendt proxy
Vi har allerede en vejledning til opsætning af en omvendt proxyserver for adgang til AdGuard Home Web UI.
AdGuard Home er i stand til at begrænse DNS-over-HTTPS-forespørgsler fra proxyserveren ikke er inkluderet på "betroet"-listen. Som standard er den opsat til at acceptér forespørgsler fra IPv4- og IPv6-løkkeadresser (loopback).
For at aktivere AdGuard Home til at håndtere DNS-over-HTTPS-forespørgsler fra en omvendt proxyserver skal indstillingen trusted_proxies i AdGuardHome.yaml sættes til proxyserverens IP-adresse. Haves flere proxyservere, kan der bruges en CIDR i stedet for en simpel IP-adresse.
Nginx omvendt proxy
For at opsætte AdGuard Home til at acceptere forespørgsler fra Nginx omvendt proxyserver, så sørg for, at den omvendte proxyserver selv er opsat korrekt.
Filen nginx.conf skal indeholde de passende direktiver til at føje de understøttede videresendte headers til forespørgslen, som er X-Real-IP eller X-Forwarded-For. Dette kan opnås med ngx_http_realip_module. Kort sagt tager modulet klientens reelle IP-adresse og skriver den til HTTP-forespørgslens header. AdGuard Home modtager og fortolker værdien af denne header som klientens reelle adresse. Adressen på den omvendte proxyserver modtages og tjekkes også mod listen over "betroede" proxyer.
En anden header, som kan overvejes proxy'et, er Host-headeren, der er obligatorisk, for at AdGuard Home kan genkende forespørgsler fra klienter med et ClientID i deres værtsnavne.
Eksempelvis, hvis opsætningen af den omvendte proxyserver indeholder flg. direktiver:
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 vil få 192.168.1.2 som adressen på proxyserveren og tjekke den mod trusted_proxies. 1.2.3.4 vil være styret af adgangsindstillinger, hvis proxyen er "betroet".
Cloudflare CDN
Cloudflares indholdsleveringsnetværk fungerer som en omvendt proxy og føjer sine egne headers til de videresendte forespørgsler, som er CF-Connecting-IP og True-Client-IP. Disse understøttes også af AdGuard Home, så de omvendte proxyserveres adresser kan indsættes direkte i trusted_proxies-listen. Se Cloudflares officielle reference om gendannelse af den besøgendes oprindelige IP.
Andre headers
Andre HTTP-headers kan fremadrettet blive understøttet af AdGuard Home. Alle herader-relaterede funktionsforespørgsler bør dog først forsøges opløst via opsætning af selve den omvendte proxy.
For eksempel, for at ændre mekanismen HTTP Strict Transport Security til at omfatte det eksperimentelle preload-direktiv, kan noget i retning af flg. opsætningssekvens benyttes:
location /dns-query {
# …
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
# …
}
Opsætning af enheder
Android
- Android 9 og senere har medfødt understøttelse af
DNS-over-TLS. For at opsætte den, gå til Indstillinger → Netværk & Internet → Avanceret → Privat DNS og angiv relevant domænenavn. - AdGuard til Android understøtter
DNS-over-HTTPS,DNS-over-TLS,DNSCryptogDNS-over-QUIC. - Intra føjer
DNS-over-HTTPSunderstøttelse til Android.
iOS
- iOS 14 og senere har medfødt understttelse af
DNS-over-TLSogDNS-over-HTTPSvia opse6tningsprofiler. For at gøre tingene nemmere kan AdGuard Home generere disse opsætningsprofiler for brugeren. Gå blot til Opsætningsvejledning → DNS-fortrolighed og rul til iOS. - AdGuard til iOS understøtter
DNS-over-HTTPS,DNS-over-TLS,DNSCryptogDNS-over-QUIC. - DNSCloak understøtter
DNS-over-HTTPS, men for at opsætte den til at bruge egen server, generér et DNS Stamp til den.
Windows
- Windows 10 Build 19628 og senere har medfødt understøttelse af
DNS-over-HTTPS. - AdGuard til Windows understøtter
DNS-over-HTTPS,DNS-over-TLS,DNSCryptogDNS-over-QUIC.
macOS
- macOS Big Sur og senere har medfødt understøttelse af
DNS-over-TLSogDNS-over-HTTPSvia opsætningsprofiler. For at gøre tingene nemmere kan AdGuard Home generere disse opsætningsprofiler for brugeren. Gå blot til Opsætningsvejledning → DNS-fortrolighed og rul til iOS.
Andre implementeringer
- AdGuard Home selv kan være en sikker DNS-klient på alle platforme.
- dnsproxy understøtter alle kendte sikre DNS-protokoller.
- dnscrypt-proxy understøtter
DNS-over-HTTPS. - Mozilla Firefox understøtter
DNS-over-HTTPS.
Opsætning af DNSCrypt
AdGuard Home vil kunne fungere som en DNSCrypt-server. Denne funktion er dog kun tilgængelig via en opsætningsfil og kan ikke opsættes vha. Web UI. Denne vejledning forklarer, hvordan dette gøres.
Generering af en opsætningsfil
Sådan genererer man en DNSCrypt-opsætningsfil og peger AdGuard Home på den:
Sørg for, at de aktuelle TLS-indstillinger er gyldige, og at kryptering er aktiveret.
Download den seneste version af værktøjet
dnscrypttil systemet. Udpak arkivet og gå til den resulterende mappe.På Unix, ved brug af en POSIX-kompatibel shell:
(Her og nedenfor bruges
linux-amd64som et eksempel. Sørg for at download og bruge versioneen til den aktuelle platform.)Udpak filerne:
tar -f ./dnscrypt-linux-amd64-v2.2.3.tar.gz -v -x -zOutputeksempel:
linux-amd64/
linux-amd64/README.md
linux-amd64/LICENSE
linux-amd64/dnscryptGå til den udpakkede mappe:
cd ./linux-amd64/Generér opsætningsfilen:
./dnscrypt generate --provider-name '2.dnscrypt-cert.example.org' --out ./dnscrypt.yamlOutputeksempel:
```none
2022/01/02 12:34:56 [info] Generating configuration for 2.dnscrypt-cert.example.org
2022/02/02 12:34:56 [info] Configuration has been written to ./dnscrypt.yaml
2022/02/02 12:34:56 [info] Go to https://dnscrypt.info/stamps to generate an SDNS stamp
2022/02/02 12:34:56 [info] You can run a DNSCrypt server using the following command:
2022/02/02 12:34:56 [info] dnscrypt server -c ./dnscrypt.yaml -f 8.8.8.8
```
På Windows vha. PowerShell:
(Her og nedenfor bruges
windows-amd64som et eksempel. Sørg for at download og bruge versionen til den aktuelle CPU-arkitektur.)Udpak filerne:
Expand-Archive -Path .\dnscrypt-windows-amd64-v2.2.3.zipGå til den udpakkede mappe:
Set-Location -Path .\dnscrypt-windows-amd64-v2.2.3\windows-amd64\Generér opsætningsfilen:
.\dnscrypt.exe generate --provider-name '2.dnscrypt-cert.example.org' --out .\dnscrypt.yamlOutputeksempel:
2022/01/02 12:34:56 [info] Generating configuration for 2.dnscrypt-cert.example.org
2022/02/02 12:34:56 [info] Configuration has been written to .\dnscrypt.yaml
2022/02/02 12:34:56 [info] Go to https://dnscrypt.info/stamps to generate an SDNS stamp
2022/02/02 12:34:56 [info] You can run a DNSCrypt server using the following command:
2022/02/02 12:34:56 [info] dnscrypt server -c .\dnscrypt.yaml -f 8.8.8.8
Hvor
example.orger navnet på værten, og./dnscrypt.yamler navnet på opsætningsoutputfilen.Stien til den binære fil kan føjes til den aktuelle
PATH/$env:PATH.I opsætningsfilen (typisk
AdGuardHome.yaml) skal flg. linjer tilføjes:'tls':
# N.B. Kryptering skal være aktiveret.
'enabled': true
# …
'port_dnscrypt': 5443
'dnscrypt_config_file': './dnscrypt.yaml'Hvor
5443er porten til DNSCrypt-serveren, og./dnscrypt.yamler navnet på den opsætningsfil, der blev genereret i trin 2.VigtigtStop AdGuard Home, før opsætningsfilen ændres.
tipPå Windows anbefales det at bruge den fulde sti til opsætningsfilen. For eksempel,
C:\\Brugere\\Me\\Filer\\dnscrypt.yaml.
Generering af et DNSCrypt-stempel
Sdan genererer man et DNSCrypt-stempel og tjekker installationen:
Gå til https://dnscrypt.info/stamps/.
Indtast dataene fra den relevante DNSCrypt-opsætningsfil. Offentlige udbydernøgle er værdien af feltet
public_keyi DNSCrypt-opsætningsfilen.bemærkAngiv værten med den tilpassede port.
Nu er der oprettet et stempel, der ser nogenlunde således ud:
sdns://AQcAAAAAAAAADTEyNy4wLjAuMTo0NDMg8R3bzEgX5UOEX93Uy4gYSbZCJvPeOXYlZp2HuRm8T7AbMi5kbnNjcnlwdC1jZXJ0LmV4YW1wbGUub3JnTjek installationen ved at eksekvere:
./dnscrypt lookup-stamp \
--domain 'example.com' \
--stamp 'sdns://AQcAAAAAAAAADTEyNy4wLjAuMTo0NDMg8R3bzEgX5UOEX93Uy4gYSbZCJvPeOXYlZp2HuRm8T7AbMi5kbnNjcnlwdC1jZXJ0LmV4YW1wbGUub3Jn' \
--type 'a'Eller i Windows:
.\dnscrypt.exe lookup-stamp `
--domain 'example.com' `
--stamp 'sdns://AQcAAAAAAAAADTEyNy4wLjAuMTo0NDMg8R3bzEgX5UOEX93Uy4gYSbZCJvPeOXYlZp2HuRm8T7AbMi5kbnNjcnlwdC1jZXJ0LmV4YW1wbGUub3Jn' `
--type 'a'Hvor
example.comer domænenavnet, der skal slås op.
Opsætning af enheder til brug med DNSCrypt
Alle platforme
dnscrypt-proxy(referenceimplementering). DNSCrypt-Proxy er en kommandolinje-proxy til Linux, BSD, Windows, macOS, Android mv.
Android
- AdGuard til Android understøtter DNSCrypt.
iOS
- AdGuard til iOS understøtter DNSCrypt.
- DNSCloak anvender
dnscrypt-proxyinternt og understøtter DNSCrypt.
Windows
- AdGuard til Windows understøtter DNSCrypt.
- Simple DNSCrypt er et simpelt håndteringsværktøj til opsærning og kørsel af
dnscrypt-proxyi Windows.
Se DNSCrypt-webstedet og DNS-fortrolighedsprojektets liste for mere info.