Jou VPN-opdrag loop onbevoorreg; die diens nie
Geen wagwoordprompt sê niks oor wie roetes verander nie. Soek die diens, die koppelvlak wat dit blootstel en die beleid wat besluit watter oproepers mag vra.
Die VPN-opdrag loop as jou gebruiker, geen wagwoord verskyn nie, en die tonnel kom op. Daardie volgorde voel soos 'n onbevoorregte bewerking, en dit is gewoonlik nie. 'n Aparte diens voer die netwerkveranderinge uit, en die interessante vraag is wat daardie diens vir 'n oproeper sal doen wat hy nie verifieer het nie. Om wagwoordprompts te tel sê jou niks oor daardie grens nie.
Die koppelvlak, die meganisme en die kontrole
Die koppelvlak aanvaar versoeke: koppel, ontkoppel, kies 'n profiel. Die meganisme besit die netwerkbewerkings: koppelvlakke skep, roetes verander, filters toepas. Die magtigingskontrole besluit of hierdie oproeper om hierdie aksie mag vra. Daardie drie kan oor 'n program, 'n helper en 'n stelseldiens versprei wees, en die gebruiker sien net die eerste.
Die rolle kan in een program, in twee prosesse of in 'n kliënt en 'n stelseldiens woon, en die gebruikersgerigte opdrag verklap selde watter een. 'n Laatprentjie-ikoon en 'n stelseldaemon kan soos een toepassing lyk terwyl hulle met heel verskillende magte loop. Voorregte tydens installasie en voorregte tydens 'n versoek is ook verskillende dinge. 'n Installeerder wat as root geloop het, kan 'n diens laat luister vir latere versoeke, lank nadat die pakketbestuurder klaar is. Daardie diens, nie die opdrag wat jy getik het nie, is wat die mag het.
Delegering is die normale ontwerp
Om bevoorregte netwerkwerk aan 'n diens te delegeer, is die redelike argitektuur. Dit hou gewone toepassings onbevoorreg, en dit sentraliseer die bewerkings wat sorg nodig het. Die ontwerp loon eers wanneer die diens ook kontroleer wie vra en waarvoor. Sonder daardie kontrole is dit net 'n wyer deur.
NetworkManager is die konkrete Linux-voorbeeld. Sy konfigurasiegids verduidelik hoe PolicyKit nie-root-versoeke in die verstekopstelling magtig. Dit wys gedelegeerde magtiging in 'n werklike produk. Dit bewys nie dat elke kommersiële kliënt NetworkManager gebruik nie, en dit beskryf nie enige spesifieke verskaffer se socketpad of beleid nie.
Die patroon is delegering met 'n beleid daarby. Die voorbeeld is een implementering van daardie patroon, nie 'n universele een nie.
Lees die grens, nie die prompt nie
Vind die diens, sy konfigurasie-eienaar en die plaaslike koppelvlak wat die frontend gebruik. Vra dan watter gebruikers watter bewerkings mag versoek. Om een gestoorde profiel op en af te bring is nie dieselfde toestemming as om konfigurasie te laai wat die operateur nooit nagegaan het nie. Die verskil is die hele sekuriteitsvraag.
Begin by die diensbestuurder en die kliënt se eie siening van sy toestemmings. Die opdragte hieronder wys of die daemon loop, wat die oproeper dit mag vra om te doen, en wat die daemon onder sy looptyd-gids blootstel.
systemctl status NetworkManager
nmcli general permissions
ls -l /run/NetworkManager
Vra ook wat die bewerking raak. 'n Kieslysitem wat persoonlik lyk, kan roetes en DNS vir die hele masjien verander, wat beteken dit kan ander gebruikers se sessies ontwrig. Die omvang van die impak hoort in dieselfde oorsig as die toestemming, en dit bepaal gewoonlik of die diens 'n nouer rol nodig het.
Reg toestemmings op die ondersteunde manier
Om 'n beskermde beheersocket vir almal skryfbaar te maak, of 'n rekening by 'n breë administratiewe groep te voeg, verwyder 'n toestemmingsfout en skep 'n groter een. Die fout was die enigste ding wat jou gesê het dat die grens bestaan. Gebruik die gedokumenteerde lidmaatskap- of magtigingsproses, insluitend die sessieverfrissing wat dit vereis. Groepslidmaatskap geld dikwels net vir nuwe aanmeldingsessies, daarom kan 'n verandering niks lyk te doen tot die volgende aanmelding nie.
As die produk 'n nouer rol vir die bewerking blootstel, verkies dit bo 'n oorkoepelende verlening. Skryf die gekose rol en sy eienaar langs die diensnaam.
Hoe 'n goeie skeiding lyk
Gewone toepassings bly onbevoorreg, die diens doen net die opstelling waarvoor dit ontwerp is, en elke oproeper word teen 'n beleid gekontroleer wat iemand besit. Dit is 'n verdedigbare ontwerp. Dit is ook ouditeerbaar, want die beleid het 'n naam daaraan verbonde. Enigiets groter verdien 'n geskrewe uitsondering eerder as 'n stille toestemmingsverandering.
Die foutmodus is 'n diens wat enige versoek van enige plaaslike gebruiker uitvoer omdat die koppelvlak gerieflik is. Dit lyk identies van die gebruiker se kant, en dit dra 'n veel groter mag. Toets een geweierde versoek, nie net die suksesvolle een nie. 'n Weiering wat uit die beleid kom, is die bewys dat die beleid bestaan.