VPN-kommandoen køyrer som brukaren din, ingen passord blir viste, og tunnelen kjem opp. Den sekvensen kjennest som ein uprivilegert operasjon, og det er han vanlegvis ikkje. Ei eiga teneste utfører nettverksendringane, og det interessante spørsmålet er kva den tenesta vil gjere for ein kallar ho ikkje har stadfesta. Å telje passordførespurnader seier deg ingenting om den grensa.

Grensesnittet, mekanismen og kontrollen

Grensesnittet tek imot førespurnader: kopie til, kopie frå, velje ein profil. Mekanismen eig nettverksoperasjonane: lage grensesnitt, endre ruter, bruke filter. Autorisasjonskontrollen avgjer om denne kallaren kan be om denne handlinga. Desse tre kan vere spreidde over ei binærfil, ein hjelpar og ei systemteneste, og brukaren ser berre den første.

Rollene kan bu i éi binærfil, i to prosessar eller i ein klient og ei systemteneste, og kommandoen brukaren ser røpar sjeldan kva. Eit ikon i systemkurven og ein systemdaemon kan sjå ut som éin applikasjon medan dei køyrer med svært ulik myndigheit. Privilegium ved installasjon og privilegium ved førespurnad er også ulike ting. Ein installatør som køyrde som root kan etterlate ei teneste som lyttar etter seinare førespurnader, lenge etter at pakkehandsamaren er ferdig. Det er den tenesta, ikkje kommandoen du skreiv, som har myndigheita.

Delegering er det normale designet

Å delegere privilegert nettverksarbeid til ei teneste er den fornuftige arkitekturen. Det held vanlege applikasjonar uprivilegerte, og det sentraliserer operasjonane som treng omtanke. Designet løner seg berre når tenesta også kontrollerer kven som spør og kvifor. Utan den kontrollen er det berre ei breiare dør.

NetworkManager er det konkrete Linux-dømet. Konfigurasjonsrettleiinga forklarar korleis PolicyKit autoriserer førespurnader som ikkje er frå root i standardoppsettet. Det viser delegert autorisasjon i eit ekte produkt. Det provar ikkje at kvar kommersiell klient brukar NetworkManager, og det skildrar ikkje socket-stien eller retningslinja til nokon bestemt leverandør.

Mønsteret er delegering med ei retningslinje bak. Dømet er éin implementasjon av det mønsteret, ikkje ein universell.

Les grensa, ikkje førespurnaden

Finn tenesta, eigaren av konfigurasjonen og det lokale grensesnittet frontenden brukar. Spør så kva brukarar som kan be om kva operasjonar. Å kunne heve og senke éin lagra profil er ikkje same løyve som å laste inn konfigurasjon operatøren aldri har gått gjennom. Skilnaden er heile tryggleiksspørsmålet.

Byrja med tenestebehandsamaren og med klienten sitt eige syn på løyva sine. Kommandoane nedanfor viser om daemonen køyrer, kva kallaren kan be han om, og kva daemonen viser fram under køyretidsmappa si.

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

Spør også kva handlinga påverkar. Eit menyelement som ser personleg ut kan endre ruter og DNS for heile maskina, noko som tyder at det kan forstyrre øktene til andre brukarar. Verkeradiusen høyrer heime i same gjennomgangen som løyvet, og han avgjer vanlegvis om tenesta treng ei snevrare rolle.

Retta løyve på den støtta måten

Å gjere ein verna kontrollsocket skrivbar for alle, eller å leggje ein konto til ei brei administrativ gruppe, fjernar ein løyvefeil og skapar ein større. Feilen var det einaste som fortalde deg at den grensa fanst. Bruk den dokumenterte medlemsskaps- eller autorisasjonsprosessen, inkludert øktfornyinga han krev. Gruppemedlemskap gjeld ofte berre nye påloggingsøkter, og difor kan ei endring sjå ut til å ikkje gjere noko før neste pålogging.

Viss produktet viser fram ei snevrare rolle for operasjonen, føretrekk ho framfor ei generell tildeling. Skriv den valde rolla og eigaren av ho ved sida av tenestenamnet.

Korleis ei god oppdeling ser ut

Vanlege applikasjonar blir verande uprivilegerte, tenesta utfører berre oppsettet ho er laga for, og kvar kallar blir kontrollert mot ei retningslinje nokon eig. Det er eit forsvarleg design. Det er også reviderbart, fordi retningslinja har eit namn knytt til seg. Alt større fortener eit skriftleg unntak i staden for ei stille løyveendring.

Feilmodusen er ei teneste som utfører kvar førespurnad frå kvar lokal brukar fordi grensesnittet er praktisk. Det ser identisk ut frå brukarsida, og det ber ei mykje større myndigheit. Test éin avvist førespurnad, ikkje berre den vellukka. Ei avvising som kjem frå retningslinja er provet på at retningslinja finst.

Relaterte artiklar