VPN-ийн kill switch порт 53-ыг хаахад DNS шийдэгдэхгүй
Kill switch DNS-ийг санаатайгаар хааж болно. Зөвхөн туннелийн доторх шийдлийг орон нутгийн resolver-ийн үл хамаарахтай харьцуулж, аль түвшин үнэхээр бүтэлгүйтсэнийг тодорхойл.
Kill switch туннелийг унагахад DNS-ийн замыг хамт авч явдаг, үлдсэн resolver нь таны хүлээж байсан нь байх нь ховор. Хоёр загвар энэ мөчийг огт өөрөөр шийддэг: туннелийн дотор байхгүй бүх DNS пакетыг хаах, эсвэлнэг resolver-ийг үл хамаарах байдлаар үлдээх. Хоёулаа хамгаалагдана. Хөтчийн табаас шинж тэмдгүүд бараг ижил харагддаг тул эхний ажил нь та яг аль загварыг нэвтрүүлснээ тодруулах юм.
Энэ ялгааг нүдэн дээрээ байлгадаг, учир нь засвар хоёр тохиолдолд эсрэг байдаг. Нэг загварт илүү өргөн үл хамаарах хэрэгтэй, нөгөөд нь илүү нарийн. Таамаглах нь танд нууцлал эсвэл хагас өдрийг үнэтэй болгоно.
Нэг эвдрэлд зориулсан хоёр DNS загвар
Загвар A resolver-ийг туннелийн ард байрлах энгийн үйлчилгээ гэж үздэг. Галт ханын дүрэм UDP болон TCP 53-ыг зөвхөн туннелийн интерфейс дээр зөвшөөрдөг, клиентэд өгөх хаяг нь туннелийн доторх resolver юм. Туннель унахад хайлтууд зогсдог, энэ нь алдаа биш, зориудын үр дүн.
Загвар B resolver-ийг орон нутгийн сүлжээнд хүртээмжтэй байлгадаг, ихэвчлэн 192.168.1.1 дээрх маршрутлагч эсвэл 127.0.0.53 дээрх үйлдлийн системийн stub, нэрийн шийдэл туннельтай хамт үхэх ёсгүй гэсэн үндэслэлээр. Гэрийн LAN-д энэ нь тохиромжтой, тэнд маршрутлагч бүх гэрийн нэрийг шийддэг. Зочид буудал эсвэл нисэх онгоцны буудлын Wi-Fi дээр мөн адил үл хамаарах нь бусдын сервер рүү заадаг бөгөөд таны бичсэн нэр бүр ил болдог, вэб урсгал хаагдсан хэвээр байсан ч.
Хил хязгаар нь resolver хэнийх вэ гэдэг. Орон нутгийнхад итгэж байвал үл хамаарах нь жижиг, шударга нүх. Итгэхгүй бол зөвхөн туннелийн загвар л тэсвэрлэдэг, үнэ нь бол унасан туннель бүх нэрийг хамт аваад явдаг.
VPN клиентийн өөрийнх нь хайлт яагаад ажилласаар байдаг вэ
Клиент туннель үүсэхээс өмнө гарцын хост нэрийг шийдэх ёстой тул хатуу хаалт нь клиентийн ачаалах замыг хамарч болохгүй. Ихэнх клиент endpoint хаягийг кэшлэдэг эсвэл тэр нэг хостод зориулсан баримтжуулсан ачаалах үл хамаарахыг өгдөг. Хэрэв таны дүрмийн багц тэр хайлтыг хааж байвал туннель хэзээ ч буцаж ирэхгүй, лог нь өөрийн серверт хүрч чадахгүй клиентийг харуулна; энэ нь DNS биш, бодлогын алдаа.
Хуваасан DNS нь үүнээс илэрдэг хоёр дахь газар. Клиент дотоод бүсийг хувийн resolver руу түлхэж, бусад бүгдийг системийн resolver-т үлдээдэг. Уналтын дараа нийтийн нэрс шийдэгдсээр байж болох ч дотоод нэрс хугацаа хэтэрч бүтэлгүйтдэг, учир нь хувийн бүст зам үлдээгүй. Хэрэглэгчид энэ нь "VPN интернэтийг эвдсэн"; resolver-ийн логт энэ нь хэзээ ч ирээгүй асуулт.
systemd-resolved-ийн доор хуваалтыг шууд харж болно.resolvectl statusхолбоос бүрийн DNS сервер болон маршрутын домэйнуудыг жагсаадаг, туннель унасны дараа дотоод домэйн нь байхгүй болсон холбоос дээрх сервер рүү заасаар байна. 127.0.0.53 дээрх stub асуултыг хүлээж аваад, дараа нь хариу өгөхгүй дээд урсгалыг хүлээдэг, ийм учраас алдаа нэн даруй буцахгүй хэдэн секунд үргэлжилдэг.
Шифрлэсэн DNS пакетын шүүлтүүрийг тойрч чадахгүй
DNS over HTTPS болон DNS over TLS нь 443, 853 дээр явдаг тул 53-р портыг хаадаг дүрэм тэдний талаар юу ч хэлээгүй. "DNS"-ийг портоор хаах нь портын тухай бодлого, нэрийн шийдлийн тухай биш. Хэрэв таны kill switch туннелийн гаднах бүх урсгалыг хааж байвал DoH санамсаргүйгээр хамрагдана. Хэрэв captive portal эсвэл нийтийн resolver-т зөвшөөрөл гаргасан бол хамрагдахгүй.
Клиентийн талын удирдлага нь хямд хөшүүрэг. Канари нэрuse-application-dns.netшийдэгдэхгүй үед Firefox өөрийн DoH resolver-ээ орхидог, тиймээс удирдлагатай сүлжээнүүд тэр домэйныг NXDOMAIN гэж нийтэлдэг; аж ахуйн нэгжийн бодлого үүнийг унтраалттайгаар тогтоож болно. Android Private DNS болон Chrome-ийн аюулгүй DNS нь өөрийн унтраалга, өөрийн өгөгдмөл утгатай. Тэдгээрийг унтраах нь resolver-ийн хаягийг хөөхөөс илүү найдвартай, учир нь хаягийн жагсаалт өөрчлөгддөг, таны дүрмийн багц өөрчлөгддөггүй.
Үүний алдагдалтай огт холбоогүй хувилбар бас бий. Бэхэлсэн resolver-тэй аппликейшн тэнд хүрэх сүлжээний зам хэрэгтэй хэвээр. Шифрлэлт нь асуултыг хэн уншиж болохыг өөрчилдөг, пакет машиннаас гарч чадах эсэхийг биш, тиймээс бүх төхөөрөмжийн хаалт тохиргоог хөндөхгүйгээр дийлдэг.
Шинж тэмдгийг түвшинтэй тааруул
Ихэнх мэдээлэл нэг өгүүлбэрээр ирдэг бөгөөд тэр өгүүлбэр ихэвчлэн түвшинг аль хэдийн нэрлэсэн байдаг. Доорх хүснэгт нь дүрэмд хүрэхийн өмнө би харж гардаг зүйл; зорилго нь асуулт хаагдсан, буруу чиглэсэн, эсвэл огт илгээгдээгүй эсэхийг шийдэх.
| Symptom | Likely layer | First check |
|---|---|---|
| Every name fails at once, instantly | Resolver answering with a refusal | Query the resolver by address, not by name |
| Lookups hang for seconds, then time out | Packets dropped with no response | Watch port 53 on the physical link |
| Public names resolve, internal ones do not | Split-DNS routing domain | Per-link DNS servers on the tunnel |
| Names resolve, the page still fails | Not DNS: routing or MTU | Connect to the IP directly |
| Only one application fails | Pinned resolver or cached answer | Check that app's DNS setting |
Эхний хоёр мөр нь хүмүүс буруу оношилдог газар. Чимээгүй уналт болон татгалзал хөтчид хоёулаа "DNS эвдэрсэн" мэт харагддаг, гэхдээ зөвхөн нэг нь таны kill switch ажлаа хийж байгааг илэрхийлнэ. Татгалзал гэдэг нь ямар нэгэн зүйл хариулсан гэсэн үг, тиймээс хаалт таны бодож байгаа газарт биш.
Resolver-ийн бодлогыг сэргээгээд дараа нь нотол
Загварыг зас, шинж тэмдгийг биш. Зөвхөн туннелээр шийдэхийн тулд туннелийн интерфейс дээр 53-ыг зөвшөөрч, дотоод resolver-ийг туннелийн тохиргоотой хамт түлхэж, физик холбоосыг ямар ч DNS зөвшөөрөлгүй үлдээ. wg-quick-д resolver-ийг интерфейсийн тохиргоонд бичдэг мөр ньDNS =юм, тиймээс үүнийг орхигдуулсан туннель хуучин resolver-ийг байранд нь үлдээж, асуулт бүр буруу замд орно.wg-quick гарын авлагаэнэ зан төлвийг платформ тус бүрээр баримтжуулдаг.
Дараа нь энэ дарааллаар шалга. Linux дээрresolvectl statusидэвхтэй холбоосыг харуулна,dig +short example.comнийтийн нэрийг шалгана,dig @10.8.0.1 internal.example.comхувийн нэрийг шалгана,sudo tcpdump -ni any port 53хоёуланг нь ажиллуулж байх үед пакетууд аль интерфейсийг ашиглаж байгааг харуулна. Windows дээрGet-DnsClientServerAddress -AddressFamily IPv4болонResolve-DnsName example.comижил хоёр баримтыг өгнө: хэн тохируулагдсан, хэн хариулж байна.
Сөрөг тестээр дуусга. Туннелийг салгаж, шинэ нийтийн нэр бүтэлгүйтэж байгааг бататга, хувийн нэр бүтэлгүйтэж байгааг бататга, мөн53-р портын нэг ч пакет физик адаптераас гарсангүй гэдгийг бататга. Зөвхөн кэшлэсэн хариултад тэсвэрлэдэг хаалт огт тэсвэрлэдэггүй.
Тикетийг хаахаас өмнөх хяналтын жагсаалт:
- Эвдрэлийн үед ашигласан resolver нь бодлогын зорьсон нь юм.
- Клиентийн өөрийн endpoint хайлт кэш эсвэл үл хамаарах замаар зөвшөөрөгдсөн хэвээр.
- DoH болон DoT нь хаалтад хамрагдсан эсвэл бодлогоор идэвхгүй болсон.
- Туннель алга болмогц хувийн бүсүүд нээлттэй биш, хаалттай байдлаар бүтэлгүйтдэг.