VPN-komentosi toimii ilman käyttöoikeuksia; palvelu ei
Salasanakehotteen puuttuminen ei kerro mitään siitä, kuka reitit muuttaa. Etsi palvelu, sen tarjoama rajapinta ja käytäntö, joka päättää, ketkä kutsujat saavat pyytää.
VPN-komento toimii omana käyttäjänäsi, salasanaa ei kysytä ja tunneli nousee. Tämä jono tuntuu ilman käyttöoikeuksia tehtävältä toiminnalta, ja yleensä se ei ole sitä. Erillinen palvelu tekee verkkomuutokset, ja kiinnostava kysymys on, mitä tuo palvelu tekee kutsujalle, jota se ei ole varmistanut. Salasanakehotteiden laskeminen ei kerro sinulle mitään tuosta rajasta.
Rajapinta, mekanismi ja tarkistus
Rajapinta ottaa vastaan pyyntöjä: yhdistä, katkaise, valitse profiili. Mekanismi omistaa verkkotoiminnot: rajapintojen luominen, reittien muuttaminen, suodattimien käyttö. Valtuutustarkistus päättää, saako tämä kutsuja pyytää tätä toimintoa. Nämä kolme voivat jakautua binääritiedostoon, apuohjelmaan ja järjestelmäpalveluun, ja käyttäjä näkee vain ensimmäisen.
Roolit voivat elää yhdessä binääritiedostossa, kahdessa prosessissa tai asiakkaassa ja järjestelmäpalvelussa, ja käyttäjän näkemä komento paljastaa harvoin, mikä. Ilmaisinalueen kuvake ja järjestelmädaemon voivat näyttää yhdeltä sovellukselta, vaikka ne toimivat hyvin erilaisella valtuudella. Asennusaikainen käyttöoikeus ja pyyntöaikainen käyttöoikeus ovat myös eri asioita. Rootina toiminut asentaja voi jättää palvelun kuuntelemaan myöhempiä pyyntöjä kauan sen jälkeen, kun paketinhallinta on päättynyt. Valtuus on tuolla palvelulla, ei kirjoittamallasi komennolla.
Delegointi on tavallinen suunnittelu
Etuoikeutetun verkkotyön siirtäminen palvelulle on järkevä arkkitehtuuri. Se pitää tavalliset sovellukset ilman käyttöoikeuksia ja keskittää toiminnot, jotka vaativat huolellisuutta. Suunnittelu kannattaa vain, kun palvelu myös tarkistaa, kuka kysyy ja mitä varten. Ilman tuota tarkistusta se on vain leveämpi ovi.
NetworkManager on konkreettinen Linux-esimerkki. Sen kokoonpano-opas selittää, miten PolicyKit valtuuttaa muut kuin root-käyttäjän pyynnöt oletusasetuksissa. Tämä osoittaa siirretyn valtuutuksen todellisessa tuotteessa. Se ei todista, että jokainen kaupallinen asiakas käyttää NetworkManageria, eikä se kuvaa minkään tietyn toimittajan pistokepolkua tai käytäntöä.
Malli on siirtäminen, jonka takana on käytäntö. Esimerkki on yksi toteutus tuosta mallista, ei yleinen.
Lue raja, älä kehotetta
Etsi palvelu, sen kokoonpanon omistaja ja paikallinen rajapinta, jota käyttöliittymä käyttää. Kysy sitten, mitkä käyttäjät saavat pyytää mitä toimintoja. Yhden tallennetun profiilin nostaminen ja laskeminen ei ole sama lupa kuin sellaisen kokoonpanon lataaminen, jota operaattori ei ole koskaan tarkistanut. Ero on koko turvallisuuskysymys.
Aloita palvelunhallinnasta ja asiakkaan omasta näkemyksestä oikeuksiinsa. Alla olevat komennot näyttävät, onko daemon käynnissä, mitä kutsuja saa siltä pyytää ja mitä daemon tarjoaa ajoaikahakemistossaan.
systemctl status NetworkManager
nmcli general permissions
ls -l /run/NetworkManager
Kysy myös, mihin toiminto vaikuttaa. Henkilökohtaiselta näyttävä valikkokohta voi muuttaa reitit ja DNS:n koko koneelle, mikä tarkoittaa, että se voi häiritä muiden käyttäjien istuntoja. Vaikutuksen säde kuuluu samaan tarkasteluun kuin lupa, ja se yleensä päättää, tarvitseeko palvelu kapeamman roolin.
Korjaa oikeudet tuetulla tavalla
Suojatun ohjauspistokkeen tekeminen kaikkien kirjoitettavaksi tai tilin lisääminen laajaan hallintaryhmään poistaa käyttöoikeusvirheen ja luo suuremman. Virhe oli ainoa asia, joka kertoi sinulle, että raja on olemassa. Käytä dokumentoitua jäsenyys- tai valtuutusprosessia, mukaan lukien sen vaatima istunnon päivitys. Ryhmäjäsenyys koskee usein vain uusia kirjautumisistuntoja, minkä vuoksi muutos voi näyttää tekevän tyhjää seuraavaan kirjautumiseen asti.
Jos tuote tarjoaa toiminnalle kapeamman roolin, suosi sitä yleisen myönnytyksen sijaan. Kirjoita valittu rooli ja sen omistaja palvelun nimen viereen.
Miltä hyvä erottelu näyttää
Tavalliset sovellukset pysyvät ilman käyttöoikeuksia, palvelu tekee vain sen asennuksen, jota varten se on suunniteltu, ja jokainen kutsuja tarkistetaan käytäntöä vasten, jonka joku omistaa. Se on puolustettava suunnittelu. Se on myös auditoitava, koska käytäntöön on liitetty nimi. Kaikki suurempi ansaitsee kirjallisen poikkeuksen, ei hiljaista käyttöoikeusmuutosta.
Vikatila on palvelu, joka suorittaa minkä tahansa paikallisen käyttäjän minkä tahansa pyynnön, koska rajapinta on kätevä. Käyttäjän puolelta se näyttää samalta, ja se kantaa paljon suurempaa valtuutta. Testaa yksi hylätty pyyntö, älä vain onnistunutta. Käytännöstä tuleva hylkäys on todiste siitä, että käytäntö on olemassa.