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.

ArrangementEnforced byWho can use the path
Host-wide tunnelThe routing tableAny local process using that table
Per-user connectionProfile permission listOnly the listed accounts
Per-app allowlistThe VPN client itselfOnly the selected applications
Namespace or VMThe interface boundaryOnly 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.

Související články