Üks VPN-sisselogimine jagatud arvutis: kes veel marsruudi saab?
VPN-sisselogimine autentib ühe inimese; marsruut, mille see paigaldab, on teine ulatus. Võrrelge hostiülest, kasutajapõhist ja rakendusepõhist tunnelit jagatud masinas.
Tööjaama jagamine tõstatab küsimuse, millele ühe kasutaja sülearvuti ei pea kunagi vastama: kui üks inimene on tunneli autentinud, kes teine saab seda kasutada? Sisselogimine tuvastab subjekti ja marsruut, mille see paigaldab, kirjeldab ulatust, ning need kaks asi ei ole sama objekt. Nende vahel on operatsioonisüsteem, kliendi konfiguratsioon ja see, mida privaatteenus ise nõuab. Jõustamispunktide võrdlemine on ainus viis küsimusele oletamata vastata.
Üks sisselogimine, mitu ulatust
Autentimine vastab, kes lubati sisse. Marsruut vastab, millised paketid tohivad tunnelist väljuda. Autoriseerimine vastab, milline teenus võtab vastu tekkinud ühenduse, ja ükski neist kolmest ei eelda järgmist.
Hostiülene tunnel on tavaline vaikeväärtus ja teeb lünga nähtavaks. Marsruut asub kerneli tabelis, seega iga protsess, mis seda tabelit kasutab, pääseb privaatvõrku, sealhulgas protsess, mille käivitas kasutaja, kes pole VPN-dialoogi kunagi näinud. See pole tunneli defekt; see ongi süsteemiülene marsruut. Privaatteenus võib ühenduse siiski tagasi lükata, seepärast vajavad kättesaadavus ja luba eraldi vastuseid.
Nelja küsimuse üleskirjutamine enne testimist hoiab ülevaatuse ära kukkumast üheks neist.
Kus piir tegelikult asub
Neli korraldust katavad enamiku masinaid: hostiülene tunnel, kasutajapõhine ühendus, rakendusepõhine lubatud loend ja eraldi võrgu nimeruum või virtuaalmasin.
Igaüks paneb jõustamispunkti eri kohta ja erinevused loevad rohkem kui nimetused. Kasutajapõhist ühendust jõustavad profiili load, mitte töölaua sisselogimisekraan. Rakendusepõhist lubatud loendit jõustatakse kliendi sees, mis otsustab, mida see kannab. Nimeruum või VM jõustab liidese piiril, seega sees olev protsess ei näe hosti marsruuti üldse. Sisselogimisekraanide arv masinas ei ütle nende kohta midagi.
| 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 |
Tabeli ridade kaupa lugemine näitab, et tegelik küsimus pole, kas isolatsioon on olemas, vaid kus see on rakendatud.
Võrrelge nelja jõustamispunkti
Linuxis tuleb esimesena uurida marsruuditabelit, sest hostiülene tunnel ilmub sinna ja nimeruum mitte. Otsingu käivitamine teise kasutajana on samm, mille inimesed vahele jätavad; vastus erineb sellest, mille nad iseendana said, ja see selgitab aruannet.
Järgmised kaks kontrolli vaatavad poliitikat, mitte marsruutimist. UID-iga sobiv tulemüürireegel kehtib kohalikult loodud liiklusele, seega saab see ühes hostis kaks kasutajat eraldada ka siis, kui mõlemad marsruuti jagavad. Selge lubade loendiga ühendusprofiili jõustab võrguhaldur aktiveerimisel. Kumbki kontroll ei nõua tunneli muutmist, seepärast tasub need teha enne mis tahes ümberkujundust.
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
Kui teine otsing näitab tunneli marsruuti, pole piir seal, kus disain eeldas.
Samaaegsete sessioonide reeglid on eraldi kontroll
Lüüsid piiravad sageli, mitu sessiooni üks konto võib hoida, ja sellel piiril pole kohalike kasutajatega midagi pistmist. See piirab kontot, seega teine inimene, kes logib sisse samade andmetega, võib esimese inimese tunneli lõpetada.
Lugege tõrget enne, kui eeldate kohalikku isolatsiooniprobleemi. Sessioonipiirang tekitab lüüsis katkestuse, samas kui ulatuseprobleem tekitab töötava tunneli, mis lihtsalt ei kanna teise kasutaja liiklust. Need kaks sümptomit viivad täiesti erinevate parandusteni. Hoidke kliendi täpne sõnum alles, sest tavaliselt nimetab see reegli. Küsige profiili omanikult kinnitatud töövoogu, selle asemel et piirangut mööda minna.
Virtuaalmasin ei vabasta kedagi sellest reeglist ja lisab oma võrgu- ja mandaadidisaini.
Testige konteksti, mis teile oluline on
Testige kavandatud kasutajat ja rakendust, seejärel testige konteksti, mida peaks tagasi lükkama. Ülevaatus, mis tõestab ainult, et algne parool töötab, on testinud autentimist ja mitte midagi muud.
sudo -u bob curl -sS -m 5 https://intranet.internal/health
wg show
ss -tnp | grep -E ':443|:51820'
Märkige jõustamispunkt iga tulemuse kõrvale: marsruuditabel, UID-reegel, profiililuba või lüüsi sessioonipoliitika. See kirje muudab järgmise muudatuse ülevaatatavaks. Samuti hoiab see ära sama küsimuse uuesti avamise iga kord, kui keegi märkab teist sisselogimisekraani. Kättesaadavus ei ole autoriseerimine ja kumbki neist ei ole isolatsioon.