Jedna VPN prijava na dijeljenom računalu: tko još dobiva rutu?
VPN prijava autentificira jednu osobu; ruta koju postavlja drugi je opseg. Usporedite tunele na razini hosta, korisnika i aplikacije na dijeljenom stroju.
Dijeljenje radne stanice otvara pitanje na koje prijenosnik s jednim korisnikom nikada ne mora odgovoriti: kada jedna osoba autentificira tunel, tko ga još može koristiti? Prijava identificira subjekt, a ruta koju postavlja opisuje opseg, i te dvije stvari nisu isti objekt. Između njih stoje operacijski sustav, konfiguracija klijenta i ono što privatna usluga zahtijeva sama po sebi. Usporedba točaka primjene jedini je način da se na pitanje odgovori bez nagađanja.
Jedna prijava, nekoliko opsega
Autentifikacija odgovara tko 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 razini hosta uobičajeni je zadani izbor i čini razliku očitom. Ruta stoji u kernel tablici, pa svaki proces koji koristi tu tablicu 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 razini sustava. Privatna usluga ipak može odbiti vezu, zato dostupnost i dopuštenje traže odvojene odgovore.
Zapisivanje četiriju pitanja prije testiranja sprječava da se pregled svede na jedno od njih.
Gdje granica zapravo stoji
Četiri rasporeda pokrivaju većinu strojeva: tunel na razini hosta, veza po korisniku, popis dopuštenih aplikacija i odvojen mrežni prostor imena ili virtualni stroj.
Svaki postavlja točku primjene na drugo mjesto, a razlike su važnije od naziva. Veza po korisniku primjenjuje se dopuštenjima profila, a ne zaslonom za prijavu na radnu površinu. Popis dopuštenih aplikacija primjenjuje se unutar klijenta, koji odlučuje što će nositi. Prostor imena ili VM primjenjuje na granici sučelja, pa proces unutra uopće ne vidi rutu hosta. Broj zaslona za prijavu na stroju 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 tablice red po red pokazuje da pravo pitanje nije postoji li izolacija, nego gdje je provedena.
Usporedite četiri točke primjene
Na Linuxu je tablica ruta prvo što treba pregledati, jer se tunel na razini 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 usmjeravanje. Pravilo vatrozida koje odgovara UID-u primjenjuje se na lokalno stvoren promet, pa može razdvojiti dva korisnika na jednom hostu čak i kada oba dijele rutu. Profil veze s eksplicitnim popisom dopuštenja primjenjuje mrežni upravitelj pri aktivaciji. Nijedna provjera ne zahtijeva da se tunel promijeni, zato ih vrijedi obaviti 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 istodobnih sesija odvojena su 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 stvara prekid na mrežnom prolazu, dok problem opsega stvara tunel koji radi ali jednostavno ne nosi promet drugog korisnika. Ta dva simptoma vode posve različitim popravcima. Sačuvajte točnu poruku klijenta, jer ona obično imenuje pravilo. Zamolite vlasnika profila za odobreni tijek rada umjesto da zaobilazite ograničenje.
Virtualni stroj 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 izvorna 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 točku primjene uz svaki rezultat: tablica ruta, pravilo UID-a, dopuštenje profila ili sesijska politika mrežnog prolaza. Taj zapis čini sljedeću promjenu preglednom. On također sprječava da se isto pitanje ponovno otvara svaki put kada netko primijeti drugi zaslon za prijavu. Dostupnost nije autorizacija, i nijedno od toga nije izolacija.