Jedno přihlášení VPN na sdíleném počítači: kdo další dostane trasu?
Přihlášení VPN ověřuje jednoho člověka; trasa, kterou zavádí, je jiný rozsah. Porovnejte tunely pro celý hostitel, pro uživatele a pro aplikaci na sdíleném stroji.
Sdílení pracovní stanice přináší otázku, na kterou jedno uživatelský notebook nikdy nemusí odpovídat: jakmile jedna osoba ověří tunel, kdo další jej může používat? Přihlášení identifikuje subjekt a trasa, kterou zavádí, popisuje rozsah, a to nejsou tytéž objekty. Mezi nimi stojí operační systém, konfigurace klienta a to, co soukromá služba vyžaduje sama o sobě. Porovnání míst vynucení je jediný způsob, jak odpovědět bez hádání.
Jedno přihlášení, několik rozsahů
Ověření odpovídá na to, kdo byl vpuštěn. Trasa odpovídá na to, které pakety smějí odejít tunelem. Autorizace odpovídá na to, která služba přijme výsledné spojení, a žádné z těch tří neznamená to další.
Tunel pro celého hostitele je běžné výchozí nastavení a mezeru činí zjevnou. Trasa leží v tabulce jádra, takže každý proces, který tuto tabulku používá, může dosáhnout soukromé sítě, včetně procesu spuštěného uživatelem, který dialog VPN nikdy neviděl. To není vada tunelu; to je význam systémové trasy. Soukromá služba přesto může spojení odmítnout, a proto dostupnost a oprávnění potřebují oddělené odpovědi.
Když si čtyři otázky zapíšete před testováním, recenze se nesklouzne k jedné z nich.
Kde hranice skutečně leží
Čtyři uspořádání pokrývají většinu strojů: tunel pro celého hostitele, spojení pro uživatele, seznam povolených aplikací a oddělený síťový jmenný prostor nebo virtuální stroj.
Každé staví místo vynucení jinam a rozdíly jsou důležitější než názvy. Spojení pro uživatele vynucují oprávnění profilu, ne přihlašovací obrazovka plochy. Seznam povolených aplikací se vynucuje uvnitř klienta, který rozhoduje, co ponese. Jmenný prostor nebo VM vynucuje na hranici rozhraní, takže proces uvnitř vůbec nevidí trasu hostitele. Počet přihlašovacích obrazovek na stroji neříká nic o žádném z nich.
| 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 |
Čtení tabulky řádek po řádku ukazuje, že skutečná otázka není, zda izolace existuje, ale kde je implementována.
Porovnejte čtyři místa vynucení
V Linuxu je první věcí k prohlédnutí tabulka tras, protože tunel pro celého hostitele se objeví tam a jmenný prostor ne. Spuštění vyhledání jako druhý uživatel je krok, který lidé přeskakují; odpověď se liší od té, kterou dostali jako oni sami, a to vysvětluje zprávu.
Další dvě kontroly se dívají na politiku, ne na směrování. Pravidlo firewallu odpovídající UID se vztahuje na místně vytvářený provoz, takže může oddělit dva uživatele na jednom hostiteli, i když oba sdílejí trasu. Profil spojení s explicitním seznamem oprávnění vynucuje správce sítě při aktivaci. Ani jedna kontrola nevyžaduje změnu tunelu, a proto je stojí za to udělat před jakýmkoli přepracováním.
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
Pokud druhé vyhledání ukáže trasu tunelu, hranice není tam, kde návrh předpokládal.
Pravidla souběžných relací jsou samostatná kontrola
Brány často omezují, kolik relací může jeden účet držet, a toto omezení nemá s místními uživateli nic společného. Omezuje účet, takže druhá osoba přihlášená stejnými údaji může ukončit tunel první osoby.
Přečtěte si selhání, než předpokládáte místní problém s izolací. Omezení relací vyvolá odpojení na bráně, zatímco problém s rozsahem vyvolá funkční tunel, který prostě nenese provoz druhého uživatele. Tyto dva příznaky vedou k úplně jiným opravám. Uchovejte přesnou zprávu klienta, protože obvykle pojmenovává pravidlo. Požádejte vlastníka profilu o schválený postup, místo abyste omezení obcházeli.
Virtuální stroj nikoho z tohoto pravidla nevyjímá a přidává vlastní návrh sítě a přihlašovacích údajů.
Testujte kontext, na kterém vám záleží
Otestujte zamýšleného uživatele a aplikaci, potom otestujte kontext, který má být odmítnut. Recenze, která jen prokáže, že původní heslo funguje, otestovala ověření a nic jiného.
sudo -u bob curl -sS -m 5 https://intranet.internal/health
wg show
ss -tnp | grep -E ':443|:51820'
Zapište místo vynucení vedle každého výsledku: tabulku tras, pravidlo UID, oprávnění profilu nebo politiku relací brány. Takový záznam činí další změnu přezkoumatelnou. Také brání tomu, aby se stejná otázka znovu otevírala pokaždé, když si někdo všimne druhé přihlašovací obrazovky. Dostupnost není autorizace a ani jedno není izolace.