VPN DNS prieš naršyklės DoH: ko nuotėkio testas negali pasakyti
Nuotėkio testo adresas rodo tik tai, kuris rezolveris atsakė. Šifruotos užklausos, padalintas DNS ir naršyklės politika lemia, ar privatūs vardai dar apskritai išsprendžiami.
Nuotėkio testo puslapis sako, kad jūsų DNS tvarkingas, naršyklės ženklas sako saugu, o vidinė viki vis tiek nesikrauna. Visi trys gali būti teisingi vienu metu, nes rezolverio adresas nėra tas pats, kas jį pasirinkusi politika ar užklausos nueitas kelias. Tai, ką žmonės vadina DNS nuotėkiu, iš tikrųjų yra vienas klausimas: kuris rezolveris gavo vardą ir ar tas pasirinkimas buvo tyčinis? Tam išsiaiškinti reikia trijų patikrų, ir tik paskutinė apima nustatymo pakeitimą.
Pirmasis mitas: ženklas įvardija jūsų rezolverį
Nuotėkio testas išsprendžia bandomąjį vardą ir praneša adresą, kuris atsakė. Jis nepraneša apie politiką, kuri pasirinko tą rezolverį, o kai užklausa įvyniota į DNS per HTTPS, tarpinė dėžė kelyje vardo apskritai nemato. Dvi labai skirtingos mašinos sukuria tą patį raminantį ženklą: viena, kurioje VPN įstūmė 10.8.0.1 ir naršyklė juo naudojasi, ir kita, kurioje naršyklė nepaisė sistemos sąrašo ir nusiuntė vardą tuneliu savo šifruotam tiekėjui.
Skirtumas svarbus tą akimirką, kai privatus vardas nepavyksta. Pirmoje sąrangoje VPN rezolveris atsako už įmonės zoną; antroje naršyklė niekada jo nepaklausė, todėl trumpas pagrindinio kompiuterio vardas neišsprendžiamas ir gedimas atrodo kaip sugedęs VPN. Ši patikra nėra dar vienas nuotėkio testas, tai paieška vardo, kurį žino tik vienas rezolveris.
Antrasis mitas: naršyklė palieka tunelį
DNS pasirenka adresą, maršrutizavimas neša ryšį, ir tai du atskiri sluoksniai. Užklausa, siunčiama viešam DoH tiekėjui, vis dar yra TCP 443 prievadas į maršrutizuojamą adresą. Jei jūsų maršrutų lentelė siunčia numatytąjį maršrutą į tunelį, ta užklausa taip pat eina per tunelį. Rezolverio prekės ženklas kelio nenustato.
Tai, ką keičia naršyklės DoH, yra vardų gavėjas. Tai tikras privatumo sprendimas ir tikras politikos sprendimas, bet ne maršrutizavimo apėjimas. Jei jūsų reikalavimas yra kad vardai liktų pas VPN operatorių, šifruota užklausa kam nors kitam šio reikalavimo neįvykdo, nors vis dar naudoja tunelį faktiniam ryšiui.
Trečiasis mitas: kiekvienas VPN nugali kiekvieną naršyklę
Saugus DNS naršyklėje turi režimus, o ne jungiklį: išjungta, numatytasis tiekėjas su atsarginiu, pasirinktinis šablonas arba operacinės sistemos ar organizacijos primesta politika. Būtent atsarginis atvejis sukuria protarpinius pranešimus. Kai šifruotas galinis taškas nepasiekiamas, naršyklė gali grįžti prie sistemos rezolverio, todėl tas pats nešiojamasis kompiuteris pirmadienį teisingai išsprendžia privatų vardą, o antradienį ne.
Tuo pačiu metu dauguma VPN klientų nustato sistemos rezolverį, kai ryšys atsiranda, ir atkuria ankstesnį, kai jis nutrūksta. Naršyklė, laikanti pasirinktinį šifruotą rezolverį, to atkūrimo visai nepastebi. Todėl tas pats profilis dviejuose nešiojamuosiuose elgiasi skirtingai ir todėl resolv.conf atrodo teisingai, kol naršyklė vis dar klausia ko nors kito.
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 directlyPaleiskite juos būdami prisijungę, atkreipkite dėmesį, kokius domenus pretenduoja kiekvienas rezolveris, ir palyginkite su tuo, ką naršyklė praneša apie savo režimą. Mozilla DoH dokumentacija yra pagrįstas aprašymas, kaip turėtų veikti numatytasis ir atsarginis naršyklės elgesys.
Sprendimas turi tris įėjimus, o ne vieną
Privatūs vardai, pasitikėjimas operatoriumi ir pasiekiamumas nulemia tinkamą išdėstymą. Vardai, kuriuos žino tik VPN rezolveris, verčia naudoti padalintą DNS: privatus sufiksas eina įstumtam rezolveriui, o visa kita vadovaujasi politika, kurią pasirinkote viešiems vardams. Pasitikėjimas operatoriumi nulemia, ar vieši vardai taip pat turi eiti tam rezolveriui, ar atskirai paslaugai. Pasiekiamumas nulemia, ar pasirinktas šifruotas rezolveris apskritai naudojamas šiame tinkle.
| 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 |
Nė viena iš šių eilučių nėra visuotinė rekomendacija. VPN valdomas rezolveris sutelkia stebėjimus pas tą operatorių; atskira paslauga prideda dar vieną užklaustų vardų gavėją. Nė viena sąranga nieko neįrodo apie saugojimą, nebent perskaitysite politiką.
Užsirašykite sprendimą kiekvienam profiliui, nes šie nustatymai slenka. Profilis, kuris praėjusį mėnesį įstūmė rezolverį, šiandien gali nieko neįstumti, o naršyklė mielai išlaikys seną pasirinktinį galinį tašką, kuris vis dar atsako. Pastaboje turi būti rezolverio adresas, jam priklausantys sufiksai ir naršyklės režimas, o ne paslaugos prekės ženklas.
Išbandykite politiką, kurią manote sukonfigūravę
Išbandykite pagal vardą, o ne pagal ženklą. Išspręskite viešą vardą ir privatų vardą per sistemos rezolverį, tada pakartokite naršyklėje su jos pačios saugaus DNS nustatymu tame režime, kurį ketinate naudoti. Jei privatus vardas nepavyksta tik naršyklėje, radote gavėjo neatitikimą neliesdami nė vieno VPN nustatymo.
Tada vėl prisijunkite ir patikrinkite atkūrimą, nes būtent ten gyvena perdavimo klaidos: atsijunkite, patvirtinkite, kad ankstesnis rezolveris grįžo, prisijunkite iš naujo, patvirtinkite, kad įstumtasis grįžo. Galiausiai išbandykite naršyklę su valdoma politika, jei tokią turite, nes tas režimas gali visiškai atmesti jūsų pakeitimą ir tyliai išlaikyti ankstesnį rezolverį.
Pradėkite nuo vardų erdvės klausimo ir išvengsite didžiosios dalies to. Jei mašina turi pasiekti vidinius vardus, naršyklės šifruotas rezolveris yra sprendimas tik dėl viešosios pusės, o privačioji pusė lieka su tuo, ką VPN įstūmė.