Přepínač pro jednotlivé aplikace zní jako opatrná volba: když tunel spadne, síť ztratí jen pracovní klient a všechno ostatní běží dál. Pak si někdo všimne, že osobní prohlížeč přesto načetl stránku, pomocník pro synchronizaci z téhož balíku pořád zkoušel znovu a kešované jméno se stále překládalo na adresu, která se tunelu nikdy nedotkla. Štítek na funkci a množina připojení, která skutečně chrání, jsou dvě různé věci. Nejprve určete chráněnou množinu, protože ta rozhoduje o tom, zda je poctivým popisem vynucení pro jednotlivé aplikace, nebo zámek celého zařízení.

Začněte množinou, ne štítkem

Zásada pro jednotlivé aplikace chrání vybrané aplikace. Zámek zařízení míří na širší síťovou hranici, obvykle s dokumentovanými výjimkami pro místní tisk, správní provoz nebo captive portály. Ani jeden štítek není úplný, dokud neodpovíte na tři otázky: co se stane s vyloučenými aplikacemi, co se stane s pomocníky, které tyto aplikace spouštějí, a co se stane se spojeními otevřenými, dokud ochrana není dostupná.

Tyto odpovědi si zapište, než se dotknete nastavení klienta. Pokud je požadavek "tento mzdový klient nesmí nikdy mluvit s internetem mimo tunel a můj prohlížeč smí", množina je malá a vynucení pro jednotlivé aplikace sedí. Pokud je požadavek "nic na tomto zařízení se nedostane na internet bez ochrany kromě aktualizační služby", žádná zásada pro jednotlivé aplikace to nevytvoří, protože problémem jsou aplikace, které jste nejmenovali.

Vynucení pro jednotlivé aplikace páruje identifikátory, ne názvy programů

Android zpřístupňuje VPN pro jednotlivé aplikace pomocí balíčků a jeho dokumentace VpnService popisuje, jak to souvisí s režimem trvalého zapnutí a blokováním. iOS nastavuje VPN pro jednotlivé aplikace pomocí profilu správy a páruje podle aplikace nebo podle domény. Windows a Linux nemají trasu pro jednotlivý proces vůbec, takže se stejná myšlenka přibližuje pravidlem firewallu omezeným na program nebo pravidlem, které odpovídá vlastníkovi uživateli.

Hranicí je identifikátor a identifikátory se snadno obejdou. Aplikace, která předá URL systémovému prohlížeči nebo otevře dokument v prohlížeči souborů, přejde do procesu, který vaše zásada nikdy nejmenovala. Volba ukončení při pádu také není paketový filtr: zabije aplikaci, kterou jste nastavili, zatímco podřízený proces, pracovník fronty nebo karta prohlížeče mohou udržet existující socket naživu.

Zámek pokrývá to, co zásada pro jednotlivé aplikace nevidí

Zámek celého zařízení odstraňuje volbu. Každý odchozí paket, který nepatří tunelu, se zahodí, včetně provozu z procesů, o kterých vaše zásada aplikací nikdy nevěděla. V Androidu je to VPN s trvalým zapnutím v kombinaci s nastavením blokování připojení a vynucení probíhá v systému, ne v okně klienta. Na počítači je to trvalé pravidlo firewallu nebo výchozí trasa směrem k nedostupné bráně.

Cena je, že všechno ostatní se zastaví, takže výjimky se stávají součástí návrhu, ne dodatečným nápadem. Místní tiskárny, zjišťování služeb, přihlášení na captive portály, správní agenti a aktualizace OS potřebují každý dokumentovanou díru, protože každý je cestou, která zůstává otevřená, když tunel neběží. Zámek je jen tak silný jako nejkratší položka na tomto seznamu.

DNS, IPv6 a pomocníci na pozadí skrývají úniky

To, že chráněná aplikace nepřeloží jméno, nedokazuje, že kešované odpovědi nebo přímý provoz na IP jsou blokované. Pokud je překladač stále dostupný mimo tunel, jméno se přeloží a spojení selže, což vypadá jako fungující přepínač a není. Horší je, že kešovaný záznam může ukazovat na adresu, kterou tunel nenese, takže spojení vyjde přímo, zatímco aplikace hlásí chybu VPN.

IPv6 potřebuje vlastní pravidlo na každé platformě, která ho provozuje, protože pravidlo zahazování pro v4 nepokrývá trasu v6. Na mobilu může nastavení soukromého DNS přesunout překlad do šifrovaného kanálu, který zásada zařízení nezkoumá. A pomocníci na pozadí jsou obvyklý viník na počítači: proces aktualizací nebo synchronizace v oznamovací oblasti se spustí dřív než klient VPN a drží si vlastní spojení, takže nikdy nevidí změněnou trasu.

Otestujte tři aplikace a dva přechody

TestWhat it proves
Included app, by name and by direct IPthe policy is applied, not just the resolver
Excluded app, same checksthe exclusion is intentional and documented
Helper or updater processnothing inherited an older route
Tunnel drop, then Wi-Fi to cellularthe block survives the transition

Každý řádek spusťte dvakrát, jednou s názvem hostitele a jednou s doslovnou adresou, a ještě jednou přes IPv6, pokud to síť nabízí. Úspěch znamená, že zahrnutá aplikace se zastavila, vyloučená se chovala tak, jak jste zapsali, a pomocník neproklouzl. Zapište přímé chování, které jste označili za přijatelné, aby další správce rozeznal úmyslnou výjimku od poruchy.

Potom výsledek popište jednou větou, která pojmenuje aplikace a podmínky, například: mzdový klient nemá trasu mimo tunel, prohlížeč je přímo kvůli návrhu a všechno ostatní se zastaví, když tunel neběží. Pokud se ta věta píše obtížně, zásada jsou stále dvě zásady, které proti sobě bojují.

Související články