Komanda VPN ekzekutohet si përdoruesi juaj, nuk shfaqet asnjë fjalëkalim, dhe tuneli ngrihet. Ai sekuencë ndihet si një operacion pa privilegje, dhe zakonisht nuk është. Një shërbim i veçantë kryen ndryshimet e rrjetit, dhe pyetja interesante është çfarë do të bëjë ai shërbim për një thirrës që nuk e ka verifikuar. Numërimi i kërkesave për fjalëkalim nuk ju thotë asgjë për atë kufi.

Ndërfaqja, mekanizmi dhe kontrolli

Ndërfaqja pranon kërkesa: lidhu, shkëputu, zgjidh një profil. Mekanizmi zotëron operacionet e rrjetit: krijimin e ndërfaqeve, ndryshimin e rrugëve, aplikimin e filtrave. Kontrolli i autorizimit vendos nëse ky thirrës mund të kërkojë këtë veprim. Këto tre mund të shpërndahen midis një binar, një ndihmësi dhe një shërbimi sistemi, dhe përdoruesi sheh vetëm të parin.

Rolet mund të jetojnë në një binar, në dy procese ose në një klient dhe një shërbim sistemi, dhe komanda që sheh përdoruesi rrallë zbulon cila. Një ikonë në tabaka dhe një demon sistemi mund të duken si një aplikacion, ndërsa ekzekutohen me autoritet shumë të ndryshëm. Privilegji në kohën e instalimit dhe privilegji në kohën e kërkesës janë gjithashtu gjëra të ndryshme. Një instalues që ekzekutohej si root mund të lërë një shërbim që dëgjon kërkesa të mëvonshme, shumë kohë pasi menaxheri i paketave ka mbaruar. Është ai shërbim, jo komanda që shkruat, ai që mban autoritetin.

Delegimi është dizajni normal

Delegimi i punës së privilegjuar të rrjetit një shërbimi është arkitektura e arsyeshme. Ajo i mban aplikacionet e zakonshme pa privilegje dhe centralizon operacionet që kërkojnë kujdes. Dizajni shpërblehet vetëm kur shërbimi kontrollon edhe kush kërkon dhe për çfarë. Pa atë kontroll është thjesht një derë më e gjerë.

NetworkManager është shembulli konkret në Linux. Udhëzuesi i konfigurimit i tij shpjegon si PolicyKit autorizon kërkesat që nuk vijnë nga root në konfigurimin e parazgjedhur. Kjo tregon autorizim të deleguar në një produkt real. Nuk provon që çdo klient komercial përdor NetworkManager, dhe nuk përshkruan rrugën e soketit ose politikën e ndonjë furnizuesi të caktuar.

Modeli është delegim me një politikë pas tij. Shembulli është një implementim i atij modeli, jo një universal.

Lexoni kufirin, jo kërkesën

Gjeni shërbimin, pronarin e konfigurimit të tij dhe ndërfaqen lokale që përdor pjesa e përparme. Pastaj pyesni cilët përdorues mund të kërkojnë cilat operacione. Të mund të ngresh dhe të ulësh një profil të ruajtur nuk është e njëjta leje si të ngarkosh një konfigurim që operatori nuk e ka shqyrtuar kurrë. Diferenca është e gjithë pyetja e sigurisë.

Filloni me menaxherin e shërbimeve dhe me pikëpamjen e klientit për lejet e tij. Komandat më poshtë tregojnë nëse demoni po ekzekutohet, çfarë mund të kërkojë thirrësi prej tij, dhe çfarë ekspozon demoni nën drejtorinë e tij të ekzekutimit.

systemctl status NetworkManager
nmcli general permissions
ls -l /run/NetworkManager

Pyesni gjithashtu se çfarë prek operacioni. Një artikull menuje që duket personal mund të ndryshojë rrugët dhe DNS-në për të gjithë makinën, që do të thotë se mund të prishë sesionet e përdoruesve të tjerë. Rrezja e ndikimit i përket të njëjtit shqyrtim si leja, dhe zakonisht ajo vendos nëse shërbimi ka nevojë për një rol më të ngushtë.

Rregulloni lejet në mënyrën e mbështetur

Bërja e një soketi kontrolli të mbrojtur të shkrueshëm nga të gjithë, ose shtimi i një llogarie në një grup administrativ të gjerë, heq një gabim leje dhe krijon një më të madh. Gabimi ishte e vetmja gjë që ju thoshte se ai kufi ekziston. Përdorni procesin e dokumentuar të anëtarësimit ose autorizimit, duke përfshirë rifreskimin e sesionit që kërkon. Anëtarësimi në grup shpesh vlen vetëm për sesione të reja hyrjeje, prandaj një ndryshim mund të duket se nuk bën asgjë deri në hyrjen tjetër.

Nëse produkti ekspozon një rol më të ngushtë për operacionin, preferojeni atë ndaj një dhënieje gjithëpërfshirëse. Shkruani rolin e zgjedhur dhe pronarin e tij pranë emrit të shërbimit.

Si duket një ndarje e mirë

Aplikacionet e zakonshme mbeten pa privilegje, shërbimi kryen vetëm konfigurimin për të cilin është projektuar, dhe çdo thirrës kontrollohet kundrejt një politike që dikush e zotëron. Ky është një dizajn i mbrojtshëm. Është gjithashtu i auditueshëm, sepse politika ka një emër të lidhur me të. Çdo gjë më e madhe meriton një përjashtim të shkruar, jo një ndryshim të heshtur lejeje.

Mënyra e dështimit është një shërbim që kryen çdo kërkesë të çdo përdoruesi lokal sepse ndërfaqja është e përshtatshme. Nga ana e përdoruesit duket identike, dhe mbart një autoritet shumë më të madh. Testoni një kërkesë të refuzuar, jo vetëm atë të suksesshmen. Një refuzim që vjen nga politika është prova se politika ekziston.

Artikuj të ngjashëm