VPN-käsk töötab teie kasutajana, parooli ei kuvata ja tunnel tõuseb. See jada tundub õigusteta toiminguna, ja tavaliselt see seda ei ole. Võrgumuudatusi teeb eraldi teenus, ja huvitav küsimus on, mida see teenus teeb kutsuja jaoks, keda ta ei ole kontrollinud. Parooliküsimiste loendamine ei ütle teile sellest piirist midagi.

Liides, mehhanism ja kontroll

Liides võtab vastu päringuid: ühenda, katkesta, vali profiil. Mehhanism omab võrgutoiminguid: liideste loomine, marsruutide muutmine, filtrite rakendamine. Autoriseerimiskontroll otsustab, kas see kutsuja tohib seda toimingut paluda. Need kolm võivad olla jaotatud binaarfaili, abiprogrammi ja süsteemiteenuse vahel ning kasutaja näeb ainult esimest.

Rollid võivad elada ühes binaarfailis, kahes protsessis või kliendis ja süsteemiteenuses ning kasutajale nähtav käsk paljastab harva, milline. Salve ikoon ja süsteemidaemon võivad tunduda ühe rakendusena, kuigi need töötavad väga erineva volitusega. Paigaldusaja õigus ja päringuaja õigus on samuti erinevad asjad. Rootina töötanud paigaldaja võib jätta teenuse hilisemaid päringuid kuulama, kaua pärast seda, kui paketihaldur on lõpetanud. Volitus on sellel teenusel, mitte teie trükitud käsul.

Delegeerimine on tavaline disain

Privilegeeritud võrgtöö teenusele delegeerimine on mõistlik arhitektuur. See hoiab tavalised rakendused õigusteta ja koondab toimingud, mis vajavad hoolt. Disain tasub end ära ainult siis, kui teenus kontrollib ka seda, kes küsib ja milleks. Ilma selle kontrollita on see lihtsalt laiem uks.

NetworkManager on Linuxi konkreetne näide. Selle konfiguratsioonijuhend selgitab, kuidas PolicyKit autoriseerib vaikimisi seadistuses päringuid, mis ei ole rootilt. See näitab delegeeritud autoriseerimist päris tootes. See ei tõesta, et iga kommertsiaalne klient kasutab NetworkManageri, ega kirjelda ühegi konkreetse tarnija soketi teed ega poliitikat.

Muster on delegeerimine, mille taga on poliitika. Näide on selle mustri üks rakendus, mitte universaalne.

Lugege piiri, mitte päringut

Leidke teenus, selle konfiguratsiooni omanik ja kohalik liides, mida esikülg kasutab. Seejärel küsige, millised kasutajad tohivad milliseid toiminguid paluda. Ühe salvestatud profiili üles- ja allatõstmine ei ole sama luba kui konfiguratsiooni laadimine, mida operaator ei ole kunagi üle vaadanud. Erinevus on kogu turvaküsimus.

Alustage teenusehaldurist ja kliendi enda vaatest oma lubadele. Allpool olevad käsud näitavad, kas daemon töötab, mida kutsuja võib sellelt paluda ja mida daemon oma käituskataloogis pakub.

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

Küsige ka, mida toiming mõjutab. Isiklikuna näiv menüüelement võib muuta marsruute ja DNS-i kogu masina jaoks, mis tähendab, et see võib häirida teiste kasutajate sessioone. Mõjuraadius kuulub samasse ülevaatesse kui luba, ja see otsustab tavaliselt, kas teenus vajab kitsamat rolli.

Parandage lube toetatud viisil

Kaitstud juhtsokli kõigile kirjutatavaks muutmine või konto lisamine laia haldusrühma eemaldab loa vea ja loob suurema. Viga oli ainus, mis ütles teile, et see piir on olemas. Kasutage dokumenteeritud liikmelisuse või autoriseerimise protsessi, sealhulgas selle nõutavat sessiooni värskendust. Rühma liikmelisus kehtib sageli ainult uutele sisselogimissessioonidele, mistõttu võib muudatus tunduda mitte midagi tegevat kuni järgmise sisselogimiseni.

Kui toode pakub toimingu jaoks kitsamat rolli, eelistage seda üldisele lubamisele. Kirjutage valitud roll ja selle omanik teenuse nime kõrvale.

Kuidas näeb välja hea jaotus

Tavalised rakendused jäävad õigusteta, teenus teeb ainult seadistust, milleks see loodi, ja iga kutsujat kontrollitakse poliitika vastu, mille omanik on olemas. See on kaitstav disain. See on ka audititav, sest poliitikal on sellega seotud nimi. Kõik suurem väärib kirjalikku erandit, mitte vaikset loamuudatust.

Tõrkerežiim on teenus, mis täidab iga kohaliku kasutaja iga päringu, sest liides on mugav. Kasutaja poolelt näeb see välja identne ja kannab palju suuremat volitust. Testige üht tagasilükatud päringut, mitte ainult õnnestunut. Poliitikast tulev tagasilükkamine on tõestus, et poliitika on olemas.

Seotud artiklid