Šifruoto DNS įjungimas VPN serveryje dažnai aprašomas kaip nutekėjimo užkimšimas, ir tas aprašymas nuslepia, kuri jungtis pasikeitė. Šuolis nuo kliento iki resolverio ir šuolis nuo resolverio iki aukštesnio lygio yra atskiros jungtys su atskirais savininkais. Vieną jų užšifravus, kita lieka lygiai tokia pat, kokia buvo.

Užsirašykite, kas gauna užklausą kiekviename etape, prieš liesdami konfigūracijos failą.

Dvi sąrankos nustatymų puslapyje atrodo vienodai

Pirmoje sąrankoje įrenginys pats vykdo DNS over TLS, o tunelis tiesiog perneša tą jungtį į jūsų pasirinktą resolverį. TLS sesija baigiasi resolveryje, tai reiškia, kad resolveris mato užklausą, o VPN išėjimas mato šifruotą tekstą, kurio negali perskaityti. Antroje sąrankoje įrenginys siunčia įprastą DNS per tunelį į VPN hoste esantį peradresuotoją, ir tas peradresuotojas atidaro savo šifruotą jungtį į aukštesnio lygio resolverį. Funkcijų sąraše abi atrodo kaip "šifruotas DNS su VPN", tačiau skaitomą užklausą padeda skirtinguose pastatuose.

Skirtumas yra išmatuojamas, o ne filosofinis. Ieškokite TLS sesijos kliente arba serveryje ir sužinosite, kurią sąranką iš tikrųjų turite.

Susiekite resolverių grandinę, prieš ją keisdami

Suskaičiuokite resolverius kelyje ir įvardykite kiekvieno vaidmenį. Peradresavimo komponentas perduoda užklausą kitam resolveriui, o rekursyvusis resolveris atlieka atsakymo paieškos darbą ir gali tiesiogiai kalbėtis su autoritetingais serveriais. Šie vaidmenys atskirai apibrėžti būtent dėl šios priežasties, o RFC 9076 resolverių apibrėžimai verta perskaityti prieš darant prielaidą, kad yra vienas aukštesnio lygio tikslas. Hostas, vykdantis savo rekursyvųjį resolverį, neturi vieno "aukštesnio lygio", kurį būtų galima užšifruoti, ir tai sugriauna visą planą.

Tada paklauskite, kurį komponentą klientas sukonfigūruotas naudoti. VPN profilio pateiktas DNS adresas nurodo, kur užklausos keliauja, o ne kuris procesas į jas atsako.

Atkreipkite dėmesį ir į gedimo elgseną. Jei šifruotas aukštesnis lygis tampa nepasiekiamas, ar peradresuotojas nepavyksta saugiai, grįžta prie atviro teksto, ar persijungia prie kito resolverio? Šis sprendimas turi atsirasti įraše, nes jis keičia privatumo garantiją tuo metu, kai tunelis yra mažiausiai sveikas.

Patikrinkite, kuris šuolis užšifruotas

Pradėkite nuo kliento ir patvirtinkite, ar jis turi TLS sesiją su 853 prievadu. Užklausa, kuri teisingai išsprendžiama per 53 prievadą, nieko neįrodo apie šifravimą.

resolvectl status | grep -E "DNS Servers|DNS over TLS"
kdig +tls +tls-ca +tls-hostname=dns.example.net @198.51.100.53 example.com A

Tada pereikite prie VPN hosto ir ieškokite išorinės šifruotos jungties, kurią atidarė peradresuotojas. Lizdų lentelė parodo, ar egzistuoja aukštesnio lygio TLS sesija ir kuris procesas ją valdo:

ss -tunp '( dport = :853 )'
dig @127.0.0.1 example.com A +short

Jei klientas rodo TLS sesiją, o serveris ne, esate pirmoje sąrankoje ir serveris negali perskaityti užklausų, kurias perduoda IP lygmenyje. Jei serveris rodo TLS sesiją, o klientas įprastą 53 prievado srautą tunelio viduje, esate antroje sąrankoje: tolesnis šuolis apsaugotas, tačiau peradresuotojas vis tiek skaito kiekvieną vardą, kurio prašo įrenginys. Antrasis rezultatas nėra gedimas, tačiau vadinti jį ištisiniu šifravimu yra neteisinga.

Užrašykite savininką ir gedimo elgseną

Nuosavybė lemia, ką galite pažadėti. Įrenginio savininkas valdo kliento pusės šifruotą jungtį, o VPN administratorius valdo tolesnę jungtį, kurią sukuria jo peradresuotojas. Kas nevaldo nė vieno, gali tik aprašyti kelią.

Prieš ką nors įjungdami patikrinkite vidinius pavadinimus. Siųsti organizacijos pavadinimus viešajam resolveriui nėra lygiavertis sprendimas, o split-horizon zona, kuri egzistuoja tik tinklo viduje, aukštesnio lygio net nebus išspręsta. Po pakeitimo išbandykite vieną vidinį ir vieną viešą pavadinimą ir rezultatą laikykite kartu su konfigūracijos pakeitimu. Jei šifruotas kelias sugriauna vidinių hostų sprendimą, sprendimas yra apribotos apimties resolverio taisyklė, o ne platesnis tunelis.

Pabaikite parašydami po vieną sakinį kiekvienam šuoliui: kuris komponentas gavo užklausą, ar tas šuolis buvo užšifruotas ir kas gali perskaityti vardą. Kai sakinys apie VPN hostą vis dar teigia, kad jis gali skaityti užklausas, dokumentacija turi tai pasakyti, nes diagrama, kuri teigia priešingai, bus patikėta žmogaus, kuris niekada nevykdė komandų.

Susiję straipsniai