Vienas VPN prisijungimas bendrame kompiuteryje: kas dar gauna maršrutą?
VPN prisijungimas autentifikuoja vieną asmenį; jo įdiegiamas maršrutas yra kita apimtis. Palyginkite viso hosto, konkretaus naudotojo ir programos tunelius bendrame kompiuteryje.
Dalijimasis darbo stotimi kelia klausimą, į kurį vieno naudotojo nešiojamasis kompiuteris niekada neturi atsakyti: kai vienas asmuo autentifikuoja tunelį, kas dar gali juo naudotis? Prisijungimas identifikuoja subjektą, o įdiegiamas maršrutas aprašo apimtį, ir šie du dalykai nėra tas pats objektas. Tarp jų yra operacinė sistema, kliento konfigūracija ir tai, ko reikalauja pati privati tarnyba. Įgyvendinimo taškų palyginimas yra vienintelis būdas atsakyti į klausimą nespėliojant.
Vienas prisijungimas, kelios apimtys
Autentifikavimas atsako, kas buvo įleistas. Maršrutas atsako, kurie paketai gali išeiti per tunelį. Autorizavimas atsako, kuri tarnyba priims atsiradusį ryšį, ir nė vienas iš trijų nereiškia kito.
Viso hosto tunelis yra įprastas numatytasis variantas, ir jis daro spragą akivaizdžią. Maršrutas yra branduolio lentelėje, todėl bet kuris procesas, naudojantis tą lentelę, gali pasiekti privatų tinklą, įskaitant procesą, kurį paleido naudotojas, niekada nematęs VPN dialogo. Tai nėra tunelio defektas; tai yra visos sistemos maršruto prasmė. Privati tarnyba vis tiek gali atmesti ryšį, todėl pasiekiamumui ir leidimui reikia atskirų atsakymų.
Keturių klausimų užrašymas prieš testavimą neleidžia peržiūrai susiaurėti iki vieno iš jų.
Kur iš tikrųjų yra riba
Keturi išdėstymai apima daugumą kompiuterių: viso hosto tunelis, konkretaus naudotojo ryšys, leidžiamų programų sąrašas ir atskira tinklo vardų erdvė arba virtualioji mašina.
Kiekvienas įgyvendinimo tašką padeda kitur, ir skirtumai svarbesni už pavadinimus. Konkretaus naudotojo ryšį įgyvendina profilio leidimai, o ne darbalaukio prisijungimo ekranas. Leidžiamų programų sąrašą įgyvendina klientas, kuris sprendžia, ką perduos. Vardų erdvė arba VM įgyvendina sąsajos riboje, todėl viduje esantis procesas visiškai nemato hosto maršruto. Prisijungimo ekranų skaičius kompiuteryje nieko nesako apie nė vieną iš jų.
| 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 |
Lentelės skaitymas eilutė po eilutės rodo, kad tikrasis klausimas yra ne ar izoliacija egzistuoja, o kur ji įgyvendinta.
Palyginkite keturis įgyvendinimo taškus
Linux sistemoje maršrutų lentelė yra pirmas dalykas, kurį reikia patikrinti, nes viso hosto tunelis joje pasirodo, o vardų erdvė ne. Paieškos vykdymas kaip antrasis naudotojas yra žingsnis, kurį žmonės praleidžia; atsakymas skiriasi nuo to, kurį jie gavo būdami savimi, ir tai paaiškina ataskaitą.
Kiti du patikrinimai žiūri į politiką, o ne į maršrutizavimą. Ugniasienės taisyklė, atitinkanti UID, taikoma vietoje sugeneruotam srautui, todėl gali atskirti du naudotojus viename hoste net tada, kai abu dalijasi maršrutu. Ryšio profilis su aiškiu leidimų sąrašu įgyvendinamas tinklo tvarkyklės aktyvavimo metu. Nė vienas patikrinimas nereikalauja keisti tunelio, todėl verta juos atlikti prieš ką nors perprojektuojant.
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
Jei antroji paieška rodo tunelio maršrutą, riba yra ne ten, kur projektas darė prielaidą.
Lygiagrečių sesijų taisyklės yra atskira kontrolė
Tinklų vartai dažnai riboja, kiek sesijų gali turėti viena paskyra, ir ši riba neturi nieko bendra su vietiniais naudotojais. Ji riboja paskyrą, todėl antras asmuo, prisijungęs tais pačiais duomenimis, gali nutraukti pirmojo tunelį.
Perskaitykite gedimą prieš manydami, kad tai vietinė izoliacijos problema. Sesijų riba sukelia atsijungimą vartuose, o apimties problema sukuria veikiantį tunelį, kuris tiesiog neperduoda kito naudotojo srauto. Šie du simptomai veda prie visiškai skirtingų taisymų. Išsaugokite tikslų kliento pranešimą, nes jame paprastai įvardyta taisyklė. Paprašykite profilio savininko patvirtintos darbo eigos, o ne apeikite ribą.
Virtualioji mašina nieko neatleidžia nuo šios taisyklės ir prideda savo tinklo bei prisijungimo duomenų dizainą.
Testuokite tai, kas jums svarbu
Išbandykite numatytą naudotoją ir programą, tada išbandykite kontekstą, kuris turėtų būti atmestas. Peržiūra, kuri tik įrodo, kad pirminis slaptažodis veikia, išbandė autentifikavimą ir nieko daugiau.
sudo -u bob curl -sS -m 5 https://intranet.internal/health
wg show
ss -tnp | grep -E ':443|:51820'
Užrašykite įgyvendinimo tašką prie kiekvieno rezultato: maršrutų lentelę, UID taisyklę, profilio leidimą arba vartų sesijų politiką. Šis įrašas leidžia peržiūrėti kitą pakeitimą. Jis taip pat neleidžia tam pačiam klausimui vėl atsiverti kiekvieną kartą, kai kas nors pastebi antrą prisijungimo ekraną. Pasiekiamumas nėra autorizavimas, ir nė vienas iš jų nėra izoliacija.