Always-on VPN ili kill switch: koje ste zapravo uključili?
Always-on VPN ponovo spaja tunel; kill switch odlučuje šta smije izaći bez njega. Pet provjera prije nego što povjerujete naljepnici.
Always-on i kill switch stoje dvije linije jedan od drugog na istom ekranu postavki, pa ih ljudi čitaju kao dva imena za jednu funkciju. Nisu. Always-on je politika ponovnog povezivanja: pokreće tunel pri podizanju, vraća ga nakon pada ili promjene mreže i nastavlja pokušavati dok ne uspije. Kill switch je politika saobraćaja: imenuje pakete koji još mogu napustiti mašinu dok je tunel pao. Prvo možete uključiti bez drugog, a na većini platformi zadani rezultat ipak pušta saobraćaj tokom praznine.
Provjera 1: je li blokada zaseban prekidač?
Na Androidu 10 i novijem sačuvani VPN profil otvara iza ikone zupčanika dva nezavisna prekidača: Always-on VPN i Blokiraj veze bez VPN-a. Samo je drugi kill switch. Uz samo always-on tunel se vraća nakon prekida, ali svaka aplikacija usred zahtjeva dosegne mrežu preko Wi-Fi ili mobilnih podataka dok se to ne dogodi.
Upravljani uređaji čuvaju istu podjelu u API-ju politika. setAlwaysOnVpnPackage() prima ime paketa i zastavicu lockdownEnabled; administrator koji postavi paket i ostavi zastavicu netačnom izgradio je trajni tunel, a ne zatvoren uređaj. Formulacija u konzoli rijetko pokazuje tu razliku.
Čitajte stanje s uređaja, ne iz konzole: adb shell settings get global always_on_vpn_app i adb shell settings get global always_on_vpn_lockdown. Ako prva vrati null, na razini platforme nije nametnut nijedan paket; ako druga vrati 0, platforma ništa ne blokira. Vodič za VPN na Androidu opisuje ih kao odvojene mogućnosti, a ne jedan način rada.
Provjera 2: koji sloj posjeduje blokadu?
Naljepnice žive u klijentu, a blokade obično u firewallu, zato ista riječ na svakoj platformi znači nešto drugo. Redovi ispod zaslužuju potvrdu prije nego što se pouzdate u bilo koji.
| 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 je najjasniji primjer naljepnice koja ne blokira. Always On tamo opisuje trajnost tunela: tunel uređaja za autentifikaciju mašine, korisnički tunel za prijavljeni račun, konfigurisan kroz XML profila ili Add-VpnConnection. Ništa u tom profilu ne zaustavlja odlazni paket kad tunela nema, a odlazno filtriranje nije uključeno po zadanom, pa laptop na Wi-Fi nastavlja raditi dok je VPN pao.
WireGuard se dijeli isto, ali po klijentu. WireGuard za Windows ima opciju po tunelu Blokiraj saobraćaj van tunela koja instalira filtarska pravila; linux alati nemaju takav prekidač. wg-quick dodaje rutu za svaki unos AllowedIPs plus pravilo fwmark, a wg-quick down uklanja oboje, pa fizička zadana ruta ponovo preuzima bez ispuštenog paketa između.
Na Apple platformama always-on dolazi kao funkcija profila upravljanja za nadzirane uređaje i izražava se pravilima na zahtjev, a ne kvadratićem. Pitanje iz sadržaja je odbija li neuspjeli tunel saobraćaj ili samo traži drugu vezu. Naslov menija vam to neće reći.
Provjera 3: mjerite prazninu, ne ikonu
Četiri prelaza su važna i ne uspijevaju različito: podizanje prije nego se iko prijavi, spavanje i buđenje, promjena s Wi-Fi na mobilne podatke i pad klijenta koji ostavlja interfejs tunela napola konfigurisan. Čisto ponovno povezivanje na jednom od njih ne dokazuje ništa o ostala tri.
Najjeftiniji test namjerno zaustavlja tunel i zatim pokušava izaći. Kad je tunel pao, curl -m 5 -sS -o /dev/null -w '%{http_code}' https://example.com koji vrati 200 znači da je politika fail-open; istek vremena ili odbijena veza znači da nešto još blokira. ip route get 1.1.1.1 imenuje interfejs koji bi nosio paket, što obično kaže više od ikone u traci, a systemctl status wg-quick@wg0 pokazuje je li interfejs čisto uklonjen.
Pokrenite istu provjeru u drugom prozoru dok se mreža mijenja, ne samo poslije. Interval između pada i novog pokušaja je važan dio, a provjera imena je najbrži način da primijetite bijeg saobraćaja: ako lokalni razrješivač odgovori dok je tunel pao, blokada nije potpuna.
Provjera 4: odlučite izuzetke prije zaključavanja
Dva izuzetka su strukturna. Klijent mora dosegnuti sam VPN server, pa skup pravila koji odbacuje sve sprječava i ponovno povezivanje koje bi vratilo zaštitu. Captive portal se takođe ne može dosegnuti kroz tunel koji nije podignut, pa zaključan uređaj na hotelskom Wi-Fi treba dokumentovan način da otvori portal, a ne improvizovan.
Minimalni oblik, krajnja tačka dozvoljena, sve ostalo odbačeno:
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
}
}
Tretirajte taj red krajnje tačke kao promjenljivu, ne kao konstantu. Provajderi rotiraju adrese, a zastario izuzetak je uobičajen razlog zašto radni kill switch postane uređaj koji se ne može ponovo povezati. Lokalni štampači, NAS dijeljenja i razvojne usluge pripadaju na isti pisani spisak, inače se otkrivaju po jedan tiket podrške.
Provjera 5: zapišite šta ste stvarno dokazali
Držite tabelu s četiri kolone i punite je testiranjem: stanje, očekivano ponašanje, primijećeno ponašanje, dokaz. Redovi su prelazi iz provjere 3 plus jedan namjeran neuspjeh. Red koji ne možete popuniti izlazom komande je red koji niste testirali, a uređaj koji prođe red ponovnog povezivanja i padne na redu podizanja dovoljno je čest da vrijedi dodatnih deset minuta.
Prije nego što to proglasite gotovim:
- Potvrdite da je postavka blokiranja odvojena od postavke ponovnog povezivanja i pročitajte njenu vrijednost na uređaju.
- Znajte koji sloj provodi blokadu - opcija klijenta, politika uređaja ili firewall - i gdje se taj sloj konfiguriše.
- Držite jednu probnu komandu koja dokazuje blokadu i pokrećite je tokom prelaza, a ne poslije.
- Zapišite spisak izuzetaka, uključujući krajnju tačku, i zabilježite ko ga osvježava.
- Na upravljanom hardveru ostavite nametnutu politiku; uklanjanje blokade mijenja zahtjev umjesto da popravi tunel.