Jedna VPN prijava na dijeljenom računaru: ko još dobija rutu?
VPN prijava autentificira jednu osobu; ruta koju postavlja drugi je obim. Uporedite tunele na nivou hosta, korisnika i aplikacije na dijeljenoj mašini.
Dijeljenje radne stanice otvara pitanje na koje laptop s jednim korisnikom nikada ne mora odgovoriti: kada jedna osoba autentificira tunel, ko ga još može koristiti? Prijava identificira subjekt, a ruta koju postavlja opisuje obim, i te dvije stvari nisu isti objekt. Između njih stoje operativni sistem, konfiguracija klijenta i ono što privatna usluga zahtijeva sama po sebi. Poređenje tačaka primjene jedini je način da se na pitanje odgovori bez nagađanja.
Jedna prijava, nekoliko obima
Autentifikacija odgovara ko je primljen. Ruta odgovara koji paketi smiju izaći kroz tunel. Autorizacija odgovara koja će usluga prihvatiti nastalu vezu, i nijedno od to troje ne podrazumijeva sljedeće.
Tunel na nivou hosta uobičajeni je zadani izbor i čini razliku očiglednom. Ruta stoji u kernel tabeli, pa svaki proces koji koristi tu tabelu može doći do privatne mreže, uključujući onaj koji je pokrenuo korisnik koji nikada nije vidio VPN dijalog. To nije nedostatak u tunelu; to znači ruta na nivou sistema. Privatna usluga ipak može odbiti vezu, zato dostupnost i dozvola traže odvojene odgovore.
Zapisivanje četiri pitanja prije testiranja sprječava da se pregled svede na jedno od njih.
Gdje granica zapravo stoji
Četiri rasporeda pokrivaju većinu mašina: tunel na nivou hosta, veza po korisniku, lista dozvoljenih aplikacija i odvojen mrežni prostor imena ili virtuelna mašina.
Svaki postavlja tačku primjene na drugo mjesto, a razlike su važnije od naziva. Veza po korisniku primjenjuje se dozvolama profila, a ne ekranom za prijavu na radnu površinu. Lista dozvoljenih aplikacija primjenjuje se unutar klijenta, koji odlučuje šta će nositi. Prostor imena ili VM primjenjuje na granici interfejsa, pa proces unutra uopće ne vidi rutu hosta. Broj ekrana za prijavu na mašini ne govori ništa ni o jednom od njih.
| Arrangement | Enforced by | Who can use the path |
|---|---|---|
| Host-wide tunnel | The routing table | Any local process using that table |
| Per-user connection | Profile permission list | Only the listed accounts |
| Per-app allowlist | The VPN client itself | Only the selected applications |
| Namespace or VM | The interface boundary | Only processes inside it |
Čitanje tabele red po red pokazuje da pravo pitanje nije postoji li izolacija, nego gdje je implementirana.
Uporedite četiri tačke primjene
Na Linuxu je tabela ruta prvo što treba pregledati, jer se tunel na nivou hosta pojavljuje tamo, a prostor imena ne. Pokretanje pretrage kao drugi korisnik korak je koji ljudi preskaču; odgovor se razlikuje od onoga koji su dobili kao oni sami, i to objašnjava izvještaj.
Sljedeće dvije provjere gledaju politiku, a ne rutiranje. Pravilo firewall-a koje odgovara UID-u primjenjuje se na lokalno generisan saobraćaj, pa može razdvojiti dva korisnika na jednom hostu čak i kada oba dijele rutu. Profil veze s eksplicitnom listom dozvola primjenjuje mrežni menadžer pri aktivaciji. Nijedna provjera ne zahtijeva da se tunel promijeni, zato ih vrijedi uraditi prije bilo kakvog redizajna.
ip route get 10.40.2.10
sudo -u bob ip route get 10.40.2.10
nmcli connection show vpn-work | grep -i permission
sudo nft list ruleset | grep -n skuid
Ako druga pretraga pokaže rutu tunela, granica nije tamo gdje je dizajn pretpostavio.
Pravila istovremenih sesija su odvojena kontrola
Mrežni prolazi često ograničavaju koliko sesija jedan račun može držati, a to ograničenje nema veze s lokalnim korisnicima. Ono ograničava račun, pa druga osoba koja se prijavi istim podacima može prekinuti tunel prve osobe.
Pročitajte otkaz prije nego pretpostavite lokalni problem izolacije. Ograničenje sesija proizvodi prekid na mrežnom prolazu, dok problem obima proizvodi tunel koji radi ali jednostavno ne nosi saobraćaj drugog korisnika. Ta dva simptoma vode potpuno različitim popravkama. Sačuvajte tačnu poruku klijenta, jer ona obično imenuje pravilo. Zamolite vlasnika profila za odobreni tok rada umjesto da zaobilazite ograničenje.
Virtuelna mašina nikoga ne izuzima od tog pravila i dodaje vlastiti dizajn mreže i akreditiva.
Testirajte kontekst koji vam je važan
Testirajte predviđenog korisnika i aplikaciju, a zatim testirajte kontekst koji bi trebalo odbiti. Pregled koji samo dokaže da originalna lozinka radi testirao je autentifikaciju i ništa drugo.
sudo -u bob curl -sS -m 5 https://intranet.internal/health
wg show
ss -tnp | grep -E ':443|:51820'
Zabilježite tačku primjene uz svaki rezultat: tabela ruta, pravilo UID-a, dozvola profila ili sesijska politika mrežnog prolaza. Taj zapis čini sljedeću promjenu preglednom. On također sprječava da se isto pitanje ponovo otvara svaki put kada neko primijeti drugi ekran za prijavu. Dostupnost nije autorizacija, i nijedno od toga nije izolacija.