DNS šifrování
AdGuard Home podporuje všechny moderní protokoly šifrování DNS ihned po instalaci:
AdGuard Home podporuje jak klientovou, tak serverovou stranu DNSCrypt. Zjistěte, jak nakonfigurovat AdGuard Home jako server DNSCrypt.
Tento průvodce vysvětluje, jak nastavit šifrovaný DNS server s AdGuard Home.
Instalace serveru
Účelem zabezpečení DNS provozu je ochrana před třetími stranami, které by jej mohly analyzovat nebo upravovat, např. před poskytovateli internetových služeb.
To znamená, že budete potřebovat server s veřejnou vyhrazenou IP adresou. Existuje spousta levných poskytovatelů cloudových serverů: DigitalOcean, Vultr, Linode atd. Stačí si vybrat jeden, vytvořit tam cloudový server a nainstalovat AdGuard Home na svůj server.
Registrace domény
Nejprve potřebujete doménu. Pokud jste ještě nikdy žádnou nezaregistrovali, zde najdete jednoduchý návod, který vám s tím pomůže.
Získání certifikátu SSL
Jak DNS-over-HTTPS, tak DNS-over-TLS jsou založeny na šifrování TLS, takže k jejich použití budete potřebovat certifikát SSL.
SSL certifikát lze zakoupit od certifikační autority (CA), společnosti, které prohlížeče a operační systémy důvěřují a která vydává SSL certifikáty pro domény.
Alternativně můžete certifikát získat zdarma od Let’s Encrypt CA, bezplatné certifikační autority vyvinuté skupinou Internet Security Research Group (ISRG).
Tato příručka vysvětluje, jak od nich získat certifikát.
Použití CertBot
CertBot je snadno použitelný klient, který stahuje certifikáty od Let’s Encrypt.
- Přejděte na certbot.eff.org a vyberte možnost Žádný z výše uvedených softwarů a svůj operační systém.
- Postupujte podle instalačních pokynů a zastavte se před sekcí Začínáme.
Získání certifikátu pomocí DNS výzvy
Máte doménové jméno, nejjednodušším způsobem, jak získat certifikát, je použít DNS výzvy.
Spusťte tento příkaz a postupujte podle pokynů CertBot:
sudo certbot certonly --manual --preferred-challenges=dns --preferred-chain="ISRG Root X1"
Nakonec získáte dva soubory:
fullchain.pem: váš SSL certifikát kódovaný v PEMprivkey.pem: váš soukromý klíč zakódovaný v PEM
Obojí bude nutné pro konfiguraci AdGuard Home.
K obnovení stávajícího certifikátu budete muset použít stejný postup.
Použití LEGO
Existuje také velmi příjemná a snadno použitelná alternativa k CertBot s názvem LEGO.
- Instalujte jej pomocí vhodné metody.
- Vyberte si svého poskytovatele DNS ze seznamu a postupujte podle pokynů k získání certifikátu.
Zde je také jednoduchý skript, který můžete použít k automatizaci generování a obnovování certifikátů.
Konfigurace AdGuard Home
Otevřete webové rozhraní AdGuard Home a přejděte do Nastavení.
Vyberte sekci Šifrování.

