Ve výchozím nastavení SSH umožní každému platnému uživatelskému účtu přihlásit se do vzdáleného systému, a to včetně uživatele root. Ačkoli je uživatel root nastaven na silné heslo, může pouze omezit jeho vystavení útokům hrubou silou. Ale jak bylo řečeno, pouze omezuje, stále je možný škodlivý přístup k účtu root. Vždy je tedy nejlepším postupem zakázat přihlášení uživatele root přes SSH a pro přístup ke vzdálenému systému použít účet bez privilegovaného uživatele. Jakmile získáte přístup ke vzdálenému systému jako neprivilegovaný uživatel, su -
lze použít k přepnutí na účet root. Tento tutoriál vysvětlí, jak zakázat přihlášení uživatele root přes SSH na CentOS 7.
Kroky uvedené v tomto tutoriálu vyžadují přístup root. Jako příklad je použit účet „administrator“, který by měl být nahrazen uživatelským jménem dle vašeho výběru.
Krok 1: Přihlaste se do systému jako root
uživatel. Nebojte se, budete používat root
účet pro vzdálené přihlášení pouze v tomto kroku.
Krok 2: Vytvořte alternativní uživatelský účet. Například administrator
.
[root@root ~]# adduser administrator
Krok 3: Nastavte silné heslo pro uživatelský účet vytvořený v kroku 2.
[root@root ~]# passwd administrator
Krok 4: Otevřete jiný terminál a přihlaste se do systému jako nový uživatel vytvořený v kroku 2. Tento krok vám umožní otestovat, zda nový účet funguje správně.
Krok 5: Vyzkoušejte, zda můžete přepnout na účet root.
[administrator@administrator ~]$ su -
Zadejte root
heslo k účtu a zkontrolujte, zda jste získali přístup root.
[root@root ~]# whoami root
Krok 6: Zakázat root
přihlášení uživatele přes SSH.
[root@root ~]# vi /etc/ssh/sshd_config
Krok 7: Vyhledejte '#PermitRootLogin yes'
. Ve výchozím nastavení root
přihlášení je povoleno SSH.
Krok 8: Změňte '#PermitRootLogin yes' to 'PermitRootLogin no'
Krok 9: Uložte soubor a ukončete
Krok 10: Ujistěte se, že sshd_config
neobsahuje žádné syntaktické chyby.
[root@root ~]# /usr/sbin/sshd -t [root@root ~]# echo $? 0
Výše uvedený výstup naznačuje, sshd_config
nemá žádnou chybu syntaxe. V případě, že dojde k chybě, uvidíte nenulový výstup.
Krok 11: Chcete-li si přečíst novou změnu konfigurace, restartujte SSH.
# service sshd restart
Krok 12: Ujistěte se, že root
přihlášení přes SSH je zakázáno.
ssh root@<ip-address>
Přístup by měl být odepřen i přes zadání platného hesla pro root
uživatel. To znamená, že SSH odepřel přístup k root
účet.
Krok 13: Přihlaste se jako neprivilegovaný uživatelský účet vytvořený v kroku 2.
Krok 14: V případě potřeby přepněte na root
účet, jak je uvedeno níže:
[administrator@administrator ~]$ su -
A je to! Úspěšně jste zakázali root
přihlášení do vzdáleného systému přes SSH.
Výše uvedené příkazy byly testovány na CentOS 7 a s OpenSSH_6.6.1p1