10 Przydatne konfiguracje sudoers do ustawiania „sudo” w Linux

10 Przydatne konfiguracje sudoers do ustawiania „sudo” w Linux

W systemie Linux i innych systemów operacyjnych UNIX, tylko źródło Użytkownik może uruchamiać wszystkie polecenia i wykonywać niektóre krytyczne operacje w systemie, takie jak instalacja i aktualizacja, usuwać pakiety, tworzyć użytkowników i grupy, modyfikować ważne pliki konfiguracyjne systemu i tak dalej.

Jednak administrator systemu, który zakłada rolę użytkownika root, może zezwolić innym normalnym użytkownikom systemu za pomocą polecenia Sudo i kilku konfiguracji na uruchamianie niektórych poleceń, a także przeprowadzanie wielu ważnych operacji systemowych, w tym tych wymienionych powyżej.

Alternatywnie, administrator systemu może udostępnić hasło użytkownika root (co nie jest zalecaną metodą), aby normalni użytkownicy systemu mieli dostęp do konta użytkownika root za pośrednictwem Su Komenda.

sudo Umożliwia dozwolonego użytkownika na wykonanie polecenia jako root (lub innego użytkownika), jak określono w zasadach bezpieczeństwa:

  1. Czyta i analizuje /etc/sudoers, Wygląda na wywołującego użytkownika i jego uprawnienia,
  2. Następnie wyświetla monitowanie użytkownika wywołującego hasło (zwykle hasło użytkownika, ale może to być hasło docelowego użytkownika. Lub można go pominąć tagiem NOPASSWD),
  3. Następnie Sudo tworzy proces dziecięcy, w którym nazywa setuid () Aby przejść do użytkownika docelowego
  4. Następnie wykonuje powłokę lub polecenie podane jako argumenty w powyższym procesie dziecka.

Poniżej znajduje się dziesięć /etc/sudoers Konfiguracje plików w celu zmodyfikowania zachowania sudo polecenie za pomocą Domyślne wpisy.

$ sudo cat /etc /sudoers 
/etc/sudoers plik
# # Ten plik musi być edytowany za pomocą polecenia „Visudo” jako root. # # Rozważ dodanie treści lokalnych w /etc /sudoers.d/ zamiast # bezpośrednio modyfikujący ten plik. # # Zobacz stronę Man, aby uzyskać szczegółowe informacje na temat napisania pliku sudoers. # Domyślnie Env_Reset Domyślnie Mail_Badpass Domyślnie Secure_Path = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" defaults logfile = "/var/log/sudo.log „domyślnie Wykład =„ zawsze ”domyślnie Badpass_Message =" Hasło jest złe, spróbuj ponownie "domyślnie PASSWD_TRIES = 5 Domyślne Obrażenia Domyślnie log_input, log_output 

Rodzaje wpisów domyślnych

Parametr domyślny, parametr_list #affect wszystkich użytkowników na dowolnym hoście [chroniony e -mail] Parametr _list, parametr_list #faftecs wszystkich użytkowników na określonych domyślnych hosta: parametr_list, parametr_LIST #FAFFECTS DECYDENTOWE Użytkownicy domyślnie domyślnie domyślnie domyślnie użytkownika!Parametr CMND_LIST, parametr_list #affects Domyślnie określone polecenie> Parametr runas_list, Parameter_List #fafts Polecenia uruchamiane jako określony użytkownik 

Dla zakresu tego przewodnika nie będziemy zerować do pierwszego rodzaju Domyślne w poniższych formach. Parametry mogą być flagami, wartościami całkowitymi, ciągami lub listami.

Należy zauważyć, że flagi są domyślnie logiczne i można je wyłączyć za pomocą '!' operator i listy mają dwóch dodatkowych operatorów przydziałów, += (Dodaj do listy) i -= (usunąć z listy).

Domyślnie parametr lub domyślnie parametr = wartość lub domyślne parametr -= wartość domyślna parametr += wartość lub domyślne !parametr 

1. Ustaw bezpieczną ścieżkę

Jest to ścieżka używana dla każdego polecenia z sudo, ma dwa import:

  1. Używane, gdy administrator systemu nie ufa użytkownikom Sudo, aby mieć zmienną środowiskową bezpiecznej ścieżki
  2. Aby oddzielić „ścieżka root” i „ścieżka użytkownika”, tylko użytkownicy zdefiniowani przez ZEPREMPT_GROUP To ustawienie nie ma wpływu.

Aby go ustawić, dodaj linię:

Domyślnie Secure_Path = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" 

2. Włącz Sudo na sesji logowania użytkowników TTY

Aby umożliwić powołanie Sudo z prawdziwego tty ale nie poprzez metody takie jak Cron Lub CGI-bin Skrypty, dodaj linię:

Domyślnie wymaga wymagania 

3. Uruchom polecenie sudo za pomocą Pty

