V dnešním díle seriálu o SSH nastavení se dozvíme, jak na konfigurační volby na straně serveru, které mohou formovat způsob, jakým server odpovídá a jaké jsou povolené typy připojení. V minulých dílech jste se mohli dozvědět, jak vygenerovat SSH klíč, jak provést základní nastavení server. Dnes si ukážeme omezení skupiny uživatelů SSH připojení a doporučíme vypnutí SSH připojení u root.

Vypnutí autentizace heslem

Pokud už máte nakonfigurované, otestované a řádně fungující SSH klíče, bude patrně dobrý nápad vypnout autentizaci heslem. Zabráníte tím jakémukoli uživateli, aby se přihlašoval s SSH pomocí hesla.

Abyste to udělali, připojte se k vzdálenému serveru a otevřete soubor /etc/ssh/sshd_config s oprávněními úrovně root nebo sudo:

sudo nano /etc/ssh/sshd_config

Uvnitř tohoto souboru vyhledejte direktivu PasswordAuthenticatio. Pokud je převedená na komentář, vraťte jí funkčnost a nastavte na „no“, čímž vypnete přihlašování heslem:

PasswordAuthentication no

Poté, co učiníte tuto změnu, soubor uložte a zavřete. Abyste provedené změny implementovali, restartuje službu SSH.

Na Ubuntu/Debian:

sudo service ssh restart

Na CentOS/Fedora:

sudo service sshd restart

Nyní se už žádné účty na systému nebudou moci přihlašovat s SSH pomocí hesel.

Změna portu, na kterém běží SSH démon

Někteří administrátoři doporučují, abyste změnili výchozí port, na kterém SSH běží. Může to pomoci snížit počet autentizačních pokusů, jimž je vystavován server od automatizovaných robotů.

Chcete-li změnit port, na kterém naslouchá SSH démon, budete se muset přihlásit do vzdáleného serveru. Otevřete na vzdáleném serveru soubor sshd_config s oprávněními root, buď tím, že se přihlásíte jako tento uživatel, nebo použijte sudo:

sudo nano /etc/ssh/sshd_config

Jakmile budete uvnitř, můžete změnit port, na kterém běží SSH tím, že najdete specifikaci Port 22 a upravíte na port, který se přejete použít. Pokud chcete například změnit port na 4444, uveďte v souboru toto číslo:

#Port 22
Port 4444

Až skončíte, soubor uložte a zavřete. Abyste změny implementovali, musíte restartovat SSH démona.

Na Ubuntu/Debian:

sudo service ssh restart

Na CentOS/Fedora:

sudo service sshd restart

Poté, co se démon restartuje, budete muset při autentizaci specifikovat číslo portu (předvedli jsme to v jedné z předchozích sekcí).

Jak omezit množinu uživatelů, kteří se mohou připojovat prostřednictvím SSH

Chcete-li explicitně určit uživatelské účty, které budou schopny se připojovat prostřednictvím SSH, je k dispozici několik různých přístupů, ve všech je však nutné editovat konfigurační soubor SSH démona.

Na vzdáleném serveru otevřete teď tento soubor s oprávněními root nebo sudo:

sudo nano /etc/ssh/sshd_config

První metoda specifikace účtů, jimž bude povoleno přihlašovat se, spočívá ve využití direktivy AllowUsers. Vyhledejte v souboru direktivu AllowUsers. Pokud v něm není, někde ji vytvořte. Za názvem direktivy vypište uživatelské účty, jimž bude povoleno přihlašovat se prostřednictvím SSH:

AllowUsers uzivatel1 uzivatel2

Soubor uložte a zavřete. Restartujte démona, abyste své změny implementovali.

Na Ubuntu/Debian:

sudo service ssh restart

Na CentOS/Fedora:

sudo service sshd restart

Jestliže se trochu vyznáte ve správě skupin (group management), můžete místo toho využít direktivu AllowGroups. Pokud to chcete udělat takhle, přidejte prostě jedinou skupinu, které má být povolen SSH přístup (za okamžik tuto skupinu vytvoříme a přidáme do ní členy):

AllowGroups sshmembers

Soubor uložte a zavřete.

Nyní můžete vytvořit systémovou skupinu (bez domovského adresáře) odpovídající skupině, kterou jste specifikovali. Napište:

sudo groupadd -r sshmembers

Dávejte pozor, abyste přidali všechny uživatelské účty, které mají být v této skupině. Dělá se to takhle:

sudo usermod -a -G sshmembers uzivatel1
sudo usermod -a -G sshmembers uzivatel2

Teď restartuje SSH démona, abyste změny implementovali.

Na Ubuntu/Debian:

sudo service ssh restart

Na CentOS/Fedora:

sudo service sshd restart

Jak vypnete přihlašování jako root?

