Кога kill switch-от го спушта тунелот, го носи со себе и DNS патот, а resolver-от што останува ретко е тој што го очекувате. Два дизајна тој момент го третираат сосема различно: блокирање на секој DNS пакет што не е во тунелот, илиоставање на еден resolver како исклучок. И двете се одбраниви. Од јазиче во прелистувач, симптомите изгледаат речиси исто, затоа првата задача е да утврдите кој дизајн навистина сте го распоредиле.

Ја држам таа разлика пред очи, бидејќи исправката е спротивна во секој случај. Едниот дизајн бара поширок исклучок, другиот потесен. Гаѓањето ве чини или приватност, или едно попладне.

Два DNS дизајна за истиот прекин

Дизајнот A го третира resolver-от како уште една услуга зад тунелот. Правилата на огнениот ѕид дозволуваат UDP и TCP 53 само на интерфејсот на тунелот, а адресата што му се дава на клиентот е resolver во тунелот. Кога тунелот паѓа, пребарувањата запираат, и тоа е посакуваниот резултат, а не дефект.

Дизајнот B држи resolver достапен во локалната мрежа, обично рутерот на 192.168.1.1 или системската stub адреса на 127.0.0.53, со образложение дека разрешувањето имиња не треба да умре со тунелот. Тоа е погодно во домашна LAN каде рутерот разрешува за целата куќа. На Wi-Fi во хотел или аеродром истиот исклучок покажува на туѓ сервер, и секое име што ќе го напишете се открива, иако вашиот веб-сообраќај останува блокиран.

Границата е чиј е resolver-от. Ако му верувате на локалниот, исклучокот е мала и чесна дупка. Ако не, дизајнот само преку тунел е единствениот што издржува, а цената е што паднатиот тунел ги носи сите имиња.

Зошто сопственото пребарување на VPN клиентот сè уште работи

Клиентот мора да го разреши името на домаќинот на портата пред да постои тунел, затоа строгата блокада не смее да го покрие патот за подигање на клиентот. Повеќето клиенти или ја кешираат адресата на крајната точка или доставуваат документиран исклучок за тој еден домаќин. Ако вашето множество правила го блокира тоа пребарување, тунелот никогаш не се враќа и дневниците покажуваат клиент што не може да стигне до сопствениот сервер, што е дефект во политиката, а не во DNS.

Поделениот DNS е другото место каде ова се појавува. Клиентот турка внатрешна зона кон приватен resolver и сè друго го остава на системскиот resolver. По пад, јавните имиња може сè уште да се разрешуваат, додека внатрешните истекуваат, бидејќи приватната зона нема повеќе маршрута. За корисникот тоа е "VPN-от го расипа интернетот"; за дневникот на resolver-от тоа е барање што никогаш не пристигнало.

Под systemd-resolved поделбата ја гледате директно.resolvectl statusги наведува DNS серверите по врска и домените за рутирање, и откако тунелот ќе падне, внатрешниот домен продолжува да покажува на сервер на врска што повеќе не постои. Stub-от на 127.0.0.53 сè уште го прифаќа барањето, потоа чека нагорен тек што нема да одговори, и затоа дефектот трае секунди наместо веднаш да се врати.

Шифрираниот DNS не заобиколува филтер на пакети

DNS over HTTPS и DNS over TLS патуваат на 443 и 853, затоа правило што го блокира портот 53 не кажало ништо за нив. Блокирањето на "DNS" по порт е политика за порт, не за разрешување имиња. Ако вашиот kill switch го блокира целиот сообраќај надвор од тунелот, DoH е случајно покриен. Ако одвоивте дозвола за captive portal или јавен resolver, не е.

Контролите на страната на клиентот се поефтиниот лост. Firefox се откажува од својот DoH resolver кога канаринското имеuse-application-dns.netне се разреши, затоа управуваните мрежи го објавуваат тој домен како NXDOMAIN; корпоративната политика може и да го заклучи исклучен. Android Private DNS и безбедниот DNS на Chrome имаат свои прекинувачи и свои стандардни вредности. Нивното исклучување е посигурно од бркање на адреси на resolver-и, бидејќи списокот на адреси се менува, а вашето множество правила не.

Има верзија од ова што воопшто не е за истекувања. Апликација со закачен resolver сè уште бара мрежен пат за да стигне до него. Шифрирањето менува кој може да го прочита барањето, а не дали пакетот може да ја напушти машината, затоа блокада за целото уред го победува поставувањето без да го допре.

Поврзете го симптомот со слојот

Повеќето пријави пристигнуваат како една реченица, и таа реченица обично веќе го именува слојот. Табелата подолу е тоа што го прегледувам пред да допрам правило; целта е да одлучам дали барањето било блокирано, погрешно насочено или воопшто не било пратено.

SymptomLikely layerFirst check
Every name fails at once, instantlyResolver answering with a refusalQuery the resolver by address, not by name
Lookups hang for seconds, then time outPackets dropped with no responseWatch port 53 on the physical link
Public names resolve, internal ones do notSplit-DNS routing domainPer-link DNS servers on the tunnel
Names resolve, the page still failsNot DNS: routing or MTUConnect to the IP directly
Only one application failsPinned resolver or cached answerCheck that app's DNS setting

Првите два реда се тие што луѓето погрешно ги дијагностицираат. Тивкото паѓање и одбивањето во прелистувач изгледаат исто како "DNS-от е расипан", но само едното од нив значи дека вашиот kill switch ја работи својата работа. Одбивањето значи дека нешто одговорило, затоа блокадата не е таму каде што мислите.

Вратете ја политиката на resolver-от, потоа докажете ја

Поправете го дизајнот, не симптомот. За разрешување само преку тунел, дозволете 53 на интерфејсот на тунелот, турнете го внатрешниот resolver со конфигурацијата на тунелот и оставете ја физичката врска без никаква DNS дозвола. Кај wg-quick, редотDNS =е тој што го запишува resolver-от во конфигурацијата на интерфејсот, затоа тунел што го испушта го остава стариот resolver на место и секое барање на погрешниот пат.прирачникот на wg-quickго документира тоа однесување по платформа.

Потоа проверете по овој редослед. На Linuxresolvectl statusја покажува активната врска,dig +short example.comтестира јавно име,dig @10.8.0.1 internal.example.comтестира приватното, аsudo tcpdump -ni any port 53покажува кој интерфејс го користат пакетите додека ги извршувате двете. На WindowsGet-DnsClientServerAddress -AddressFamily IPv4иResolve-DnsName example.comги даваат истите два факти: кој е конфигуриран и кој одговара.

Завршете со негативниот тест. Исклучете го тунелот, потврдете дека свежо јавно име не успева, потврдете дека приватното име не успева, ипотврдете дека ниту еден пакет на портот 53 не го напуштил физичкиот адаптер. Блокада што издржува само за кеширани одговори не издржува воопшто.

Контролна листа пред да го затворите тикетот:

  • Resolver-от користен за време на прекинот е тој што го предвидува политиката.
  • Сопственото пребарување на крајната точка од клиентот сè уште е дозволено, преку кеш или исклучок.
  • DoH и DoT или се покриени од блокадата или се исклучени со политика.
  • Приватните зони откажуваат затворено, не отворено, штом тунелот исчезне.

Поврзани статии