DNS přes VPN versus DoH v prohlížeči: co vám test úniku neřekne
Adresa z testu úniku ukazuje jen to, který resolver odpověděl. Šifrované dotazy, rozdělený DNS a politika prohlížeče rozhodují, zda se soukromá jména vůbec přeloží.
Stránka testu úniku říká, že vaše DNS je v pořádku, odznak prohlížeče říká, že je to bezpečné, a interní wiki se přesto nenačte. Všechny tři mohou platit současně, protože adresa resolveru není totéž co politika, která ho vybrala, nebo cesta, kterou dotaz prošel. Tomu, co lidé nazývají únikem DNS, je ve skutečnosti jedna otázka: který resolver jméno dostal a bylo to rozhodnutí úmyslné? Vyřešit to vyžaduje tři kontroly a jen ta poslední zahrnuje změnu nastavení.
Mýtus první: odznak pojmenovává váš resolver
Test úniku přeloží zkušební jméno a nahlásí adresu, která odpověděla. Nenahlásí politiku, která tento resolver vybrala, a když je dotaz zabalen do DNS přes HTTPS, prostřední zařízení na cestě jméno vůbec nevidí. Dva velmi odlišné stroje dávají stejný uklidňující odznak: jeden, kde VPN protlačila 10.8.0.1 a prohlížeč ji používá, a jeden, kde prohlížeč ignoroval systémový seznam a poslal jméno tunelem svému vlastnímu šifrovanému poskytovateli.
Rozdíl je důležitý ve chvíli, kdy soukromé jméno selže. V prvním uspořádání resolver VPN odpovídá za firemní zónu; ve druhém se ho prohlížeč nikdy nezeptal, takže krátké jméno hostitele se nepřeloží a porucha vypadá jako rozbitá VPN. Kontrola není další test úniku, je to dotaz na jméno, které zná jen jeden resolver.
Mýtus druhý: prohlížeč opouští tunel
DNS vybírá adresu, směrování nese spojení a to jsou dvě oddělené vrstvy. Dotaz odeslaný veřejnému poskytovateli DoH je stále TCP port 443 na směrovatelnou adresu. Pokud vaše směrovací tabulka posílá výchozí trasu do tunelu, jde ten dotaz také tunelem. Značka resolveru cestu nerozhoduje.
Co DoH v prohlížeči mění, je příjemce jmen. Je to skutečné rozhodnutí o soukromí a skutečné rozhodnutí o politice, ale není to obcházení směrování. Pokud je vaším požadavkem, aby jména zůstala u operátora VPN, šifrovaný dotaz na někoho jiného tento požadavek nesplňuje, i když pro skutečné spojení stále používá tunel.
Mýtus třetí: každá VPN přebije každý prohlížeč
Zabezpečené DNS v prohlížeči má režimy, ne přepínač: vypnuto, výchozí poskytovatel s náhradou, vlastní šablona nebo politika vynucená operačním systémem či organizací. Právě náhradní případ produkuje občasné zprávy. Když je šifrovaný koncový bod nedostupný, prohlížeč se může vrátit k systémovému resolveru, takže stejný notebook v pondělí přeloží soukromé jméno správně a v úterý ne.
Zároveň většina klientů VPN nastaví systémový resolver, když se spojení naváže, a obnoví předchozí, když spadne. Prohlížeč, který drží vlastní šifrovaný resolver, toto obnovení vůbec nezaznamená. Proto se stejný profil chová na dvou noteboocích jinak a proto resolv.conf vypadá správně, zatímco prohlížeč se stále ptá někoho jiného.
resolvectl status # per-link DNS servers and split-DNS domains
scutil --dns | head -30 # macOS resolver order for each domain
nslookup intranet.corp 10.8.0.1 # ask the VPN resolver directlySpusťte ty příkazy, dokud jste připojeni, poznamenejte si, které domény si každý resolver nárokuje, a porovnejte to s tím, co prohlížeč hlásí o svém režimu. Dokumentace Mozilly k DoH je rozumný popis toho, jak má výchozí a náhradní chování prohlížeče fungovat.
Rozhodnutí má tři vstupy, ne jeden
Soukromá jména, důvěra v operátora a dosažitelnost rozhodují o správném uspořádání. Jména, která zná jen resolver VPN, vynucují rozdělený DNS: soukromá přípona jde protlačenému resolveru, všechno ostatní se řídí politikou, kterou jste zvolili pro veřejná jména. Důvěra v operátora rozhoduje, zda mají veřejná jména také jít k tomuto resolveru, nebo k samostatné službě. Dosažitelnost rozhoduje, zda je vámi zvolený šifrovaný resolver v této síti vůbec použitelný.
| Condition | What it forces |
|---|---|
| Internal names must resolve | Split DNS: private suffixes to the VPN resolver, the rest to your chosen default |
| Queries must stay with one operator | Pin both the system resolver and the browser mode, and disable fallback |
| Resolver only reachable through the tunnel | Keep the pushed resolver; do not point DoH at an endpoint your routes exclude |
Žádný z těchto řádků není univerzální doporučení. Resolver provozovaný VPN soustřeďuje pozorování u tohoto operátora; samostatná služba přidává dalšího příjemce dotazovaných jmen. Ani jedno uspořádání nic nedokazuje o uchovávání, pokud si nepřečtete politiku.
Zapište rozhodnutí pro každý profil, protože tato nastavení se posouvají. Profil, který minulý měsíc protlačil resolver, dnes nemusí protlačit nic, a prohlížeč si ochotně ponechá starý vlastní koncový bod, který stále odpovídá. Do poznámky patří adresa resolveru, přípony, které vlastní, a režim prohlížeče, ne značka služby.
Otestujte politiku, o které si myslíte, že jste ji nastavili
Testujte podle jména, ne podle odznaku. Přeložte veřejné jméno a soukromé jméno přes systémový resolver, pak to zopakujte v prohlížeči s jeho vlastním nastavením zabezpečeného DNS v režimu, který hodláte použít. Pokud soukromé jméno selže jen v prohlížeči, našli jste nesoulad příjemce, aniž byste se dotkli jediného nastavení VPN.
Potom se znovu připojte a zkontrolujte obnovení, protože právě tam žijí chyby při předání: odpojte se, potvrďte, že se předchozí resolver vrátil, připojte se znovu, potvrďte, že se protlačený vrátil. Nakonec otestujte prohlížeč se spravovanou politikou, pokud nějaký máte, protože tento režim může vaši změnu úplně odmítnout a tiše si ponechat předchozí resolver.
Začněte otázkou jmenného prostoru a většině z toho se vyhnete. Pokud se stroj musí dostat k interním jménům, je šifrovaný resolver prohlížeče rozhodnutím jen o veřejné polovině a soukromá polovina zůstává u toho, co VPN protlačila.