Často se doporučuje, abyste zcela vypnuli možnost přihlašovat se prostřednictvím SSH jako root, jakmile už máte funkční nějaký SSH uživatelský účet, který má oprávnění sudo.

Chcete-li to udělat, otevřete na vzdáleném serveru konfigurační soubor SSH démona s root nebo sudo.

sudo nano /etc/ssh/sshd_config

V souboru vyhledejte direktivu PermitRootLogin. Pokud je převedená na komentář, obnovte její funkčnost a změňte její hodnotu na „no“:

PermitRootLogin no

Soubor uložte a zavřete. Abyste změny implementovali, restartuje SSH démona.

Na Ubuntu/Debian:

sudo service ssh restart

Na CentOS/Fedora:

sudo service sshd restart

Povolení přístupu root pro konkrétní příkazy

Existují případy, kdy by sice bylo žádoucí všeobecně vypnout přístup root, kdy je ale třeba občas ho zapnout, aby mohly jisté aplikace správně běžet. Jako příklad uveďme zálohovací rutiny.

To se dá docílit prostřednictvím souboru authorized_keys uživatele root. Obsahuje SSH klíče, které jsou autorizované používat tento účet.

Do souboru authorized_keys uživatele root na serveru přidejte klíč z lokálního počítače, který si přejete použít pro tento proces (doporučujeme, abyste pro každý automatický proces vytvořili nový klíč). Předvedeme to zde s příkazem ssh-copy-id, pro kopírování klíčů však můžete použít kteroukoli z metod, které probíráme v jiných sekcích:

ssh-copy-id root@remote_host

Teď se přihlaste do vzdáleného serveru. Budeme muset upravit položku v souboru authorized_keys, proto ho otevřete s přístupem root nebo sudo:

sudo nano /root/.ssh/authorized_keys

Na začátek řádku s klíčem, který jste nahráli, přidejte command=, za nímž následuje výpis definující příkaz, pro který je tento klíč platný. Musí zahrnovat úplnou cestu ke spustitelnému souboru plus jakékoli argumenty:

command="/cesta/k/prikazu arg1 arg2" ssh-rsa ...

Až skončíte, soubor uložte a zavřete.

Pak otevřete soubor sshd_config s oprávněními root nebo sudo:

sudo nano /etc/ssh/sshd_config

Najděte direktivu PermitRootLogin a změňte její hodnotu na forced-commands-only. Tím povolíte přihlašování s SSH klíčem jako root pouze tehdy, pokud byl příkaz specifikován jako platný pro tento klíč:

PermitRootLogin forced-commands-only

Soubor uložte a zavřete. Restartuje SSH démona, abyste změny implementovali.

Na Ubuntu/Debian:

sudo service ssh restart

Na CentOS/Fedora:

sudo service sshd restart

Jak se přeposílají zobrazení X aplikací na klienta

SSH démon se může nakonfigurovat tak, aby automaticky přeposílal zobrazení X aplikací na serveru na klientský stroj. Aby to mohlo fungovat správně, musí mít klient nakonfigurovaný a zapnutý nějaký X Window System (software, který umí vytvořit grafické uživatelské rozhraní, GUI).

Abyste tuto funkcionalitu zapnuli, přihlaste se do vzdáleného serveru a editujte soubor sshd_config jako root nebo s oprávněními sudo:

sudo nano /etc/ssh/sshd_config

Vyhledejte direktivu X11Forwarding. Pokud je převedená na komentář, obnovte její funkčnost, pokud je to nutné, vytvořte ji, a nastavte její hodnotu na „yes“:

X11Forwarding yes

Soubor uložte a zavřete. Restartujte SSH démona, abyste změny implementovali.

Na Ubuntu/Debian:

sudo service ssh restart

Na CentOS/Fedora:

sudo service sshd restart

Chcete-li se připojit k serveru a přeposlat zobrazení aplikace, musíte při připojování předat volbu -X z klienta:

ssh -X username@remote_host

Grafické aplikace nastartované na serveru prostřednictvím této relace by se měly zobrazit na lokálním počítači. Výkon může být o něco nižší, ale pokud jste v úzkých, může to hodně pomoci.

V příštím díle seriálu o protokolu SSH si projdeme konfigurační volby SSH připojení na straně klienta.

logo-zonercloudČlánek byl přeložen díky ZonerCloud.cz – výkonné a levné VPS servery do 55 sekund.

Zabezpečte váš server SSL certifikátem. Je to snadné. Přesvědčte se v článku 7 mýtů o SSL certifikátech na vašem serveru.

Napsal: Justin Elingwood
Přeložil RNDr. Jan Pokorný
Znění původního článku najdete zde

Creative Commons License

Žádný příspěvek v diskuzi

Odpovědět