Интернэт зөвхөн VPN апп-тай ажиллаж байна уу? Дөрвөн давхаргыг шалга
Windows дээр VPN апп прокси, виртуал адаптер, зам, DNS үлдээдэг. Дөрвөн давхаргаар доош явж, давхарга бүрд Linux, macOS командуудыг ашигла.
Та үнэгүй VPN клиент эсвэл хөтчийн өргөтгөлийг долоо хоног туршиж, унтраахад интернэт зогсдог. Wi-Fi дүрс холболт байгааг хэвээр харуулж, нэг чиглүүлэгч дээрх бусад төхөөрөмж хэвийн ажиллаж, хөтлөлтийг буцаадаг зүйл нь апп-ыг эргүүлэн идэвхжүүлэх эсвэл устгах явдал л юм. Энэ хэв маяг нь шифрлэлт хамаарал үүсгэсэн хэрэг биш. Энэ бол тоннелийн эзэмшдэггүй газарт апп бичсэн тохиргоо юм.
Клиент тоннелийн эзэмшдэггүй тохиргоог өөрчилдөг
Windows эсвэл macOS дээрх нууцлалын клиент ихэвчлэн гурван газрыг зэрэг хөнддөг. Тэр системийн HTTP проксийг тохируулдаг бөгөөд энэ нь Интернэт сонголтуудын харуулдаг талбартай ижил юм. Пакет барихын тулд виртуал адаптер, ихэвчлэн TAP драйвер суулгадаг. Мөн резолверын жагсаалтыг дахин бичдэг бол салгах товчийг дарахад зөвхөн тоннель л алга болдог.
Хөтчийн өргөтгөл бол илүү нарийн зүйл. Энэ нь ихэвчлэн өөрийн профайл эсвэл нэг хөтчийн дагадаг проксийг өөрчилдөг. Тиймээс нэг хөтөч бүтэлгүйтэх үед командын мөрийн хэрэгслүүд ажилласаар байх, эсвэл эсрэгээрээ: өргөтгөлд бусад давхаргыг хөндөх эрх хэзээ ч байгаагүй. Аль давхаргыг зассан нь аль хэрэгсэл эвдрэхийг шийддэг.
Аль ч тохиолдолд тэр хуучирсан шийдвэрийг буцаах ямар ч шалтгаангүй програм хангамж гаргасан. Тоннель нь харагдах хэсэг байсан бөгөөд цэвэр хаалтын замтай цорын ганц хэсэг нь ч мөн байв. Бусад бүхэн процессоос урт насалдаг санд хадгалагдсан тохиргоо тул апп-ыг устгах нь гурвыг зэрэг буцаах цор ганц алхам юм. Дахин суулгахаас өмнө тэр сангуудыг унших нь шинж тэмдгийг оношлогоо болгох юм.
Гурван үлдэгдэл, гурван өөр эвдрэл
Эхний үлдэгдэл нь хэнд ч заадаггүй прокси: LAN прокси нүдэнд тэмдэглэгдсэн хэвээр, эсвэл тохиргооны скриптийн URL ямар ч процесс сонсохгүй localhost порт руу чиглэсэн байна. Хөтөч бүх хүсэлтийг тэр үхсэн порт руу дамжуулж, таймаут нь үхсэн сүлжээ мэт харагдах хүртэл хүлээдэг. Хоёр дахь нь анхдагч замыг эзэмсээр байгаа адаптер, учир нь TAP-Windows төхөөрөмж эсвэл нийлүүлэгчийн чиглүүлэлтийн драйвер устгасны дараа ч бодит интерфэйс хэвээр үлддэг. Тэр өгөгдсөн замаа хадгалж, урсгал байхгүй тоннель руу алга болдог. Аль ч үлдэгдэл өөрийгөө зарладаггүй; хоёулаа яг л эвдрэл мэт харагдана.
Гурав дахь нь DNS бөгөөд энэ нь бусдаас эрт бүтэлгүйтдэг. Хэрэв резолверын жагсаалтад зөвхөн тоннелээр хүрэх серверүүд байвал нэг ч хуудас хүсэхээс өмнө хайлт бүр таймаут болж, хөтөч үхсэн прокси биш харин хүрэхгүй сайт гэж мэдээлдэг. Аль нь ч байсан, сүлжээний утгаар эдгээрийн аль нь ч эвдрэл биш. Нэг бүр нь хэн ч цуцалдаггүй үлдэгдэл бөгөөд нэг бүр өөр газарт засагддаг.
Дөрвөн давхаргаар доош яв
Аппликешнд хамгийн ойроос эхэлж доош яв, учир нь давхаргууд нь яг тэр харагдах байдлын дарааллаар бүтэлгүйтдэг. Нэг шалгалтад нэг давхаргыг өөрчилж, шалгалт бүрийн дараа дахин шалга. Бүгдийг нэг дор шинэчлэх нь ихэвчлэн хөтлөлтийг сэргээдэг ч аль үлдэгдэл үүнийг үүсгэснийг хэлэх боломжийг тань хасаж, дараагийн суулгалт мөн тэр оньсогыг дахин бүтээдэг. Дараалал нь прокси, адаптер, зам, резолвер.
Windows дээр шалгалт бүр нь үйлдлийн системтэй хамт ирдэг нэг команд тул юу ч суулгах шаардлагагүй. Тэдгээрийг дарааллаар нь ажиллуулж, гаралтыг хамт хадгал, учир нь дөрвөн хариулт зэрэгцэн байж л утга учиртай. Тэд прокси, адаптер, IPv4 зам, резолверын жагсаалтын тухай яг тэр дарааллаар мэдээлнэ:
netsh winhttp show proxy
Get-NetAdapter
route print -4
Get-DnsClientServerAddress
Linux болон macOS өөрсдийн команд шаарддаг бөгөөд тэдгээр нь солилцох боломжгүй. Linux дээр замыг ip route, резолверыг systemd-resolved эзэмшиж байгаа газарт resolvectl status өгдөг, эс бөгөөс cat /etc/resolv.conf руу буцна. macOS дээр замыг netstat -rn, резолверыг scutil --dns, системийн проксийг scutil --proxy өгдөг. ip route ажиллуулсан macOS хэрэглэгч command not found гэж гаргаж, тэнд /etc/resolv.conf нь эрх бүхий тохиргоо биш харин үүсгэсэн орлуулагч юм. Давхаргыг шалгахаасаа өмнө платформыг шалга, эс бөгөөс эхний команд нь өөрөө илрэл болно.
Давхарга бүрээс нэг асуулт асуу: апп хаалттай үед энэ утга одоо ч байгаа зүйл рүү зааж байна уу? Үхсэн порт дээрх прокси, тоннельгүй адаптер, унасан интерфэйсээр дамжсан анхдагч зам, тоннель доторх резолвер бүгд үгүй гэж хариулна. Ганц ч үгүй гэсэн хариулт шинж тэмдгийг тайлбарлахад хангалттай бөгөөд нэг шалгалтад нэг өөрчлөлт хийх нь яг ийм учраас чухал.
Прокси бол тоннель биш
Прокси хүсэлтийг хүлээн авч, өөр газар татаж, хариу буцааж өгдөг бөгөөд энэ нь тэр очих газрыг мэдэж, сайтын өөрөө шифрлээгүй бүхнийг хардаг гэсэн үг. Тэр бусад протокол зөөдөггүй. Очих газар нь TLS ашиглаж байгаа л бол замыг хамгаалдаггүй. Мөн үүнийг суулгасан юу ч таны оролцоогүйгээр өөрчилж чадна.
Тэр ялгаа нь асуух үнэ цэнэтэй асуултыг өөрчилдөг. Прокси араас үлдэх үед тоннель асаалттай эсэхийг биш харин аль програм таны хөтчийг одоо ч удирдаж байгааг олж мэд. Тоннель нь төгс эрүүл бөгөөд энэ эвдрэлд төгс хамааралгүй байж болно.
Ийм клиент үнэндээ юу хийснийг мэдэхийг хүсвэл түүний хяналтын самбарыг уншихын оронд ажигла. Process Monitor түүний хөндсөн бүртгэлийн түлхүүр, файлуудыг бүртгэдэг бол пакет барилт нь урсгал нь хаашаа явсныг илрүүлдэг. Хоёулаа жирийн хэрэгсэл бөгөөд аль ч статусын гэрлээс илүү үлдэгдлийн асуултад хариулдаг. Аль нь ч апп ажиллаж байхыг шаарддаггүй.
Нотолгоог биш, бүрэлдэхүүнийг нь ав
Трайлаг засвар нь тохиргоог бичсэн зүйлийг нь авах явдал. Апп-ыг устга, түүний нэмсэн виртуал адаптерыг устга, прокси болон резолверын жагсаалтыг цэвэрлэ, дараа нь дахин ачаалж, апп устгасан хэвээр нь шалга. Тэр үед хөтлөлт ажиллаж байвал та заслын арга биш харин шалтгааныг нь олсон байна. Аль давхарга хуучирсныг тэмдэглэж ав, учир нь нэг нийлүүлэгч ижил алдааг хоёр удаа нийлүүлэх хандлагатай.
Дараагийн клиентийг суулгасны дараа шинж тэмдэг буцаж ирвэл үйлчилгээ ямар нэг юмыг эвдсэн гэж дүгнэхээс өмнө дөрвөн давхаргаар дахин яв. Нотолгоо ихэвчлэн тэр дөрвөн газрын нэгэнд хэвээр байдаг. Хоёр дахь апп тав дахь давхарга үүсгэдэггүй; энэ нь дөрвийн нэгийг засдаг.
Дахин суулгах нь проксийг шинэчилдэг ч хуучирсан адаптерыг биш, мөн жагсаалтад хоёр резолвер үлдээж болно. Тэр тэгш бус байдал нь бүгдийг шинэчлэх товчоос устгаж-дараа-нь-шалгах нь дээр байх шалтгаан юм. Энэ нь холболт тасрах дараагийн удаа харьцуулах суурь шугамыг ч танд өгдөг.