Да ли ваш VPN шифрује DNS или само следећи хоп?
Шифрирани DNS на VPN серверу штити други хоп од DoT-а на страни клијента. Пратите ко прима сваки упит пре него што било шта укључите.
Укључивање шифрираног DNS-а на VPN серверу често се описује као затварање цурења, а тај опис крије која се веза променила. Хоп од клијента до резолвера и хоп од резолвера до горњег тока су одвојене везе са одвојеним власницима. Шифрирање једне оставља другу тачно онаквом каква је била.
Запишите ко прима упит у свакој фази пре него што дотакнете конфигурациону датотеку.
Два распореда изгледају исто на страници подешавања
У првом распореду уређај сам покреће DNS over TLS, а тунел само преноси ту везу до резолвера који сте изабрали. TLS сесија се завршава на резолверу, што значи да резолвер види упит, а излаз VPN-а види шифрирани текст који не може да прочита. У другом распореду уређај шаље обичан DNS кроз тунел до прослеђивача на VPN хосту, и тај прослеђивач отвара сопствену шифрирану везу са горњим резолвером. На листи функција оба изгледају као "шифрирани DNS са VPN-ом", али читљив упит смештају у различите зграде.
Разлика је мерљива, а не филозофска. Потражите TLS сесију на клијенту или на серверу и сазнаћете који распоред заиста имате.
Пре него што га промените, мапирајте ланац резолвера
Избројте резолвере на путу и именујте улогу сваког од њих. Компонента за прослеђивање предаје захтев другом резолверу, док рекурзивни резолвер обавља посао проналажења одговора и може директно да разговара са ауторитативним серверима. Те улоге су одвојено дефинисане управо због овог разлога, а дефиниције резолвера из RFC 9076 вреди прочитати пре него што претпоставите да постоји само једно горње одредиште. Хост који покреће сопствени рекурзивни резолвер нема један "горњи ток" за шифрирање, што чини цео план неважећим.
Затим питајте коју је компоненту клијент конфигурисан да користи. DNS адреса коју шаље VPN профил говори где упити иду, а не који процес на њих одговара.
Обратите пажњу и на понашање при неуспеху. Ако шифрирани горњи ток постане недоступан, да ли прослеђивач пада затворен, враћа се на отворени текст или прелази на други резолвер? Та одлука припада запису, јер мења гаранцију приватности у тренутку када је тунел најмање здрав.
Проверите који је хоп шифриран
Почните на клијенту и потврдите да ли има TLS сесију до порта 853. Упит који се исправно решава кроз порт 53 не доказује ништа о шифрирању.
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
Затим пређите на VPN хост и потражите одлазну шифрирану везу коју је отворио прослеђивач. Табела сокета говори да ли горња TLS сесија постоји и који је процес поседује:
ss -tunp '( dport = :853 )'
dig @127.0.0.1 example.com A +short
Ако клијент показује TLS сесију, а сервер ниједну, у првом сте распореду и сервер не може да чита упите које прослеђује на IP слоју. Ако сервер показује TLS сесију, а клијент обичан саобраћај порта 53 унутар тунела, у другом сте распореду: следећи хоп је заштићен, а прослеђивач и даље чита свако име које уређај затражи. Тај други резултат није кварење, али називати га шифрирањем од краја до краја је погрешно.
Запишите власника и понашање при неуспеху
Власништво одређује шта вам је дозвољено да обећате. Власник уређаја контролише шифрирану везу на страни клијента, док VPN администратор контролише следећу везу коју ствара његов прослеђивач. Ко не управља ниједном од њих, може само да опише пут.
Пре него што било шта укључите, проверите унутрашња имена. Слање имена организације јавном резолверу није еквивалентан дизајн, а зона split-horizon која постоји само унутар мреже уопште се неће решити горње. Након промене тестирајте једно унутрашње и једно јавно име и резултат чувајте уз измену конфигурације. Ако шифрирани пут поквари решавање за унутрашње хостове, поправка је правило резолвера ограниченог обима, а не шири тунел.
Завршите тако што ћете написати по једну реченицу за сваки хоп: која је компонента примила упит, да ли је тај хоп био шифриран и ко може да прочита име. Када реченица о VPN хосту и даље каже да може да чита упите, документација би то требало да каже, јер ће дијаграму који тврди супротно веровати неко ко никада није покренуо команде.