Kaks kokku kleepunud vähimate õiguste retsepti ei anna rangemat juurutust. Üks mudel laseb deemonil käivituda õigustega ja laskuda pärast initsialiseerimist õigusteta kontole; teine laseb teenusehalduril käivitada see piiratud identiteedi all juba esimesest käsust. Kumbki töötab eraldi, ja kombinatsioon annab sageli teenuse, mis ei suuda kumbagi kahest tööst puhtalt teha. Ülejäänu käib otsuse järjekorras läbi.

Kaks mudelit, üks vahetuse omanik

Esimene mudel kuulub deemonile. Kogukonna OpenVPN-i valikud user ja group muudavad identiteeti pärast tunneli ja võtmete seadistamist ning persist-key koos persist-tun-ga hoiavad need ressursid hiljem kasutatavatena.

Teine mudel kuulub teenusehaldurile. systemd säte User= või Group= määrab identiteedi, mille all protsess käivitub, ja võimekuse direktiivid määravad, mida see tohib hoida. Mudelite vahel valimine on pakendamise küsimus enne, kui see on turvaküsimus, ja paketi haldaja on sellele juba vastanud. Teie ülesanne on see vastus leida, mitte kolmandat valikut välja mõelda.

Mõlemad on legitiimsed. Viga on käsitleda neid ühe disaini kihtidena, sest teine mudel võib muuta esimese identiteedivahetuse toiminguks, mida protsessil ei ole enam lubatud teha.

Otsustage, kus identiteet muutub

Kui unit käivitub juba sihtotstarbelise kontona, nõuab deemonile antud käsk minna üle teisele kontole setuid-üleminekut, mida karastatud teenus ei olnud kunagi mõeldud tegema. Tõrge ilmub käivitamisel õigusetõrkena, mitte selge poliitikasõnumina. See loeb nagu puuduv võimekus, mis suunab inimesi laiema piiranguhulga poole hoopis identiteedi küsimuse asemel.

Lugege, mida paigaldatud pakett tegelikult pakub, enne kui midagi muudate, sealhulgas selle drop-in-kataloogi. Mõned unitid jätavad deemonile omase languse meelega välja, sest haldur tegeleb sellega juba, ja mõned loodavad neile valikutele initsialiseerimisjärgseks vahetuseks. Kummagi eemaldamine ilma teadmiseta, millise mudeli te pärisite, on viis, kuidas töötav teenus lakkab käivitumast.

Kirjutage valitud mudel ühele reale: halduri-omand või deemon-omand. Iga hilisem direktiiv peab selle lausega kooskõlas olema ja segatud uniti tuleb käsitleda veana, mitte kompromissina.

Võimekused on piirid, mitte annid

Võimekuse piiranghulk ütleb, mida protsess tohib kõige rohkem hoida. See on ülempiir ja võimekuse seal loetlemine ei anna iseenesest midagi, mistõttu helde piiranghulgaga unit võib ikkagi mitte suuta tunnelit luua.

See, mis tegelikult paigutab võimekuse teenuse ümbritsevasse hulka, on AmbientCapabilities=. systemd täitmise viide dokumenteerib need kaks direktiivi eraldi ja see erinevus selgitab suuremat osa segastest võimekusnõuannetest võrgus.

Lisage võimekus alles pärast seda, kui nurjuv toiming on selle tuvastanud. Laiem piiranghulk varjab tegelikku põhjust ja jätab teenuse privilegeeritumaks, kui disain kavatses. See teeb uniti ka raskemini ülevaatatavaks, sest ülempiir ei kirjelda enam tööd. Eemaldage lisavõimekus, kui tegelik viga on parandatud.

Kaardistage volitus kogu elutsükli jooksul

Loetlege, mida protsess peab igas etapis tegema: käivitamine, püsiseisund, uuesti autentimine ja lõpetamine. Liidese loomine, marsruudi muudatused, kaitstud võtme lugemine ja abilise kutsumine ei toimu kõik samal hetkel ega samade nõuete all. Sorteerige nimekiri etapi järgi enne, kui sorteerite selle võimekuse järgi.

Püsivusvalikud säilitavad ressursse üle uuesti läbirääkimise ega anna õigusi, mida kunagi ei hoitud. Võti, mida protsess käivitamisel lugeda ei saa, jääb loetamatuks ka hiljem, mida iganes püsivuslipud ütlevad. Lipud säilitavad selle, mis juba töötas.

Kasutage sihtotstarbelist kontot, mitte jagatud kontot. OpenVPN-i arendajad hoiatavad harjumuse eest kasutada nobody üldise näitena, sest teised teenused hostis võivad juba selle konto all töötada ja isolatsioon, mille arvate endal olevat, puudub.

Kohalikku koormust muutvad funktsioonid, nagu andmekanali mahalaadimine või teisiti linkiv build, võivad nihutada, milliseid toiminguid on vaja. Vaadake kaart üle, kui pakett muutub, mitte ainult siis, kui midagi katki läheb.

Pange plaan kirja ja hoidke taastamispääs alles

Juurutuskirje peaks nimetama halduri, käivitusidentiteedi, kavandatud püsidentiteedi ja iga loa koos toiminguga, mida see nõuab. Just see kirje teeb järgmise muudatuse ülevaatatavaks, mitte eksperimentaalseks.

Hoidke konsoolipääs muutmise ajal kättesaadav, sest käivitamisel nurjuvat unitit on raske kaugelt parandada. Testige taaskäivitust ja täielikku uuesti alglaadimist, enne kui nimetate muudatuse lõpetatuks. Taaskäivituse üle elanud unit võib siiski nurjuda enne, kui võrk on üleval.

Edu on mõistetud minimaalse volitusega elutsükkel, mitte protsess, mis juhtumisi töötab mitte-juurkasutaja nime all.

Seotud artiklid