Een werkstation delen roept een vraag op die een laptop voor één gebruiker nooit hoeft te beantwoorden: zodra één persoon de tunnel authenticeert, wie kan hem dan nog meer gebruiken? De login identificeert een subject, en de route die hij installeert beschrijft een bereik, en die twee dingen zijn niet hetzelfde object. Tussen hen in zitten het besturingssysteem, de configuratie van de client en wat de particuliere dienst zelf eist. De handhavingspunten vergelijken is de enige manier om de vraag zonder gissen te beantwoorden.

Eén login, meerdere bereiken

Authenticatie beantwoordt wie werd toegelaten. De route beantwoordt welke pakketten de tunnel mogen verlaten. Autorisatie beantwoordt welke dienst de resulterende verbinding aanvaardt, en geen van de drie impliceert de volgende.

Een hostbrede tunnel is de gebruikelijke standaard en maakt de kloof zichtbaar. De route staat in de tabel van de kernel, dus elk proces dat die tabel gebruikt kan het particuliere netwerk bereiken, ook een dat is gestart door een gebruiker die nooit de VPN-dialoog heeft gezien. Dat is geen defect in de tunnel; dat is wat een systeembrede route betekent. De particuliere dienst kan de verbinding alsnog weigeren, en daarom hebben bereikbaarheid en toestemming aparte antwoorden nodig.

De vier vragen vooraf opschrijven voorkomt dat de beoordeling tot een van hen samenvalt.

Waar de grens werkelijk ligt

Vier opstellingen dekken de meeste machines: een hostbrede tunnel, een verbinding per gebruiker, een toelatingslijst per toepassing en een aparte netwerknaamruimte of virtuele machine.

Elk zet het handhavingspunt ergens anders, en de verschillen zijn belangrijker dan de labels. Een verbinding per gebruiker wordt afgedwongen door de rechten van het profiel, niet door het inlogscherm van de desktop. Een toelatingslijst per app wordt in de client afgedwongen, die beslist wat hij zal dragen. Een naamruimte of een VM dwingt af bij de grens van de interface, zodat een proces binnenin de route van de host helemaal niet ziet. Het aantal inlogschermen op de machine zegt niets over een van hen.

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

De tabel rij voor rij lezen toont dat de echte vraag niet is of er isolatie bestaat, maar waar die is geïmplementeerd.

Vergelijk vier handhavingspunten

Op Linux is de routetabel het eerste dat moet worden onderzocht, omdat een hostbrede tunnel daar verschijnt en een naamruimte niet. De opzoeking als tweede gebruiker uitvoeren is de stap die mensen overslaan; het antwoord verschilt van wat ze als zichzelf kregen, en dat verklaart het rapport.

De volgende twee controles kijken naar beleid in plaats van routing. Een firewallregel die bij een UID past, geldt voor lokaal gegenereerd verkeer, dus kan twee gebruikers op één host scheiden zelfs wanneer beiden de route delen. Een verbindingsprofiel met een expliciete rechtenlijst wordt bij activering door de netwerkbeheerder afgedwongen. Geen van de controles vereist dat de tunnel verandert, en daarom is het de moeite waard ze te doen voordat iets opnieuw wordt ontworpen.

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

Als de tweede opzoeking de tunnelroute toont, ligt de grens niet waar het ontwerp aannam.

Regels voor gelijktijdige sessies zijn een aparte controle

Gateways beperken vaak hoeveel sessies één account mag houden, en die limiet heeft niets met lokale gebruikers te maken. Hij beperkt het account, dus een tweede persoon die met dezelfde inloggegevens aanmeldt kan de tunnel van de eerste beëindigen.

Lees de fout voordat u een lokaal isolatieprobleem aanneemt. Een sessielimiet veroorzaakt een verbreking bij de gateway, terwijl een bereikprobleem een werkende tunnel oplevert die eenvoudigweg het verkeer van de andere gebruiker niet draagt. Die twee symptomen leiden tot volledig verschillende oplossingen. Bewaar het exacte bericht van de client, want het noemt meestal de regel. Vraag de profileigenaar om de goedgekeurde werkwijze in plaats van de limiet te omzeilen.

Een virtuele machine stelt niemand vrij van die regel en voegt een eigen netwerk- en inloggegevensontwerp toe.

Test de context die u belangrijk vindt

Test de bedoelde gebruiker en toepassing, en test dan een context die geweigerd zou moeten worden. Een beoordeling die alleen bewijst dat het oorspronkelijke wachtwoord werkt, heeft authenticatie getest en niets anders.

sudo -u bob curl -sS -m 5 https://intranet.internal/health
wg show
ss -tnp | grep -E ':443|:51820'

Noteer het handhavingspunt naast elk resultaat: de routetabel, een UID-regel, een profielrecht of het sessiebeleid van de gateway. Die vastlegging maakt de volgende wijziging beoordeelbaar. Ze voorkomt ook dat dezelfde vraag opnieuw wordt geopend telkens wanneer iemand een tweede inlogscherm opmerkt. Bereikbaarheid is geen autorisatie, en geen van beide is isolatie.

Gerelateerde artikelen