Always-on VPN yoki kill switch: aslida qaysinisini yoqdingiz?
Always-on VPN tunnelni qayta ulaydi; kill switch usiz nima chiqishi mumkinligini hal qiladi. Yorliqqa ishonishdan oldin besh tekshiruv.
Always-on va kill switch bir xil sozlamalar ekranida ikki qator masofada turadi, shuning uchun odamlar ularni bitta funksiyaning ikki nomi deb o'qiydi. Unday emas. Always-on — qayta ulanish siyosati: tunnelni yuklanishda ishga tushir, qulash yoki tarmoq almashinuvidan keyin qaytar va muvaffaqiyatsiz bo'lguncha qayta urin. Kill switch — trafik siyosati: tunnel o'chirilganda qaysi paketlar hali ham mashinadan chiqishi mumkinligini nomlaydi. Birinchisini ikkinchisiz yoqish mumkin, va aksariyat platformalarda standart natija o'sha oraliqda ham trafikni tashqariga qo'yib yuboradi.
Tekshiruv 1: blok alohida kalitmi?
Android 10 va undan yangiroqlarida saqlangan VPN profili tishli g'ildirak belgisi orqasida ikki mustaqil tugmani ochadi: Always-on VPN va Block connections without VPN. Faqat ikkinchisi kill switch. Faqat always-on bilan tunnel uzilishdan keyin haqiqatan qaytadi, va so'rov o'rtasidagi har qanday ilova bu sodir bo'lguncha Wi-Fi yoki mobil ma'lumot orqali tarmoqqa chiqa oladi.
Boshqariladigan qurilmalar siyosat API'sida xuddi shu bo'linishni saqlaydi. setAlwaysOnVpnPackage() paket nomini va lockdownEnabled belgisini oladi; paketni o'rnatib, belgini false holida qoldirgan administrator doimiy tunnel qurgan, yopiq qurilma emas. Konsoldagi ibora bu farqni kamdan-kam ko'rinadigan qiladi.
Holatni konsoldan emas, qurilmadan o'qing: adb shell settings get global always_on_vpn_app va adb shell settings get global always_on_vpn_lockdown. Agar birinchisi null qaytarsa, platforma darajasida hech qanday paket majburan qo'llanmaydi; agar ikkinchisi 0 qaytarsa, platforma hech narsani bloklamayapti. Android VPN qo'llanmasi ularni bitta rejim emas, alohida imkoniyatlar deb ta'riflaydi.
Tekshiruv 2: blok qaysi qatlamga tegishli?
Yorliqlar klientda, bloklar odatda firewallda yashaydi, shuning uchun bir so'z har platformada boshqa ma'no beradi. Quyidagi qatorlar ulardan biriga ishonishdan oldin tasdiqlashga arziydiganlari.
| Where you see the label | What the label promises | What actually blocks |
|---|---|---|
| Android VPN profile | Always-on VPN | Block connections without VPN |
| Android device policy | Always-on package | lockdownEnabled flag |
| Windows built-in VPN | Always On tunnel | Outbound firewall rules |
| WireGuard for Windows | Tunnel service | Block untunneled traffic option |
| wg-quick on Linux | Route via AllowedIPs | Your own nftables or iptables rules |
Windows — bloklamaydigan yorliqning eng yorqin misoli. U yerda Always On tunnelning barqarorligini tasvirlaydi: mashina autentifikatsiyasi uchun qurilma tunneli va kirgan hisob uchun foydalanuvchi tunneli, profil XML yoki Add-VpnConnection orqali sozlanadi. Bu profilda tunnel yo'q bo'lganda chiquvchi paketni to'xtatadigan hech narsa yo'q, chiquvchi filtrlash esa standart holatda yoqilmagan, shuning uchun Wi-Fi'dagi noutbuk VPN o'chirilganda ham ishlayveradi.
WireGuard ham xuddi shunday bo'linadi, lekin klient bo'yicha. WireGuard for Windows'da har bir tunnel uchun filtr qoidalarini o'rnatadigan Block untunneled traffic varianti bor; Linux vositalarida bunday kalit yo'q. wg-quick har bir AllowedIPs yozuvi uchun marshrut va fwmark qoidasini qo'shadi, wg-quick down ikkalasini ham olib tashlaydi, shuning uchun jismoniy standart marshrut bironta paket yo'qotmasdan yana o'z vazifasini oladi.
Apple platformalarida always-on nazorat qilinadigan qurilmalar uchun boshqaruv profili xususiyati sifatida keladi va katakcha emas, on-demand qoidalari shaklida ifodalanadi. Payloaddan javob berish kerak bo'lgan savol: muvaffaqiyatsiz tunnel trafikni rad etadimi yoki faqat boshqa ulanishni so'raydimi. Menyu sarlavhasi buni aytmaydi.
Tekshiruv 3: belgini emas, oraliqni o'lchang
To'rt o'tish muhim va ular turlicha muvaffaqiyatsiz bo'ladi: hech kim kirmasdan oldin yuklanish, uyqu va uyg'onish, Wi-Fi'dan mobil ma'lumotga o'tish va tunnel interfeysini yarim sozlangan holda qoldiradigan klient qulashi. Ulardan birida toza qayta ulanish qolgan uchtasi haqida hech narsani isbotlamaydi.
Eng arzon sinov tunnelni ataylab to'xtatadi va keyin chiqishga urinadi. Tunnel o'chiq turganda curl -m 5 -sS -o /dev/null -w '%{http_code}' https://example.com 200 qaytarsa, siyosat fail-open degani; vaqt tugashi yoki rad etilgan ulanish hali ham biror narsa bloklayotganini bildiradi. ip route get 1.1.1.1 paketni olib o'tadigan interfeysni nomlaydi, bu odatda tray belgisidan ko'ra ko'proq ma'lumot beradi, systemctl status wg-quick@wg0 esa interfeys toza olib tashlanganini ko'rsatadi.
Xuddi shu tekshiruvni tarmoq o'zgarayotganda ikkinchi oynada ishga tushiring, faqat u barqarorlashgandan keyin emas. Uzilish va yangi urinish orasidagi oraliq — asosiy narsa, nomni hal qilish esa trafik qochib ketganini payqashning eng tez yo'li: tunnel o'chiq turganda mahalliy hal qiluvchi javob bersa, blok to'liq emas.
Tekshiruv 4: qulflashdan oldin istisnolarni hal qiling
Ikki istisno tizimli. Klient VPN serverning o'ziga yetib borishi kerak, shuning uchun hammasini tashlaydigan qoidalar to'plami himoyani qaytaradigan qayta ulanishga ham to'sqinlik qiladi. Captive portal ham ko'tarilmagan tunnel orqali yetib bo'lmaydi, shuning uchun mehmonxona Wi-Fi'ida qulflangan qurilmaga portalni ochishning hujjatlashtirilgan yo'li kerak, badal usuli emas.
Eng kam shakl: oxirgi nuqtaga ruxsat, qolgani tashlandi:
table inet vpnlock {
chain output {
type filter hook output priority 0; policy drop;
oifname "lo" accept
ip daddr 203.0.113.10 udp dport 51820 accept
oifname "wg0" accept
}
}
O'sha oxirgi nuqta qatorini doimiy emas, o'zgaruvchi deb biling. Provayderlar manzillarni almashtiradi, eskirgan istisno esa ishlaydigan kill switch qayta ulana olmaydigan qurilmaga aylanishining odatiy sababi. Mahalliy printerlar, NAS ulashmalari va ishlab chiqish xizmatlari o'sha yozma ro'yxatga kiradi, aks holda ular har bir qo'llab-quvvatlash chiptasida bittadan topiladi.
Tekshiruv 5: aslida nima isbotlaganingizni yozib qo'ying
To'rt ustunli jadval tuting va uni sinovlar bilan to'ldiring: holat, kutilgan xatti-harakat, kuzatilgan xatti-harakat, dalil. Qatorlar — 3-tekshiruvdagi o'tishlar va bitta ataylab qilingan nosozlik. Buyruq chiqishi bilan to'ldirib bo'lmaydigan qator — sinab ko'rilmagan qator, qayta ulanish qatoridan o'tib, yuklanish qatorida yiqiladigan qurilma esa yetarlicha keng tarqalgan, shuning uchun qo'shimcha o'n daqiqa arziydi.
Buni tugagan deb atashdan oldin:
- Bloklash sozlamasi qayta ulanish sozlamasidan alohida ekanini tasdiqlang va uning qiymatini qurilmada o'qing.
- Blokni qaysi qatlam amalga oshirishini - klient varianti, qurilma siyosati yoki firewall - va u qatlam qayerda sozlanishini biling.
- Blokni isbotlaydigan bitta tekshiruv buyrug'ini saqlang va uni o'tish paytida ishga tushiring, keyin emas.
- Istisnolar ro'yxatini oxirgi nuqta bilan birga yozing va uni kim yangilashini belgilang.
- Boshqariladigan apparatda majburiy siyosatga tegmaslik; blokni olib tashlash tunnelni tuzatish o'rniga talabni o'zgartiradi.