Jūsu VPN komanda darbojas bez privilēģijām; pakalpojums ne
Paroles pieprasījuma neesamība neko nepasaka par to, kas maina maršrutus. Atrodiet pakalpojumu, tā atklāto saskarni un politiku, kas nosaka, kas drīkst pieprasīt.
VPN komanda darbojas kā jūsu lietotājs, parole neparādās, un tunelis paceļas. Šī secība šķiet kā darbība bez privilēģijām, un parasti tā nav. Tīkla izmaiņas veic atsevišķs pakalpojums, un interesantais jautājums ir, ko šis pakalpojums darīs zvanītājam, kuru tas nav pārbaudījis. Paroles pieprasījumu skaitīšana neko nepasaka par šo robežu.
Saskarne, mehānisms un pārbaude
Saskarne pieņem pieprasījumus: savienot, atvienot, izvēlēties profilu. Mehānisms pārvalda tīkla darbības: saskarnes veidošanu, maršrutu maiņu, filtru piemērošanu. Autorizācijas pārbaude izlemj, vai šis zvanītājs drīkst pieprasīt šo darbību. Šie trīs var būt izkliedēti starp bināro failu, palīgu un sistēmas pakalpojumu, un lietotājs redz tikai pirmo.
Lomas var dzīvot vienā binārajā failā, divos procesos vai klientā un sistēmas pakalpojumā, un lietotāja redzamā komanda reti atklāj, kurā. Sistēmas teknes ikona un sistēmas dēmons var izskatīties kā viena lietotne, lai gan tie darbojas ar ļoti atšķirīgām pilnvarām. Privilēģija instalēšanas laikā un privilēģija pieprasījuma laikā arī ir dažādas lietas. Instalētājs, kas darbojās kā root, var atstāt pakalpojumu, kas klausās vēlākus pieprasījumus, ilgi pēc tam, kad pakotņu pārvaldnieks ir pabeidzis. Pilnvaras ir šim pakalpojumam, nevis jūsu ierakstītajai komandai.
Deleģēšana ir parastais dizains
Privilēģēta tīkla darba deleģēšana pakalpojumam ir saprātīga arhitektūra. Tā parastās lietotnes notur bez privilēģijām un centralizē darbības, kurām nepieciešama rūpība. Dizains atmaksājas tikai tad, kad pakalpojums arī pārbauda, kas un kāpēc jautā. Bez šīs pārbaudes tās ir tikai platākas durvis.
NetworkManager ir konkrētais Linux piemērs. Tā konfigurācijas rokasgrāmata skaidro, kā PolicyKit autorizē pieprasījumus, kas nav no root, noklusējuma iestatījumā. Tas parāda deleģētu autorizāciju reālā produktā. Tas nepierāda, ka katrs komerciālais klients izmanto NetworkManager, un neapraksta neviena konkrēta piegādātāja ligzdas ceļu vai politiku.
Modelis ir deleģēšana ar politiku aiz tās. Piemērs ir viena šī modeļa realizācija, nevis universāla.
Lasiet robežu, nevis pieprasījumu
Atrodiet pakalpojumu, tā konfigurācijas īpašnieku un vietējo saskarni, ko izmanto priekšpuse. Pēc tam jautājiet, kuri lietotāji drīkst pieprasīt kādas darbības. Iespēja pacelt un nolaist vienu saglabātu profilu nav tā pati atļauja kā ielādēt konfigurāciju, kuru operators nekad nav pārskatījis. Atšķirība ir viss drošības jautājums.
Sāciet ar pakalpojumu pārvaldnieku un ar paša klienta skatījumu uz savām atļaujām. Zemāk esošās komandas parāda, vai dēmons darbojas, ko zvanītājs tam drīkst pieprasīt un ko dēmons atklāj savā izpildes mapē.
systemctl status NetworkManager
nmcli general permissions
ls -l /run/NetworkManager
Jautājiet arī, ko darbība ietekmē. Personiski izskatošs izvēlnes elements var mainīt maršrutus un DNS visai mašīnai, kas nozīmē, ka tas var traucēt citu lietotāju sesijas. Ietekmes rādiuss pieder pie tās pašas pārskatīšanas kā atļauja, un tas parasti izlemj, vai pakalpojumam vajadzīga šaurāka loma.
Labojiet atļaujas atbalstītajā veidā
Aizsargātas vadības ligzdas padarīšana rakstāmu visiem, vai konta pievienošana plašai administratīvai grupai, novērš atļaujas kļūdu un rada lielāku. Kļūda bija vienīgais, kas jums teica, ka šī robeža pastāv. Izmantojiet dokumentēto dalības vai autorizācijas procesu, tostarp tā prasīto sesijas atjaunošanu. Grupas dalība bieži attiecas tikai uz jaunām pieteikšanās sesijām, tāpēc izmaiņas var šķist nekas nedarošas līdz nākamajai pieteikšanās reizei.
Ja produkts piedāvā šaurāku lomu darbībai, dodiet tai priekšroku pirms vispārējas atļaujas. Ierakstiet izvēlēto lomu un tās īpašnieku blakus pakalpojuma nosaukumam.
Kā izskatās laba sadalīšana
Parastās lietotnes paliek bez privilēģijām, pakalpojums veic tikai to iestatīšanu, kam tas tika izveidots, un katrs zvanītājs tiek pārbaudīts pret politiku, kas kādam pieder. Tas ir aizstāvams dizains. Tas ir arī auditējams, jo politikai ir tai piesaistīts nosaukums. Viss lielāks ir pelnījis rakstisku izņēmumu, nevis klusu atļauju maiņu.
Kļūmes režīms ir pakalpojums, kas izpilda jebkuru jebkura vietējā lietotāja pieprasījumu, jo saskarne ir ērta. No lietotāja puses tas izskatās identiski, un tam piemīt daudz lielākas pilnvaras. Pārbaudiet vienu noraidītu pieprasījumu, ne tikai veiksmīgo. Noraidījums, kas nāk no politikas, ir pierādījums, ka politika pastāv.