Wyszukiwanie w witrynie

4 sposoby wyłączenia konta root w systemie Linux


Konto root to konto ostateczne w systemie Linux i innych systemach operacyjnych typu Unix. To konto ma dostęp do wszystkich poleceń i plików w systemie z pełnymi uprawnieniami do odczytu, zapisu i wykonywania. Służy do wykonywania dowolnego rodzaju zadań w systemie; aby tworzyć/aktualizować/uzyskiwać dostęp/usuwać konta innych użytkowników, instalować/usuwać/aktualizować pakiety oprogramowania i wiele więcej.

Ponieważ użytkownik root ma władzę absolutną, wszelkie czynności, które wykonuje, mają kluczowe znaczenie dla systemu. W związku z tym wszelkie błędy użytkownika root mogą mieć ogromne konsekwencje dla normalnego działania systemu. Ponadto konto to może być również nadużywane poprzez niewłaściwe lub niewłaściwe użycie go przypadkowo, złośliwie lub w wyniku wymyślonej nieznajomości zasad.

Dlatego zaleca się wyłączenie dostępu roota na serwerze Linux i zamiast tego utworzenie konta administracyjnego, które powinno zostać skonfigurowane w celu uzyskania uprawnień użytkownika root za pomocą polecenia sudo w celu wykonywania krytycznych zadań na serwerze.

W tym artykule wyjaśnimy cztery sposoby wyłączenia logowania się na konto użytkownika root w systemie Linux.

Uwaga: zanim zablokujesz dostęp do konta root, upewnij się, że utworzyłeś konto administracyjne, które może używać polecenia sudo do uzyskania roota uprawnienia użytkownika za pomocą polecenia useradd i nadaj temu użytkownikowi silne hasło. Flaga -m oznacza utworzenie katalogu domowego użytkownika, a flaga -c pozwala na podanie komentarza:

useradd -m -c "Admin User" admin
passwd admin

Następnie dodaj tego użytkownika do odpowiedniej grupy administratorów systemu za pomocą komendy usermod, gdzie przełącznik -a oznacza dołączenie konta użytkownika, a -G określa grupę, do której ma zostać dodany użytkownik in (koło lub sudo w zależności od dystrybucji Linuksa):

usermod -aG wheel admin    #CentOS/RHEL
usermod -aG sudo admin     #Debian/Ubuntu 

Po utworzeniu użytkownika z uprawnieniami administracyjnymi przełącz się na to konto, aby zablokować dostęp do konta root.

su admin

1. Zmień powłokę użytkownika root

Najprostszą metodą wyłączenia logowania użytkownika root jest zmiana jego powłoki z /bin/bash lub /bin/bash (lub dowolnej innej powłoki, która pozwala na logowanie użytkownika) na /sbin/nologin w pliku /etc/passwd, który możesz otworzyć do edycji za pomocą dowolnego ulubionego edytora wiersza poleceń, jak pokazano.

  
sudo vim /etc/passwd

Zmień linię:

root:x:0:0:root:/root:/bin/bash
to
root:x:0:0:root:/root:/sbin/nologin

Zapisz plik i zamknij go.

Odtąd, gdy użytkownik root zaloguje się, otrzyma komunikat „To konto jest obecnie niedostępne.”. Jest to wiadomość domyślna, ale możesz zmień to i ustaw niestandardowy komunikat w pliku /etc/nologin.txt.

Ta metoda jest skuteczna tylko w przypadku programów wymagających powłoki do logowania użytkownika. W przeciwnym razie klienci sudo, ftp i e-mail będą mogli uzyskać dostęp do konta root.

2. Wyłącz logowanie roota za pomocą urządzenia konsoli (TTY)

Druga metoda wykorzystuje moduł PAM o nazwie pam_securetty, który pozwala na dostęp do konta root tylko wtedy, gdy użytkownik loguje się na „bezpiecznym” TTY, ponieważ zdefiniowane przez listę w /etc/securetty.

