Vyhledávání na webu

4 způsoby, jak zakázat účet root v systému Linux


root účet je konečný účet na Linuxu a dalších unixových operačních systémech. Tento účet má přístup ke všem příkazům a souborům v systému s plnými oprávněními ke čtení, zápisu a spouštění. Používá se k provádění jakéhokoli druhu úlohy v systému; pro vytváření/aktualizaci/přístup/mazání účtů jiných uživatelů, instalaci/odebírání/upgrade softwarových balíků a mnoho dalšího.

Protože uživatel root má absolutní pravomoci, všechny akce, které provede, jsou pro systém kritické. V tomto ohledu mohou mít jakékoli chyby uživatele root obrovský dopad na normální provoz systému. Kromě toho může být tento účet také zneužit jeho nesprávným nebo nevhodným používáním buď náhodně, se zlým úmyslem nebo v důsledku vykonstruované neznalosti zásad.

Proto je vhodné zakázat přístup root na vašem linuxovém serveru, místo toho vytvořit účet správce, který by měl být nakonfigurován tak, aby získal oprávnění uživatele root pomocí příkazu sudo, aby mohl provádět kritické úkoly na serveru.

V tomto článku vysvětlíme čtyři způsoby, jak zakázat přihlášení k uživatelskému účtu root v Linuxu.

Pozor: Než zablokujete přístup k účtu root, ujistěte se, že jste vytvořili účet správce, který umožňuje získat root pomocí příkazu sudo uživatelská oprávnění pomocí příkazu useradd a přidělte tomuto uživatelskému účtu silné heslo. Příznak -m znamená vytvořit domovský adresář uživatele a -c umožňuje zadat komentář:

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

Dále přidejte tohoto uživatele do příslušné skupiny systémových administrátorů pomocí příkazu usermod, kde přepínač -a znamená připojení uživatelského účtu a -G určuje skupinu pro přidání uživatele. in (kolečko nebo sudo v závislosti na vaší distribuci Linuxu):

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

Jakmile vytvoříte uživatele s oprávněními správce, přepněte se na tento účet, abyste zablokovali přístup root.

su admin

1. Změňte prostředí uživatele root

Nejjednodušší způsob, jak zakázat přihlášení uživatele root, je změnit jeho shell z /bin/bash nebo /bin/bash (nebo jakýkoli jiný shell, který umožňuje přihlášení uživatele) na /sbin/nologin v souboru /etc/passwd, který můžete otevřít pro úpravy pomocí libovolného ze svých oblíbených editorů příkazového řádku, jak je znázorněno na obrázku.

  
sudo vim /etc/passwd

Změňte řádek:

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

Uložte soubor a zavřete jej.

Od této chvíle, když se uživatel root přihlásí, bude dostávat zprávu „Tento účet momentálně není dostupný. “ Toto je výchozí zpráva, ale můžete změňte jej a nastavte vlastní zprávu v souboru /etc/nologin.txt.

Tato metoda je účinná pouze u programů, které vyžadují shell pro přihlášení uživatele, jinak mohou klienti sudo, ftp a e-mail přistupovat k účtu root.

2. Zakažte přihlášení uživatele root prostřednictvím zařízení konzoly (TTY)

Druhá metoda využívá modul PAM nazvaný pam_securetty, který povoluje přístup root pouze v případě, že se uživatel přihlašuje pomocí „zabezpečeného“ TTY, jako definováno výpisem v /etc/securetty.

Výše uvedený soubor vám umožňuje určit, na kterých zařízeních TTY se může uživatel root přihlásit. Vyprázdnění tohoto souboru zabrání přihlášení uživatele root na všech zařízeních připojených k počítačovému systému.

Chcete-li vytvořit prázdný soubor, spusťte.

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

Tato metoda má určitá omezení, týká se pouze programů, jako je přihlášení, správci zobrazení (tj. gdm, kdm a xdm) a další síťové služby, které spustit TTY. Programy jako su, sudo, ssh a další související nástroje openssh budou mít přístup k účtu root.

3. Zakažte přihlášení SSH root

Nejběžnější způsob přístupu ke vzdáleným serverům nebo VPS je přes SSH a pro zablokování přihlášení uživatele root pod ním musíte upravit soubor /etc/ssh/sshd_config.

sudo vim /etc/ssh/sshd_config

Poté odkomentujte (pokud je zakomentován) direktivu PermitRootLogin a nastavte její hodnotu na no, jak je znázorněno na snímku obrazovky.

Jakmile budete hotovi, uložte a zavřete soubor. Poté restartujte službu sshd, aby se použila poslední změna v konfiguracích.

sudo systemctl restart sshd 
OR
sudo service sshd restart 

Jak již možná víte, tato metoda ovlivňuje pouze sadu nástrojů openssh, programům jako ssh, scp, sftp bude zablokován přístup k účtu root.

4. Omezte přístup root ke službám prostřednictvím PAM

Pluggable Authentication Modules (zkráceně PAM) je centralizovaná, zásuvná, modulární a flexibilní metoda ověřování v systémech Linux. PAM prostřednictvím modulu /lib/security/pam_listfile.so umožňuje velkou flexibilitu při omezování oprávnění konkrétních účtů.

Výše uvedený modul lze použít jako odkaz na seznam uživatelů, kteří nemají povoleno se přihlásit prostřednictvím některých cílových služeb, jako je přihlášení, ssh a jakékoli programy podporující PAM.

V tomto případě chceme zakázat přístup uživatele root k systému omezením přístupu ke službám přihlášení a sshd. Nejprve otevřete a upravte soubor pro cílovou službu v adresáři /etc/pam.d/ podle obrázku.


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

Dále přidejte konfiguraci níže do obou souborů.

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

Až budete hotovi, uložte a zavřete každý soubor. Poté vytvořte prostý soubor /etc/ssh/deniedusers, který by měl obsahovat jednu položku na řádek a neměl by být čitelný pro celý svět.

Přidejte do něj kořen názvu, poté jej uložte a zavřete.

sudo vim /etc/ssh/deniedusers

Také u toho nastavte požadovaná oprávnění.

sudo chmod 600 /etc/ssh/deniedusers

Tato metoda ovlivní pouze programy a služby, které znají PAM. Můžete blokovat root přístup do systému přes ftp a e-mailové klienty a další.

Více informací naleznete na příslušných manuálových stránkách.

man pam_securetty
man sshd_config
man pam

To je vše! V tomto článku jsme vysvětlili čtyři způsoby, jak zakázat přihlášení (nebo účet) uživatele root v Linuxu. Máte nějaké připomínky, návrhy nebo dotazy, neváhejte nás kontaktovat prostřednictvím formuláře pro zpětnou vazbu níže.