Always-on VPN ali kill switch: kaj ste pravzaprav vklopili?
Always-on VPN znova poveže tunel; kill switch odloči, kaj sme brez njega ven. Pet preverjanj, preden zaupate oznaki.
Always-on in kill switch stojita dve vrstici narazen na istem zaslonu nastavitev, zato ju ljudje berejo kot dve imeni ene funkcije. Nista. Always-on je politika ponovnega povezovanja: zaženi tunel ob zagonu, vrni ga po sesutju ali spremembi omrežja in poskušaj naprej, dokler spodleti. Kill switch je politika prometa: poimenuje pakete, ki smejo še vedno zapustiti stroj, ko tunela ni. Prvo lahko vklopite brez drugega, na večini platform pa privzeti izid še vedno spusti promet ven v tej vrzeli.
Preverjanje 1: je blokada samostojno stikalo?
Na Androidu 10 in novejšem shranjeni profil VPN odpre za ikono zobnika dve neodvisni stikali: Always-on VPN in Block connections without VPN. Kill switch je samo drugo. S samim always-on se tunel po prekinitvi res vrne, vsaka aplikacija sredi zahteve pa lahko doseže omrežje prek Wi-Fi ali mobilnih podatkov, dokler se to ne zgodi.
Upravljane naprave ohranjajo isto delitev v API-ju pravilnikov. setAlwaysOnVpnPackage() sprejme ime paketa in zastavico lockdownEnabled; skrbnik, ki paket nastavi in zastavico pusti na false, je zgradil trajen tunel, ne zaprte naprave. Besedilo v konzoli redko pokaže to razliko.
Stanje berite z naprave, ne iz konzole: adb shell settings get global always_on_vpn_app in adb shell settings get global always_on_vpn_lockdown. Če prvo vrne null, na ravni platforme ni vsiljen noben paket; če drugo vrne 0, platforma ničesar ne blokira. Vodnik po VPN za Android ju opisuje kot ločene zmožnosti, ne kot en način.
Preverjanje 2: katera plast ima blokado?
Oznake živijo v odjemalcu, blokade pa običajno v požarnem zidu, zato ista beseda na vsaki platformi pomeni nekaj drugega. Spodnje vrstice so tiste, ki jih velja potrditi, preden zaupate kateri koli od njih.
| 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 najjasnejši primer oznake, ki ne blokira. Tam Always On opisuje obstojnost tunela: tunel naprave za preverjanje identitete stroja in uporabniški tunel za prijavljeni račun, nastavljena prek XML profila ali Add-VpnConnection. Nič v tem profilu ne ustavi odhodnega paketa, ko tunela ni, odhodno filtriranje pa privzeto ni vklopljeno, zato prenosnik na Wi-Fi deluje naprej, medtem ko VPN leži.
WireGuard se deli enako, a po odjemalcu. WireGuard for Windows ima možnost Block untunneled traffic za vsak tunel, ki namesti pravila filtra; orodja Linux nimajo takega stikala. wg-quick doda pot za vsak vnos AllowedIPs in pravilo fwmark, wg-quick down pa oboje odstrani, zato fizična privzeta pot spet prevzame brez izgubljenega paketa.
Na platformah Apple pride always-on kot funkcija upravljalnega profila za nadzorovane naprave in se izrazi s pravili on-demand, ne s potrditvenim poljem. Vprašanje, na katero je treba odgovoriti iz koristnega tovora, je, ali spodleteli tunel zavrača promet ali samo zahteva drugo povezavo. Naslov menija tega ne bo povedal.
Preverjanje 3: merite vrzel, ne ikono
Štirje prehodi so pomembni in spodletijo vsak drugače: zagon, preden se kdo prijavi, spanje in prebujanje, prehod z Wi-Fi na mobilne podatke in sesutje odjemalca, ki vmesnik tunela pusti napol nastavljen. Čista ponovna povezava na enem od njih ne dokaže ničesar o ostalih treh.
Najcenejši preizkus namerno ustavi tunel in nato poskusi priti ven. Ko tunel leži, curl -m 5 -sS -o /dev/null -w '%{http_code}' https://example.com, ki vrne 200, pomeni, da je pravilnik fail-open; časovna omejitev ali zavrnjena povezava pomeni, da nekaj še blokira. ip route get 1.1.1.1 poimenuje vmesnik, ki bi nosil paket, kar je običajno bolj informativno od ikone v pladnju, systemctl status wg-quick@wg0 pa pokaže, ali je bil vmesnik čisto odstranjen.
Zaženite isto preverjanje v drugem oknu, medtem ko se omrežje spreminja, ne le potem, ko se umiri. Interval med prekinitvijo in novim poskusom je tisto, kar šteje, razreševanje imen pa je najhitrejši način, da opazite, da je promet ušel: če lokalni razreševalnik odgovarja, ko tunel leži, blokada ni popolna.
Preverjanje 4: odločite o izjemah, preden zaklenete
Dve izjemi sta strukturni. Odjemalec mora doseči sam strežnik VPN, zato nabor pravil, ki vse odvrže, prepreči tudi ponovno povezavo, ki bi vrnila zaščito. Tudi captive portal ni dosegljiv skozi tunel, ki ni dvignjen, zato zaklenjena naprava na hotelskem Wi-Fi potrebuje dokumentiran način odpiranja portala, ne improviziranega.
Minimalna oblika, končna točka dovoljena, vse ostalo odvrž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
}
}
To vrstico končne točke obravnavajte kot spremenljivko, ne kot konstanto. Ponudniki menjajo naslove in zastarela izjema je običajen razlog, da delujoč kill switch postane naprava, ki se ne more več povezati. Lokalni tiskalniki, deleži NAS in razvojne storitve sodijo na isti zapisani seznam, sicer jih odkrivate eno prijavo podpore za drugo.
Preverjanje 5: zapišite, kaj ste res dokazali
Vodite tabelo s štirimi stolpci in jo polnite s testiranjem: stanje, pričakovano vedenje, opaženo vedenje, dokaz. Vrstice so prehodi iz preverjanja 3 plus ena namerna okvara. Vrstica, ki je ne morete izpolniti z izpisom ukaza, je vrstica, ki je niste preizkusili, naprava, ki prestane vrstico ponovne povezave in spodleti v vrstici zagona, pa je dovolj pogosta, da si zasluži dodatnih deset minut.
Preden to razglasite za dokončano:
- Potrdite, da je nastavitev blokade ločena od nastavitve ponovne povezave, in preberite njeno vrednost na napravi.
- Vedite, katera plast uveljavlja blokado - možnost odjemalca, pravilnik naprave ali požarni zid - in kje se ta plast nastavi.
- Obdržite en preizkusni ukaz, ki dokaže blokado, in ga izvajajte med prehodom, ne po njem.
- Zapišite seznam izjem, vključno s končno točko, in zabeležite, kdo ga osvežuje.
- Na upravljani strojni opremi pustite vsiljeni pravilnik pri miru; odstranitev blokade spremeni zahtevo, namesto da bi popravila tunel.