kořen účet je konečný účet na Linuxu a dalších operačních systémech podobných Unixu. Tento účet má přístup ke všem příkazům a souborům v systému s plnými oprávněními pro čtení, zápis 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 kořen uživatel má absolutní pravomoci, veškeré akce, které provádí, jsou pro systém kritické. V tomto ohledu všechny chyby root uživatel může mít obrovské důsledky pro 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, ať už 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 na serveru provádět kritické úkoly.
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 ke rootu účet, ujistěte se, že jste vytvořili administrátorský účet, který je schopen pomocí příkazu sudo získat oprávnění uživatele root 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řipojit uživatelský účet a -G
určuje skupinu, do které se má uživatel přidat (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 právy 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) do /sbin/nologin
, v /etc/passwd soubor, který můžete otevřít pro úpravy pomocí libovolného z vašich oblíbených editorů příkazového řádku, jak je znázorněno.
$ 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 rootovat se uživatel přihlásí, zobrazí se mu zpráva „Tento účet momentálně není dostupný. ” Toto je výchozí zpráva, ale můžete ji změnit a nastavit 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 sudo , ftp a e-mail klienti mají přístup k účtu root.
2. Zakázat přihlášení uživatele root prostřednictvím zařízení konzoly (TTY)
Druhá metoda využívá PAM modul s názvem pam_securetty , který povoluje přístup root pouze v případě, že se uživatel přihlašuje pomocí „zabezpečeného“ TTY , jak je definováno v seznamu v /etc/securetty .
Výše uvedený soubor vám umožňuje určit, který TTY zařízení, ke kterým se uživatel root může přihlásit, vyprázdnění tohoto souboru zabrání přihlášení 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ávce zobrazení (např. gdm , kdm a xdm ) a další síťové služby, které spouštějí TTY. Programy jako su, sudo, ssh a další související openssh nástroje budou mít přístup k účtu root.
3. Zakázat 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 chcete-li pod ním zablokovat přihlášení uživatele root, musíte upravit /etc/ssh/sshd_config soubor.
$ sudo vim /etc/ssh/sshd_config
Poté odkomentujte (pokud je zakomentována) direktivu PermitRootLogin a nastavte jeho hodnotu na no
jak je znázorněno na snímku obrazovky.
Jakmile budete hotovi, uložte a zavřete soubor. Poté restartujte sshd službu použít poslední změnu 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. Omezit root přístup ke službám prostřednictvím PAM
Zásuvné moduly ověřování (PAM zkrátka) je centralizovaná, zásuvná, modulární a flexibilní metoda ověřování na systémech Linux. PAM prostřednictvím /lib/security/pam_listfile.so modul, 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 /etc/pam.d/ adresář, jak je znázorněno.
$ 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 světově čitelný.
Přidejte do něj kořenový název, poté jej uložte a zavřete.
$ sudo vim /etc/ssh/deniedusers
Také pro to 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 k systému přes ftp a e-mailové klienty a další.
Další informace 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 zpětné vazby níže.