VPN-knappen trenger sudo: avgrens regelen, valider policyen
En knapp på skrivebordet er ingen grunn til root uten passord. Sjekk om nettverksbehandleren kan gjøre det selv, avgrens én kommando, og valider deretter hele sudo-policyen.
VPN-knappen virker for administratoren og feiler for alle andre, så noen legger til en linje i sudoers. Den linjen lever vanligvis lenger enn problemet den skulle løse, og den gir ofte mer enn knappen trenger. Før du redigerer policyen, sjekk om den støttede eieren av tilkoblingen allerede kan gjøre jobben. De tre vilkårene nedenfor avgjør om sudo er involvert i det hele tatt.
Vilkår 1: den støttede eieren kan gjøre det uten sudo
På de fleste Linux-skrivebord eier nettverksbehandleren allerede VPN-tilkoblinger, og autorisasjonen går via polkit i stedet for sudo. En bruker som har lov til å heise en tilkobling kan gjøre det fra kommandolinjen uten noen root-regel. Sjekk hva behandleren tillater før du antar at knappen trenger privilegium. Hvis svaret er ja, løser sudoers-endringen et problem som ikke finnes.
nmcli connection show
nmcli connection up "Work VPN"
Hvis behandleren nekter, les hvorfor: en manglende polkit-regel, en tilkobling eid av en annen bruker eller en profil lagret der brukeren ikke kan lese den. Hver av disse har en støttet løsning som er smalere enn en sudo-regel. Privilegieheving er det siste middelet, ikke det første.
Vilkår 2: regelen navngir én kjørbar fil og argumentene dens
Hvis sudo virkelig er nødvendig, bør regelen navngi den nøyaktige kommandoen og, der det er mulig, argumentene den kan bruke. En regel som lar en bruker kjøre et innpakkingsskript er bare så trygg som rettighetene til det skriptet, fordi brukeren kan redigere det root skal kjøre. En regel med et jokertegn etter kommandoen er det samme problemet i kortere form.
sudo -l -U alice
ls -l /usr/local/sbin/vpn-up
Kontroller hver sti i kommandokjeden: binæren, skriptet den kaller, konfigurasjonsfilen den leser og enhver katalog imellom. Hvis brukeren kan skrive til noen av dem, er den avgrensede regelen i praksis ubegrenset root. Argumenter betyr også noe, fordi en kommando som godtar en konfigurasjonssti kan rettes mot en fil brukeren kontrollerer. Skriv regelen for operasjonen, ikke for knappen.
Stopp hvis kommandoen trenger en brukerkontrollert fil for å virke. Da er designet feil, og ingen sudoers-syntaks gjør det trygt.
Vilkår 3: hele policyen parses, ikke bare linjen din
Valider med editoren som låser filen og kontrollerer syntaks, og valider den sammensatte policyen i stedet for et fragment. En fil som parses alene kan fortsatt bryte inkluderingsrekkefølgen eller duplisere en regel på en måte som endrer oppførselen.visudo-håndboken dokumenterer både den låsende editoren og kontrollmodusen som brukes her.
sudo visudo -c
sudo visudo -cf /etc/sudoers.d/vpn-launcher
Kontrollen rapporterer filen og linjen når den feiler, og nettopp den rapporten er den nyttige delen. Reparer den tiltenkte endringen gjennom editoren i stedet for å tvinge gjennom en kjent feil, fordi en ødelagt policy kan låse ute alle administratorer samtidig. Filer i inkluderingskatalogen trenger også eierskapet og modusen som håndboken krever, ellers blir de ignorert eller avvist. Syntaks er bare den første porten: når den er passert, les regelen på nytt og spør hva den faktisk tillater.
Stopp hvis den eneste måten å få endringen til å virke er å slå av syntakskontrollen. Det er ikke en policy, det er en driftsstans som venter på omstart.
Gjenoppretting: behold en økt som fortsatt virker
Før du lagrer, sørg for at en autorisert administrativ økt allerede er åpen og at det finnes en andre vei inn i maskinen. En sudoers-feil kan ta fra deg muligheten til å rette den, og en skrivebordsknapp er ikke den risikoen verdt. Hvis sudo allerede er ødelagt, bruk systemets dokumenterte gjenopprettingsvei i stedet for å improvisere en.
sudo -n true
id
Alternativer som pkexec avhenger av egen installasjon og policy, så de er ikke en garantert andre root-forespørsel. Hold lokal autorisasjon adskilt fra levering av VPN-hemmeligheten også: en sudo-regel kan ikke låse opp en fraværende hemmelighetsagent, og den oppfyller ikke MFA-en til gatewayen. Etter rettelsen, test den vanlige kontoen som bare utfører den tiltenkte operasjonen, og bruk deretter behandlerens vanlige kontroller.
Beslutningen slutter når du kan si hvilket vilkår som rettferdiggjorde sudo, hva regelen navngir, at hele policyen parses, og hvordan du ville gjenopprettet hvis ikke. En privilegert starter som koster deg administrativ tilgang er en dårlig handel, og den er vanligvis unngåelig.