Kilka razy atakujący mogą uruchomić złośliwy program (taki jak wirus lub złośliwe oprogramowanie) za pomocą Sudo, który ponownie rozwiewa proces w tle, który pozostał na urządzeniu terminalowym użytkownika, nawet gdy główny program zakończył wykonywanie.

Aby uniknąć takiego scenariusza, możesz skonfigurować sudo do uruchamiania innych poleceń tylko z psuedo-pty używając użyj_pty Parametr, czy rejestrowanie we/wy jest włączone, czy nie w następujący sposób:

Domyślnie używa_pty 

4. Utwórz plik dziennika sudo

Domyślnie sudo loguje się przez syslog (3). Jednak, aby określić niestandardowy plik dziennika, użyj parametru pliku dziennika, takiego jak:

Domyślnie logfile = "/var/log/sudo.dziennik" 

Aby zalogować nazwę hosta i czterocyfrowy rok w niestandardowym pliku dziennika, użyj log_host I log_year Parametry odpowiednio w następujący sposób:

Domyślnie log_host, log_year, logfile = "/var/log/sudo.dziennik" 

Poniżej znajduje się przykład niestandardowego pliku dziennika Sudo:

Utwórz niestandardowy plik dziennika Sudo

5. Log Log Sudo Wejście/wyjście

log_input I log_output Parametry umożliwiają sudo uruchomienie polecenia w pseudo-tty i rejestrowanie wszystkich wejściowych użytkowników i wszystkich wyjściowych wysyłanych na ekran na ekranie.

Domyślny katalog dziennika we/wy jest /var/log/sudo-io, A jeśli istnieje numer sekwencji sesji, jest on przechowywany w tym katalogu. Możesz określić niestandardowy katalog za pośrednictwem iolog_dir parametr.

Domyślnie log_input, log_output 

Obsługiwane są sekwencje ucieczki, takie jak %seq który rozszerza się na monotonicznie rosnącą liczbę sekwencji bazy-36, taką jak 000001, gdzie co dwa cyfry są używane do utworzenia nowego katalogu, e.G. 00/00/01 Jak w poniższym przykładzie:

$ cd/var/log/sudo-io/$ ls $ cd 00/00/01 $ ls $ cat log 
Log log sudo wyjście wejściowe

Możesz wyświetlić resztę plików w tym katalogu za pomocą polecenia CAT.

6. Użytkownicy wykładu Sudo

Aby wykładać użytkowników Sudo na temat korzystania z hasła w systemie, użyj wykład parametr jak poniżej.

Ma 3 możliwe wartości:

  1. Zawsze - zawsze wykładaj użytkownika.
  2. Raz - Wykład tylko użytkownika po raz pierwszy wykonuje polecenie Sudo (jest to używane, gdy nie jest określona wartość)
  3. Nigdy - nigdy nie wykładaj użytkownika.
 Domyślnie wykład = „Zawsze” 

Dodatkowo możesz ustawić niestandardowy plik wykładowy z Wykład_File Parametr, wpisz odpowiedni komunikat w pliku:

Domyślnie wykład_file = "/ścieżka/do/pliku" 
Użytkownicy wykładu Sudo

7. Pokaż wiadomość niestandardową, gdy wprowadzasz złe hasło sudo

Gdy użytkownik wprowadza niewłaściwe hasło, w wierszu poleceń wyświetlana jest określona wiadomość. Domyślna wiadomość brzmi „Przepraszamy, spróbuj jeszcze raz”, Możesz zmodyfikować wiadomość za pomocą Badpass_message Parametr w następujący sposób:

Domyślnie BadPass_Message = "Hasło jest złe, spróbuj ponownie" 

8. Zwiększ limit próby haseł sudo

Parametr PASSWD_TRIES służy do określenia liczby razy, gdy użytkownik może spróbować wprowadzić hasło.

Wartość domyślna to 3:

Domyślnie passwd_tries = 5 
Zwiększ próby haseł sudo

Aby ustawić limit czasu hasła (domyślnie to 5 minut) za pomocą Passwd_timeout Parametr, dodaj linię poniżej:

Domyślnie passwd_timeout = 2 

9. Pozwól Sudo cię obrażać, gdy wpisujesz złe hasło

W przypadku, gdy użytkownik wpisuje niewłaściwe hasło, Sudo wyświetli obelgi na terminalu z parametrem Obelga. To automatycznie wyłączy Badpass_message parametr.

Domyślnie zniewagi 
Obrażajmy cię, gdy wprowadź złe hasło

Czytaj więcej: Pozwól Sudo cię obrażać, gdy wprowadzisz nieprawidłowe hasło

10. Dowiedz się więcej konfiguracji sudo

Dodatkowo możesz dowiedzieć się więcej sudo Konfiguracje poleceń według odczytu: Różnica między SU i Sudo i jak skonfigurować sudo w Linux.

Otóż ​​to! Możesz udostępnić inne przydatne konfiguracje poleceń Sudo lub sztuczki i wskazówki z użytkownikami Linux za pośrednictwem sekcji komentarza poniżej.