Rozdelený tunel: prečo sa odkaz otvára mimo VPN, ktorú ste nastavili
Smerovanie sleduje proces, ktorý otvára socket, nie aplikáciu, ktorá vám ukázala odkaz. Dokážte, ktorý program sa pripája, skôr než rozšírite výnimky.
Prechod aplikácie tunelom neprenáša jej smerovanie na všetko, čo táto aplikácia spustí, aj keď rozhranie naznačuje opak. Odkaz odovzdá požiadavku inému programu, ten program otvorí vlastný socket a platforma aplikuje pravidlá na nový proces, nie na ten, ktorý zobrazil text. Práve ten druhý proces vidí politika tunela, a to nie je ten, ktorý ste nakonfigurovali.
Zahrnutá aplikácia teda môže otvoriť prehliadač, ktorý stojí mimo tunela. Vylúčený prehliadač môže vrátiť prácu aplikácii, ktorá stojí v jeho vnútri. Oba smery tohto prekvapenia sú bežné správanie.
Časť pracovného postupu, ktorú nikto nenastavil
Politika pre jednotlivé aplikácie sa píše proti identite spustiteľného súboru alebo balíka a každé pripojenie sa vyhodnocuje v okamihu svojho vzniku. Prehliadač, prehliadač dokumentov, prehrávač médií aj systémový hárok na zdieľanie nesú každý svoju identitu a každý dostáva svoj verdikt. Hlboký odkaz prenáša dáta, nie politiku.
Preto pozorovanie pôsobí náhodne: to isté kliknutie sa smeruje dvoma spôsobmi podľa toho, ktorý obslužný program odpovie. Poštový klient v tuneli otvorí odkaz v prehliadači, ktorý žije mimo tunela, a stránka sa načíta z vašej domácej adresy. Prehliadač mimo tunela otvorí dokument v prehliadači, ktorý žije v jeho vnútri, a súbor prichádza cez výstup. Ani jeden z tých dvoch výsledkov nie je chyba klienta.
Už bežiaci obslužný program situáciu zhoršuje. Ak je prehliadač už otvorený, odkaz sa stane správou existujúcemu procesu a ten proces si ponechá smerovanie, ktoré mal pri spustení. Zatvorenie a opätovné otvorenie obsluhy výsledok zmení, a preto sa problém nikdy nereprodukuje na požiadanie.
| Platform | Policy object | What it is evaluated against |
|---|---|---|
| Android | Per-app VPN allowlist | Package name of the process opening the socket |
| Windows | Application traffic filters | Application path in the filter rule |
| Linux | UID or cgroup routing rules | Owner of the socket, which can be a different program |
Ktorý proces spojenie skutočne vytvoril
Merajte prijímajúcu stranu, namiesto toho aby ste o nej uvažovali. Nechajte tunel bežať, kliknite na neškodný odkaz a pozrite sa na sockety, ktoré drží nový program.
ss -tnp state established '( dport = :443 )' Get-NetTCPConnection -State Established | Select-Object RemoteAddress,OwningProcess
Prvý príkaz pomenuje proces za každým nadviazaným socketom v Linuxe, druhý robí to isté vo Windows rozlíšením identifikátora vlastniaceho procesu. Porovnajte názov procesu s názvami vo svojej politike. Ak je názov prehliadač a prehliadač je vylúčený, kliknutie opustilo tunel zámerne, nie vinou poruchy. Spárovanie pravidla politiky so živým socketom je celá metóda.
Kontrolu zopakujte s už bežiacou obsluhou a potom so zavretou. Oba výsledky sa môžu líšiť a tento rozdiel vysvetľuje väčšinu občasných hlásení o odkazoch unikajúcich z tunela.
Pokrytie je vlastnosť pracovného postupu
Ak má úloha zostať v tuneli od začiatku do konca, každý komponent, na ktorý môže dosiahnuť, musí byť vnútri politiky: spúšťač, obsluha, prehliadač a akýkoľvek sprostredkovateľ, ktorý platforma vloží medzi ne. Širšie pokrytie je často poctivá odpoveď a je lacnejšie ako audit každého cieľa zdieľania.
Vylúčiť systémového sprostredkovateľa, aby ste opravili jednu aplikáciu, je častá chyba. Sprostredkovatelia sú zdieľaní, takže vylúčenie nasleduje každú ďalšiu aplikáciu, ktorá používa rovnakú cestu, zvyčajne bez toho, aby si to niekto všimol, kým po týždňoch nepríde hlásenie. Prečítajte si, čo ďalšie od komponentu závisí, skôr než ho vylúčite.
Držte identitu oddelene od smerovania. Odkaz môže niesť token relácie alebo identifikátor účtu bez ohľadu na to, ktorý výstup požiadavku prijme. Správne smerované kliknutie môže cieľu stále presne povedať, kto ho nasledoval.
Dokumentujte pracovný postup, nie prvé zaškrtávacie pole. Keď úloha zahŕňa štyri programy, diagram so štyrmi programami je ten, ktorý predpovedá, kam prevádzka pôjde, a nastavenie jednej aplikácie je len jeden jeho riadok.