Podzielony tunel: dlaczego link otwiera się poza skonfigurowanym VPN-em
Trasowanie idzie za procesem, który otwiera gniazdo, a nie za aplikacją, która pokazała ci link. Udowodnij, który program się łączy, zanim rozszerzysz wyjątki.
Przepuszczanie aplikacji przez tunel nie przenosi jej trasowania na wszystko, co ta aplikacja uruchomi, choć interfejs sugeruje coś innego. Link przekazuje żądanie innemu programowi, ten program otwiera własne gniazdo, a platforma stosuje reguły do nowego procesu, a nie do tego, który wyświetlił tekst. Właśnie ten drugi proces widzi polityka tunelu i nie jest to ten, który skonfigurowałeś.
Aplikacja objęta polityką może więc otworzyć przeglądarkę, która stoi poza tunelem. Przeglądarka wyłączona może oddać pracę aplikacji, która stoi w jego wnętrzu. Oba kierunki tej niespodzianki to zwykłe zachowanie.
Ta część przepływu pracy, której nikt nie skonfigurował
Politykę dla aplikacji pisze się wobec tożsamości pliku wykonywalnego lub pakietu, a każde połączenie jest oceniane w chwili jego powstania. Przeglądarka, przeglądarka dokumentów, odtwarzacz multimedialny i arkusz udostępniania systemu mają każdy własną tożsamość i każdy dostaje własny wyrok. Głęboki link przenosi dane, a nie politykę.
Dlatego obserwacja wydaje się dowolna: to samo kliknięcie jest trasowane na dwa sposoby zależnie od tego, który program obsługi odpowie. Klient poczty w tunelu otwiera link w przeglądarce żyjącej poza tunelem i strona ładuje się z twojego domowego adresu. Przeglądarka poza tunelem otwiera dokument w przeglądarce żyjącej w nim i plik przychodzi przez wyjście. Żaden z tych wyników nie jest usterką klienta.
Działający już program obsługi pogarsza sprawę. Jeśli przeglądarka jest już otwarta, link staje się wiadomością do istniejącego procesu, a ten proces zachowuje trasowanie, które miał przy starcie. Zamknięcie i ponowne otwarcie obsługi zmienia wynik, i dlatego problem nigdy nie powtarza się na żądanie.
| 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 |
Który proces naprawdę utworzył połączenie
Mierz stronę odbierającą zamiast o niej rozumować. Utrzymaj tunel włączony, kliknij nieszkodliwy link i popatrz na gniazda, które trzyma nowy program.
ss -tnp state established '( dport = :443 )' Get-NetTCPConnection -State Established | Select-Object RemoteAddress,OwningProcess
Pierwsze polecenie nazywa proces stojący za każdym ustanowionym gniazdem w Linuksie, a drugie robi to samo w Windows, rozwiązując identyfikator procesu, który je posiada. Porównaj nazwę procesu z nazwami w swojej polityce. Jeśli nazwa to przeglądarka, a przeglądarka jest wyłączona, kliknięcie opuściło tunel zgodnie z projektem, a nie z powodu usterki. Dopasowanie reguły polityki do żywego gniazda to cała metoda.
Powtórz sprawdzenie przy już działającym programie obsługi, a potem przy zamkniętym. Oba wyniki mogą się różnić, a ta różnica wyjaśnia większość sporadycznych zgłoszeń o linkach uciekających z tunelu.
Pokrycie jest właściwością przepływu pracy
Jeśli zadanie ma pozostać w tunelu od początku do końca, każdy komponent, do którego może dotrzeć, musi być w polityce: launcher, program obsługi, przeglądarka i każdy pośrednik, który platforma wstawia między nich. Szersze pokrycie jest często uczciwą odpowiedzią i jest tańsze niż audyt każdego celu udostępniania.
Wyłączenie pośrednika systemowego, aby naprawić jedną aplikację, to częsty błąd. Pośrednicy są współdzieleni, więc wyjątek podąża za każdą inną aplikacją, która używa tej samej ścieżki, zwykle bez niczyjej uwagi, dopóki po tygodniach nie przyjdzie zgłoszenie. Przeczytaj, co jeszcze zależy od komponentu, zanim go wyłączysz.
Trzymaj tożsamość osobno od trasowania. Link może nieść token sesji albo identyfikator konta niezależnie od tego, które wyjście odbierze żądanie. Poprawnie trasowane kliknięcie wciąż może dokładnie powiedzieć celowi, kto za nim poszedł.
Dokumentuj przepływ pracy, a nie pierwsze pole wyboru. Gdy zadanie obejmuje cztery programy, to diagram z czterema programami przewiduje, gdzie pójdzie ruch, a ustawienie pojedynczej aplikacji to tylko jeden jego wiersz.