Powyższy plik pozwala określić, na jakich urządzeniach TTY użytkownik root może się logować. Opróżnienie tego pliku uniemożliwia logowanie się roota na jakichkolwiek urządzeniach podłączonych do systemu komputerowego.

Aby utworzyć pusty plik, uruchom.

sudo mv /etc/securetty /etc/securetty.orig
sudo touch /etc/securetty
sudo chmod 600 /etc/securetty

Ta metoda ma pewne ograniczenia, wpływa tylko na programy takie jak logowanie, menedżery wyświetlania (tj. gdm, kdm i xdm) i inne usługi sieciowe, które uruchom TTY. Programy takie jak su, sudo, ssh i inne powiązane narzędzia openssh będą miały dostęp do konta root.

3. Wyłącz logowanie roota SSH

Najpopularniejszym sposobem uzyskiwania dostępu do zdalnych serwerów lub VPS jest połączenie SSH i aby zablokować logowanie użytkownika root w jego ramach, należy edytować plik /etc/ssh/sshd_config.

sudo vim /etc/ssh/sshd_config

Następnie odkomentuj (jeśli jest skomentowany) dyrektywę PermitRootLogin i ustaw jej wartość na no, jak pokazano na zrzucie ekranu.

Gdy skończysz, zapisz i zamknij plik. Następnie uruchom ponownie usługę sshd, aby zastosować ostatnią zmianę w konfiguracjach.

sudo systemctl restart sshd 
OR
sudo service sshd restart 

Jak być może już wiesz, ta metoda dotyczy tylko zestawu narzędzi openssh, programy takie jak ssh, scp, sftp zostaną zablokowane przed dostępem do konta root.

4. Ogranicz dostęp roota do usług poprzez PAM

Wyłączalne moduły uwierzytelniające (w skrócie PAM) to scentralizowana, podłączana, modułowa i elastyczna metoda uwierzytelniania w systemach Linux. PAM poprzez moduł /lib/security/pam_listfile.so pozwala na dużą elastyczność w ograniczaniu uprawnień konkretnych kont.

Powyższy moduł może zostać użyty do odniesienia się do listy użytkowników, którzy nie mogą logować się za pośrednictwem niektórych usług docelowych, takich jak logowanie, ssh i jakiekolwiek programy obsługujące PAM.

W tym przypadku chcemy wyłączyć dostęp użytkownika root do systemu, ograniczając dostęp do usług logowania i sshd. Najpierw otwórz i edytuj plik usługi docelowej w katalogu /etc/pam.d/, jak pokazano.


sudo vim /etc/pam.d/login
OR
sudo vim /etc/pam.d/sshd

Następnie dodaj poniższą konfigurację w obu plikach.

auth    required       pam_listfile.so \
        onerr=succeed  item=user  sense=deny  file=/etc/ssh/deniedusers

Kiedy skończysz, zapisz i zamknij każdy plik. Następnie utwórz zwykły plik /etc/ssh/deniedusers, który powinien zawierać po jednym elemencie w wierszu i nie powinien być czytelny dla całego świata.

Dodaj w nim nazwę root, a następnie zapisz i zamknij.

sudo vim /etc/ssh/deniedusers

Ustaw także wymagane uprawnienia w tym zakresie.

sudo chmod 600 /etc/ssh/deniedusers

Ta metoda ma wpływ tylko na programy i usługi obsługujące PAM. Możesz zablokować dostęp roota do systemu za pośrednictwem klientów FTP i poczty e-mail i nie tylko.

Więcej informacji można znaleźć na odpowiednich stronach podręcznika.

man pam_securetty
man sshd_config
man pam

To wszystko! W tym artykule wyjaśniliśmy cztery sposoby wyłączania loginu (lub konta) użytkownika root w systemie Linux. Jeśli masz jakieś uwagi, sugestie lub pytania, skontaktuj się z nami za pośrednictwem poniższego formularza opinii.