Zkopírujte/vložte obsah souboru
fullchain.pemdo vstupního pole v sekci Certifikáty nebo zadejte cestu k souboru.Zkopírujte/vložte obsah souboru
privkey.pemdo vstupního pole v sekci Soukromý klíč nebo zadejte cestu k souboru.Zadejte název své domény do sekce Název serveru.
Získejte úspěšné ověřovací zprávy a klikněte na Uložit nastavení.
AdGuard Home automaticky znovu načte certifikáty a/nebo soukromé klíče určené cestou k souboru, když dojde k jejich změně. Znovunačtení může být také spuštěno signálem SIGHUP.
Použití s reverzním proxy
Již máme průvodce konfigurací reverzního proxy serveru pro přístup k webovému rozhraní AdGuard Home.
AdGuard Home je schopen omezit požadavky DNS-over-HTTPS, které pocházejí z proxy serveru, který není zahrnut do seznamu "důvěryhodných". Ve výchozím nastavení je nakonfigurován tak, aby přijímal požadavky z adres IPv4 a IPv6 loopback.
Chcete-li umožnit AdGuard Home zpracovávat požadavky DNS-over-HTTPS z reverzního proxy serveru, nastavte v souboru AdGuardHome.yaml parametr trusted_proxies na IP adresu proxy serveru. Pokud máte několik proxy serverů, můžete místo jednoduché IP adresy použít CIDR.
Reverzní proxy Nginx
Chcete-li nakonfigurovat AdGuard Home tak, aby přijímal požadavky od reverzního proxy serveru Nginx, ujistěte se, že je reverzní proxy server správně nakonfigurován.
Soubor nginx.conf by měl obsahovat příslušné direktivy pro přidání podporovaných hlaviček předávání k požadavku, kterými jsou X-Real-IP nebo X-Forwarded-For. Toho lze dosáhnout pomocí ngx_http_realip_module. Stručně řečeno, modul vezme skutečnou IP adresu klienta a zapíše ji do hlavičky HTTP požadavku. AdGuard Home přijme a interpretuje hodnotu tohoto záhlaví jako skutečnou adresu klienta. Adresa reverzního proxy serveru bude také přijata a zkontrolována podle seznamu "důvěryhodných" proxy serverů.
Další hlavičkou, kterou můžete chtít proxy, je hlavička Host, která je nutná k tomu, aby AdGuard Home rozpoznal požadavky od klientů, kteří mají ClientID ve svých názvech hostitele.
Například pokud konfigurace reverzního proxy serveru obsahuje následující direktivy:
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 získá adresu 192.168.1.2 jako adresu vašeho proxy serveru a porovná ji s trusted_proxies. V případě, že je proxy "důvěryhodný", bude 1.2.3.4 řízeno nastavením přístupu.
Cloudflare CDN
Síť pro doručování obsahu Cloudflare funguje jako reverzní proxy, která připojuje své vlastní hlavičky k předávaným požadavkům, kterými jsou CF-Connecting-IP a True-Client-IP. Tyto jsou také podporovány AdGuard Home, takže adresy reverzních proxy serverů mohou být vloženy přímo do seznamu trusted_proxies. Viz oficiální reference Cloudflare ohledně obnovení původní IP adresy návštěvníka.
Jiné hlavičky
Jiné HTTP hlavičky mohou být v budoucnu podporovány AdGuard Home. Jakékoli požadavky na funkce související s hlavičkami by se však měly nejprve pokusit vyřešit konfigurací samotného reverzního proxy serveru.
Například pro úpravu mechanismu HTTP Strict Transport Security tak, aby zahrnoval experimentální direktivu preload, lze použít následující konfiguraci:
location /dns-query {
# …
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
# …
}
Konfigurace zařízení
Android
- Android 9 a vyšší nativně podporuje
DNS-over-TLS. Chcete-li jej nakonfigurovat, přejděte do Nastavení → Síť a internet → Pokročilé → Soukromý DNS a zadejte tam název své domény. - AdGuard pro Android podporuje
DNS-over-HTTPS,DNS-over-TLS,DNSCryptaDNS-over-QUIC. - Intra přidává podporu
DNS-over-HTTPSdo systému Android.
iOS
- iOS 14 a vyšší podporují
DNS-over-TLSaDNS-over-HTTPSnativně prostřednictvím konfiguračních profilů. Abychom vám to usnadnili, AdGuard Home může tyto konfigurační profily vygenerovat za vás. Stačí přejít do Průvodce nastavením → Soukromý DNS a přejít na iOS. - AdGuard pro iOS podporuje
DNS-over-HTTPS,DNS-over-TLS,DNSCryptaDNS-over-QUIC. - DNSCloak podporuje
DNS-over-HTTPS, ale abyste jej mohli nakonfigurovat pro použití vlastního serveru, budete muset pro něj vygenerovat DNS razítko.
Windows
- Windows 10 Build 19628 a vyšší nativně podporují
DNS-over-HTTPS. - AdGuard pro Windows podporuje
DNS-over-HTTPS,DNS-over-TLS,DNSCryptaDNS-over-QUIC.
macOS
- macOS Big Sur a vyšší podporují
DNS-over-TLSaDNS-over-HTTPSnativně prostřednictvím konfiguračních profilů. Abychom vám to usnadnili, AdGuard Home může tyto konfigurační profily vygenerovat za vás. Stačí přejít do Průvodce nastavením → Soukromý DNS a přejít na iOS.
Další implementace
- Samotný AdGuard Home může být bezpečným klientem DNS na jakékoli platformě.
- dnsproxy podporuje všechny známé bezpečné DNS protokoly.
- dnscrypt-proxy podporuje
DNS-over-HTTPS. - Mozilla Firefox podporuje
DNS-over-HTTPS.
Konfigurace DNSCrypt
AdGuard Home může fungovat jako server DNSCrypt. Tato funkce je však dostupná pouze prostřednictvím konfiguračního souboru a nelze ji nastavit pomocí webového uživatelského rozhraní. V této příručce je vysvětleno, jak to udělat.
Generování konfiguračního souboru
Zde je návod, jak vygenerovat konfigurační soubor DNSCrypt a nasměrovat na něj AdGuard Home:
Ujistěte se, že vaše nastavení TLS je platné a šifrování je povoleno.
Získejte nejnovější verzi nástroje
dnscryptpro váš systém. Rozbalte archiv a přejděte do výsledného adresáře.V systému Unix pomocí shellu kompatibilního s POSIX:
(Zde a níže je jako příklad použit
linux-amd64. Nezapomeňte si stáhnout a používat verzi pro vaši platformu.)Rozbalte soubory:
tar -f ./dnscrypt-linux-amd64-v2.2.3.tar.gz -v -x -zPříklad výstupu:
linux-amd64/
linux-amd64/README.md
linux-amd64/LICENSE
linux-amd64/dnscryptPřejděte do rozbaleného adresáře:
cd ./linux-amd64/Vygenerujte konfigurační soubor:
./dnscrypt generate --provider-name '2.dnscrypt-cert.example.org' --out ./dnscrypt.yamlPříklad výstupu:
```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
```
Ve Windows pomocí PowerShell:
(Zde a níže je jako příklad použit
windows-arm64. Nezapomeňte si stáhnout a používat verzi pro vaši architekturu CPU.)Rozbalte soubory:
Expand-Archive -Path .\dnscrypt-windows-amd64-v2.2.3.zipPřejděte do rozbaleného adresáře:
Set-Location -Path .\dnscrypt-windows-amd64-v2.2.3\windows-amd64\Vygenerujte konfigurační soubor:
.\dnscrypt.exe generate --provider-name '2.dnscrypt-cert.example.org' --out .\dnscrypt.yamlPříklad výstupu:
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
Kde
example.orgje název vašeho hostitele a./dnscrypt.yamlje název výstupního souboru konfigurace.Cestu k binárnímu souboru můžete přidat do
PATH/$env:PATH.Do konfiguračního souboru (obvykle
AdGuardHome.yaml) přidejte následující řádky:'tls':
# N.B. The encryption must be enabled.
'enabled': true
# …
'port_dnscrypt': 5443
'dnscrypt_config_file': './dnscrypt.yaml'Kde
5443je port pro váš server DNSCrypt a./dnscrypt.yamlje název konfiguračního souboru vygenerovaného v kroku 2.DůležitéPřed změnou konfiguračního souboru ukončete AdGuard Home.
tipVe Windows se doporučuje použít úplnou cestu ke konfiguračnímu souboru. Např.
C:\Users\Me\Files\dnscrypt.yaml.
Generování razítka DNSCrypt
Zde je návod, jak vygenerovat razítko DNSCrypt a zkontrolovat instalaci:
Přejděte na https://dnscrypt.info/stamps/.
Zadejte údaje z konfiguračního souboru DNSCrypt. Veřejný klíč poskytovatele je hodnota pole
public_keyve vašem konfiguračním souboru DNSCrypt.poznámkaZadejte hostitele s vaším vlastním portem.
Nyní máte razítko, které vypadá přibližně takto:
sdns://AQcAAAAAAAAADTEyNy4wLjAuMTo0NDMg8R3bzEgX5UOEX93Uy4gYSbZCJvPeOXYlZp2HuRm8T7AbMi5kbnNjcnlwdC1jZXJ0LmV4YW1wbGUub3JnZkontrolujte svou instalaci spuštěním:
./dnscrypt lookup-stamp \
--domain 'example.com' \
--stamp 'sdns://AQcAAAAAAAAADTEyNy4wLjAuMTo0NDMg8R3bzEgX5UOEX93Uy4gYSbZCJvPeOXYlZp2HuRm8T7AbMi5kbnNjcnlwdC1jZXJ0LmV4YW1wbGUub3Jn' \
--type 'a'Nebo ve Windows:
.\dnscrypt.exe lookup-stamp `
--domain 'example.com' `
--stamp 'sdns://AQcAAAAAAAAADTEyNy4wLjAuMTo0NDMg8R3bzEgX5UOEX93Uy4gYSbZCJvPeOXYlZp2HuRm8T7AbMi5kbnNjcnlwdC1jZXJ0LmV4YW1wbGUub3Jn' `
--type 'a'Kde
example.comje název domény, který chcete vyhledat.
Konfigurace zařízení pro použití DNSCrypt
Všechny platformy
dnscrypt-proxy(referenční implementace). DNSCrypt-Proxy je proxy pro příkazový řádek pro Linux, BSD, Windows, macOS, Android a další.
Android
- AdGuard pro Android podporuje DNSCrypt.
iOS
- AdGuard pro iOS podporuje DNSCrypt.
- DNSCloak používá interně
dnscrypt-proxya podporuje DNSCrypt.
Windows
- AdGuard pro Windows podporuje DNSCrypt.
- Simple DNSCrypt je jednoduchý nástroj pro správu, který slouží ke konfiguraci a spouštění
dnscrypt-proxyv systému Windows.
Více informací najdete na webových stránkách DNSCrypt a v seznamu projektů na ochranu soukromí v DNS.