VPN-i nupp töötab administraatoril ja ebaõnnestub kõigil teistel, nii et keegi lisab sudoersesse rea. See rida elab tavaliselt kauem kui probleem, mille lahendamiseks see mõeldud oli, ja annab sageli rohkem, kui nupp vajab. Enne poliitika muutmist kontrolli, kas toetatud ühenduse omanik saab töö juba ära teha. Kolm allpool toodud tingimust otsustavad, kas sudo üldse osaleb.

Tingimus 1: toetatud omanik saab selle teha ilma sudota

Enamikus Linuxi töölaudades on võrguhaldur juba VPN-ühenduste omanik ja selle autoriseerimine käib polkit kaudu, mitte sudo kaudu. Kasutaja, kellel on lubatud ühendus üles tuua, saab seda teha käsurealt ilma ühegi root-reeglita. Kontrolli, mida haldur lubab, enne kui eeldad, et nupp vajab õigust. Kui vastus on jah, siis sudoersi muudatus lahendab probleemi, mida ei ole.

nmcli connection show
nmcli connection up "Work VPN"

Kui haldur keeldub, loe, miks: puuduv polkit-reegel, teise kasutaja omandis olev ühendus või profiil, mis on salvestatud sinna, kus kasutaja ei saa seda lugeda. Igal neist on toetatud lahendus, mis on kitsam kui sudo reegel. Õiguste tõstmine on viimane abinõu, mitte esimene.

Tingimus 2: reegel nimetab ühe käivitatava faili ja selle argumendid

Kui sudo on tõesti vajalik, peaks reegel nimetama täpse käsu ja võimaluse korral argumendid, mida see kasutada tohib. Reegel, mis lubab kasutajal käivitada ümbris-skripti, on täpselt nii turvaline kui selle skripti õigused, sest kasutaja saab muuta seda, mida root käivitab. Reegel, mille järel on metamärk, on sama probleem lühemal kujul.

sudo -l -U alice
ls -l /usr/local/sbin/vpn-up

Kontrolli iga teed käsu ahelas: binaarfaili, selle kutsutavat skripti, loetavat konfiguratsioonifaili ja iga vahepealset kataloogi. Kui kasutaja saab mõnda neist kirjutada, on piiratud reegel tegelikult piiramatu root. Argumendid on samuti olulised, sest käsku, mis võtab vastu konfiguratsioonitee, saab suunata failile, mida kasutaja kontrollib. Kirjuta reegel toimingu, mitte nupu jaoks.

Peatu, kui käsk vajab töötamiseks kasutaja kontrollitavat faili. Siis on disain vale ja ükski sudoersi süntaks ei tee seda turvaliseks.

Tingimus 3: parsitakse kogu poliitika, mitte ainult sinu rida

Valideeri redaktoriga, mis lukustab faili ja kontrollib süntaksit, ning valideeri kokkupandud poliitikat, mitte fragmenti. Fail, mis parsib iseseisvalt, võib ikkagi rikkuda kaasamise järjekorra või dubleerida reegli nii, et käitumine muutub.visudo käsiraamat dokumenteerib nii lukustava redaktori kui ka siin kasutatava ainult-kontrolli režiimi.

sudo visudo -c
sudo visudo -cf /etc/sudoers.d/vpn-launcher

Kontroll teatab ebaõnnestumisel faili ja rea ning just see aruanne on kasulik osa. Paranda kavatsetud muudatus redaktori kaudu, mitte ära salvesta jõuga teadaolevat viga, sest katkine poliitika võib korraga välja lülitada kõik administraatorid. Kaasamiskataloogi failid vajavad ka käsiraamatus nõutud omandit ja režiimi, muidu neid eiratakse või lükatakse tagasi. Süntaks on ainult esimene värav: pärast selle läbimist loe reeglit uuesti ja küsi, mida see tegelikult lubab.

Peatu, kui muudatuse tööle saamiseks tuleb süntaksi kontroll välja lülitada. See ei ole poliitika, see on katkestus, mis ootab taaskäivitust.

Taastamine: hoia alles seanss, mis veel töötab

Enne salvestamist veendu, et autoriseeritud administratiivne seanss on juba avatud ja et masinasse pääseb teist teed. Sudoersi viga võib võtta sinult võimaluse seda parandada ja töölaua nupp ei ole seda riski väärt. Kui sudo on juba katki, kasuta süsteemi dokumenteeritud taastamisteed, mitte ära improviseeri oma.

sudo -n true
id

Alternatiivid nagu pkexec sõltuvad oma paigaldusest ja poliitikast, seega ei ole need garanteeritud teine root-küsimus. Hoia kohalik autoriseerimine eraldi ka VPN-i saladuse andmisest: sudo reegel ei saa avada puuduvat saladusagenti ja ei täida lüüsi MFA-d. Pärast parandust testi tavalist kontot, mis teeb ainult kavatsetud toimingu, seejärel kasuta halduri tavalisi juhtelemente.

Otsus lõpeb, kui suudad öelda, milline tingimus õigustas sudot, mida reegel nimetab, et kogu poliitika parsitakse ja kuidas sa taastaksid, kui ei. Privilegeeritud käivitaja, mis maksab sulle administratiivse juurdepääsu, on halb tehing ja tavaliselt on seda võimalik vältida.

Seotud artiklid