Ve výchozím nastavení mohou všichni uživatelé SSH do systému s platným heslem/veřejným klíčem. Pro určité vyhrazené servery se specifickými rolemi, jako je FTP server, e-mailový server atd.; obvykle se doporučuje zakázat přihlášení přes SSH uživatelům bez oprávnění root. Příspěvek podrobně popisuje kroky, jak zakázat přístup k systémům přihlášení ssh uživatele bez oprávnění root. Zde jsou diskutovány 3 různé způsoby. Každý ze tří níže uvedených způsobů může dosáhnout účelu.
Metoda 1 – pomocí souboru /etc/ssh/sshd_config
Tuto metodu lze použít k tomu, aby se několik uživatelů mohlo přihlásit pomocí SSH. Upravte soubor /etc/ssh/sshd_config (Konfigurační soubor démona OpenSSH SSH) a přidejte klíčové slovo AllowUsers s argumentem root .
# vi /etc/ssh/sshd_config AllowUsers rootPoznámka :klíčová slova nerozlišují malá a velká písmena a také argumenty nerozlišují malá a velká písmena.
Nyní restartujte službu sshd:
# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
Ověřte, že uživatelé bez oprávnění root se nemohou přihlásit přes SSH, ale uživatel root ano.
# ssh test@host1 test@host1's password: Permission denied, please try again. test@host1's password: Permission denied, please try again. test@host1's password: Permission denied (publickey,gssapi-with-mic,password).# ssh root@host1 root@host1's password: Last login: Wed Sep 13 10:47:14 2017 from 10.10.10.10 [root@host1 ~]#Metoda 2 – pomocí souboru /etc/nologin
Toto je nejrychlejší způsob, jak zablokovat přihlášení SSH všem uživatelům bez oprávnění root.
1. Vytvořte soubor /etc/nologin na vzdáleném hostiteli.
# touch /etc/nologin # ls -lrt /etc/nologin -rw-r--r-- 1 root root 0 Sep 13 13:23 /etc/nologinPoznámka :Pokud tento soubor existuje, pouze uživatel root se může přihlásit do systému přes SSH. Pokud je soubor /etc/nologin.txt existuje, nologin zobrazí uživateli jeho obsah místo výchozí zprávy.Ujistěte se, že níže uvedený řádek je v souboru /etc/pam.d/sshd :
account required pam_nologin.soNote: backup the file /etc/pam.d/sshd before modifying it.Poté restartujte službu sshd:
# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]Ověřte přihlašovací SSH uživatele jiného než root:
# ssh test@host1 test@host1's password: Connection closed by 192.168.10.10Metoda 3 – pomocí souboru /etc/sshd/sshd.allow
Soubor /etc/sshd/sshd.allow se používá k zadání seznamu uživatelů, kterým chceme udělit ssh přístup. Pokud v tomto souboru zmíníme pouze root uživatele, bude všem ostatním uživatelům odepřen přístup ssh k hostiteli.
1. Přidejte uživatele root do souboru /etc/sshd/sshd.allow (pokud adresář/soubor neexistuje, vytvořte jej ručně).
# cat /etc/sshd/sshd.allow root2. Nahraďte auth line, jak je uvedeno níže v souboru /etc/pam.d/sshd :
auth required pam_listfile.so item=user sense=allow file=/etc/sshd/sshd.allow onerr=failZde
požadováno ověření pam_listfile.so :Název modulu vyžadovaného při ověřování uživatelů.
item=user :Zkontrolujte uživatelské jméno položky.
sense=allow :Povolit uživatele.
file=/etc/sshd/sshd.allow :Soubor seznamu uživatelů.
onerr=fail :Pokud uživatelské jméno není v souboru, neumožní přihlášení.3. Jakmile provedete všechny výše uvedené změny, restartujte službu sshd.
# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]4. Ověřte přihlašovací SSH uživatele jiného než root:
# ssh test@host1 test@host1's password: Permission denied, please try again. test@host1's password: Permission denied, please try again. test@host1's password: Permission denied (publickey,gssapi-with-mic,password).Také ověřte, zda můžete ssh s uživatelem root:
# ssh root@host1 ssh root@host1's password: Last login: Wed Sep 13 14:53:47 2017 from 10.10.10.10 [root@host1 ~]#
CentOS / RHEL :Jak nakonfigurovat vsftpd pro použití jiných portů než výchozích portů 20 a 21 Jak zablokovat uživatele bez oprávnění root ve vytváření záznamu crontab v LinuxuLinux