VPN pogai vajag sudo: sašauriniet noteikumu, validējiet politiku
Darbvirsmas poga nav iemesls root bez paroles. Pārbaudiet, vai tīkla pārvaldnieks to var izdarīt pats, sašauriniet vienu komandu, pēc tam validējiet visu sudo politiku.
VPN poga strādā administratoram un neizdodas visiem pārējiem, tāpēc kāds pievieno rindu sudoers. Šī rinda parasti dzīvo ilgāk par problēmu, kuras dēļ tā tika radīta, un tā bieži piešķir vairāk, nekā pogai vajag. Pirms rediģējat politiku, pārbaudiet, vai atbalstītā savienojuma īpašnieks jau var veikt šo darbu. Trīs zemāk minētie nosacījumi izšķir, vai sudo vispār ir iesaistīts.
1. nosacījums: atbalstītais īpašnieks to var izdarīt bez sudo
Lielākajā daļā Linux darbvirszu tīkla pārvaldnieks jau pārvalda VPN savienojumus, un tā autorizācija iet caur polkit, nevis sudo. Lietotājs, kuram atļauts pacelt savienojumu, to var izdarīt no komandrindas bez jebkāda root noteikuma. Pirms pieņemat, ka pogai vajag privilēģiju, pārbaudiet, ko pārvaldnieks atļauj. Ja atbilde ir jā, sudoers izmaiņa risina problēmu, kuras nav.
nmcli connection show
nmcli connection up "Work VPN"
Ja pārvaldnieks atsakās, izlasiet kāpēc: trūkstošs polkit noteikums, cita lietotāja īpašumā esošs savienojums vai profils, kas saglabāts tur, kur lietotājs to nevar izlasīt. Katram no tiem ir atbalstīts labojums, šaurāks par sudo noteikumu. Privilēģiju paaugstināšana ir pēdējais līdzeklis, nevis pirmais.
2. nosacījums: noteikums nosauc vienu izpildāmo failu un tā argumentus
Ja sudo tiešām ir vajadzīgs, noteikumam jānosauc precīza komanda un, ja iespējams, argumenti, ko tā drīkst izmantot. Noteikums, kas ļauj lietotājam palaist ietvara skriptu, ir drošs tikai tik, cik drošas ir šī skripta tiesības, jo lietotājs var mainīt to, ko izpildīs root. Noteikums ar aizstājējzīmi pēc komandas ir tā pati problēma īsākā formā.
sudo -l -U alice
ls -l /usr/local/sbin/vpn-up
Pārbaudiet katru komandu ķēdes ceļu: bināro failu, tā izsaukto skriptu, tā lasīto konfigurācijas failu un jebkuru katalogu starp tiem. Ja kādu no tiem lietotājs var rakstīt, sašaurinātais noteikums praktiski ir neierobežots root. Svarīgi ir arī argumenti, jo komandu, kas pieņem konfigurācijas ceļu, var vērst uz failu, ko kontrolē lietotājs. Rakstiet noteikumu operācijai, nevis pogai.
Apstājieties, ja komandai darbam vajag lietotāja kontrolētu failu. Tad dizains ir nepareizs, un neviena sudoers sintakse to nepadarīs drošu.
3. nosacījums: tiek parsēta visa politika, ne tikai jūsu rinda
Validējiet ar redaktoru, kas bloķē failu un pārbauda sintaksi, un validējiet salikto politiku, nevis fragmentu. Fails, kas parsējas pats, tomēr var salauzt iekļaušanas secību vai dublēt noteikumu tā, ka mainās uzvedība.visudo rokasgrāmata dokumentē gan bloķējošo redaktoru, gan šeit izmantoto tikai pārbaudes režīmu.
sudo visudo -c
sudo visudo -cf /etc/sudoers.d/vpn-launcher
Pārbaude neizdošanās gadījumā ziņo failu un rindu, un tieši šis ziņojums ir noderīgā daļa. Labojiet paredzēto izmaiņu caur redaktoru, nevis piespiedu kārtā saglabājiet zināmu kļūdu, jo bojāta politika var vienlaikus bloķēt visus administratorus. Failiem iekļaušanas katalogā arī vajag rokasgrāmatas prasīto īpašumtiesības un režīmu, citādi tie tiks ignorēti vai noraidīti. Sintakse ir tikai pirmie vārti: pēc to pāriešanas vēlreiz izlasiet noteikumu un pajautājiet, ko tas īsti atļauj.
Apstājieties, ja vienīgais veids, kā izmaiņa darbojas, ir izslēgt sintakses pārbaudi. Tā nav politika, tā ir dīkstāve, kas gaida pārstartēšanu.
Atjaunošana: saglabājiet sesiju, kas vēl strādā
Pirms saglabājat, pārliecinieties, ka autorizēta administratīvā sesija jau ir atvērta un ka pastāv otrs ceļš uz mašīnu. sudoers kļūda var atņemt iespēju to izlabot, un darbvirsmas poga nav šī riska vērta. Ja sudo jau ir bojāts, izmantojiet sistēmas dokumentēto atjaunošanas ceļu, nevis improvizējiet savu.
sudo -n true
id
Alternatīvas, piemēram, pkexec, ir atkarīgas no savas instalācijas un politikas, tāpēc tās nav garantēts otrs root pieprasījums. Turiet vietējo autorizāciju atsevišķi arī no VPN noslēpuma piegādes: sudo noteikums nevar atvērt neesošu noslēpumu aģentu un neapmierina vārtejas MFA. Pēc labojuma pārbaudiet parasto kontu, kas veic tikai paredzēto darbību, pēc tam izmantojiet ierastos pārvaldnieka vadīklas.
Lēmums beidzas, kad varat pateikt, kurš nosacījums attaisnoja sudo, ko nosauc noteikums, ka tiek parsēta visa politika un kā jūs atjaunotu, ja ne. Privileģēts palaidējs, kas jums izmaksā administratīvo piekļuvi, ir slikts darījums, un to parasti var izvairīties.