10 noderīgas Sudoers konfigurācijas sudo iestatīšanai Linux


Linux un citās Unix līdzīgās operētājsistēmās tikai saknes lietotājs var izpildīt visas komandas un veikt noteiktas kritiskas darbības sistēmā, piemēram, instalēt un atjaunināt, noņemt paketes, izveidot lietotājus un grupas, modificēt svarīgus sistēmas konfigurācijas failus un tā tālāk.

Tomēr sistēmas administrators, kurš uzņemas root lietotāja lomu, ar sudo komandas un dažu konfigurāciju palīdzību var atļaut citiem parastajiem sistēmas lietotājiem palaist dažas komandas, kā arī veikt vairākas svarīgas sistēmas darbības, ieskaitot iepriekš minētās.

Alternatīvi, sistēmas administrators var koplietot root lietotāja paroli (kas nav ieteicama metode), lai parastajiem sistēmas lietotājiem būtu piekļuve root lietotāja kontam, izmantojot komandu su.

sudo ļauj atļautam lietotājam izpildīt komandu kā root (vai citu lietotāju), kā noteikts drošības politikā:

  1. Tas lasa un parsē/etc/sudoers, meklē izsaucošo lietotāju un tā atļaujas
  2. pēc tam aicinot lietotāju pieprasīt paroli (parasti lietotāja parole, bet tā var būt arī mērķa lietotāja parole. Vai arī to var izlaist ar NOPASSWD tagu),
  3. pēc tam sudo izveido bērnu procesu, kurā tas izsauc setuid(), lai pārslēgtos uz mērķa lietotāju
  4. pēc tam tas izpilda čaulu vai komandu, kas tiek dota kā argumenti iepriekš minētajā bērna procesā.

Zemāk ir desmit/etc/sudoers failu konfigurācijas, lai modificētu sudo komandas darbību, izmantojot ierakstus Noklusējumi.

$ sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults	env_reset
Defaults	mail_badpass
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults	logfile="/var/log/sudo.log"
Defaults	lecture="always"
Defaults	badpass_message="Password is wrong, please try again"
Defaults	passwd_tries=5
Defaults	insults
Defaults	log_input,log_output
Defaults                parameter,   parameter_list     #affect all users on any host
[email _List      parameter,   parameter_list     #affects all users on a specific host
Defaults:User_List      parameter,   parameter_list     #affects a specific user
Defaults!Cmnd_List      parameter,   parameter_list     #affects  a specific command 
Defaults>Runas_List     parameter,   parameter_list     #affects commands being run as a specific user

Šīs rokasgrāmatas darbības jomā mēs noklusēsim pirmo noklusējuma veidu zemāk esošajās veidlapās. Parametri var būt karodziņi, veselu skaitļu vērtības, virknes vai saraksti.

Jums jāņem vērā, ka karodziņi ir netieši logi, un tos var izslēgt, izmantojot operatoru ! , un sarakstos ir divi papildu piešķiršanas operatori: + = (pievienot sarakstam) un - = (noņemt no saraksta).

Defaults     parameter
OR
Defaults     parameter=value
OR
Defaults     parameter -=value   
Defaults     parameter +=value  
OR
Defaults     !parameter       

1. Iestatiet drošu ceļu

Šis ir ceļš, kas tiek izmantots katrai komandai, kas palaista ar sudo, un tai ir divas nozīmes:

  1. Izmanto, ja sistēmas administrators neuzticas sudo lietotājiem, ka viņiem ir drošs PATH vides mainīgais
  2. Lai atdalītu “saknes ceļu” un “lietotāja ceļu”, šis iestatījums neietekmē tikai lietotājus, kurus definē atbrīvošanas grupa.

Lai to iestatītu, pievienojiet rindiņu:

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

2. Iespējojiet sudo TTY lietotāja pieteikšanās sesijā

Lai iespējotu sudo izsaukšanu no reāla tty, bet ne ar tādām metodēm kā cron vai cgi-bin skripti, pievienojiet rindiņu:

Defaults  requiretty   

3. Palaidiet komandu Sudo, izmantojot pty

Dažas reizes uzbrucēji var palaist ļaunprātīgu programmu (piemēram, vīrusu vai ļaunprātīgu programmatūru), izmantojot sudo, kas atkal dublētu fona procesu, kas paliek lietotāja gala ierīcē pat tad, kad galvenā programma ir pabeigta.

Lai izvairītos no šāda scenārija, varat konfigurēt sudo, lai citas komandas palaistu tikai no psuedo-pty, izmantojot parametru use_pty neatkarīgi no tā, vai I/O reģistrēšana ir ieslēgta vai nav:

Defaults  use_pty

4. Izveidojiet Sudo žurnāla failu

Pēc noklusējuma sudo piesakās caur syslog (3). Tomēr, lai norādītu pielāgotu žurnāla failu, izmantojiet parametru logfile šādi:

Defaults  logfile="/var/log/sudo.log"

Lai reģistrētu resursdatora nosaukumu un četrciparu gadu pielāgotā žurnāla failā, izmantojiet parametrus log_host un log_year attiecīgi šādi:

Defaults  log_host, log_year, logfile="/var/log/sudo.log"

Zemāk ir pielāgota sudo žurnāla faila piemērs:

5. Reģistrējiet Sudo komandu ievadi/izvadi

Log_input un log_output parametri ļauj sudo palaist komandu pseido-tty un reģistrēt visu lietotāja ievadi un visu izvadi, kas nosūtīts uz ekrānu.

Noklusējuma I/O žurnāla direktorija ir/var/log/sudo-io, un, ja ir sesijas kārtas numurs, tas tiek saglabāts šajā direktorijā. Izmantojot parametru iolog_dir, varat norādīt pielāgotu direktoriju.

Defaults   log_input, log_output

Ir dažas atbalstītas evakuācijas sekvences, piemēram, % {seq} , kas paplašinās līdz monotoniski augošam bāzes 36 kārtas skaitlim, piemēram, 000001, kur ik pēc diviem cipariem tiek izveidots jauns katalogs, piem. 00/00/01, kā parādīts zemāk esošajā piemērā:

$ cd /var/log/sudo-io/
$ ls
$ cd  00/00/01
$ ls
$ cat log

Pārējos failus šajā direktorijā varat apskatīt, izmantojot komandu cat.

6. Lekcijas Sudo lietotāji

Lai lasītu sudo lietotājiem lekcijas par paroles lietošanu sistēmā, izmantojiet lekcijas parametru, kā norādīts zemāk.

Tam ir 3 iespējamās vērtības:

  1. vienmēr - vienmēr lasiet lekciju lietotājam.
  2. vienu reizi - lekciju lietotājam veic tikai pirmo reizi, kad viņš izpilda sudo komandu (to izmanto, ja nav norādīta vērtība)
  3. nekad - nekad nelasiet lietotāju.

 
Defaults  lecture="always"

Turklāt jūs varat iestatīt pielāgotu lekcijas failu ar parametru lecture_file, ierakstiet failā atbilstošo ziņojumu:

Defaults  lecture_file="/path/to/file"

7. Parādiet pielāgotu ziņojumu, ievadot nepareizu sudo paroli

Kad lietotājs ievada nepareizu paroli, komandrindā tiek parādīts noteikts ziņojums. Noklusējuma ziņojums ir “atvainojiet, mēģiniet vēlreiz”. Jūs varat modificēt ziņojumu, izmantojot parametru badpass_message šādi:

Defaults  badpass_message="Password is wrong, please try again"

8. Palieliniet sudo paroli mēģina ierobežot

Parametru passwd_tries izmanto, lai norādītu, cik reižu lietotājs var mēģināt ievadīt paroli.

Noklusējuma vērtība ir 3:

Defaults   passwd_tries=5 

Lai iestatītu paroles noildzi (noklusējums ir 5 minūtes), izmantojot parametru passwd_timeout, pievienojiet zemāk esošo rindu:

Defaults   passwd_timeout=2

9. Ļaujiet Sudo tevi apvainot, ievadot nepareizu paroli

Gadījumā, ja lietotājs ievadīs nepareizu paroli, sudo terminālā parādīs apvainojumus ar parametru apvainojumi. Tas automātiski izslēgs parametru badpass_message.

Defaults  insults 

Lasīt vairāk: Ļaujiet Sudo tevi apvainot, ievadot nepareizu paroli

10. Uzziniet vairāk Sudo konfigurācijas

Turklāt jūs varat uzzināt vairāk sudo komandu konfigurācijas, lasot: Atšķirība starp su un sudo un Kā konfigurēt sudo Linux.

Tieši tā! Izmantojot tālāk sniegto komentāru sadaļu, ar Linux lietotājiem varat kopīgot citas noderīgas sudo komandu konfigurācijas vai trikus un padomus.