SSH (Secure Shell) je kritický nástroj pro správu serverů na dálku, ale bez správného zabezpečení může být přístup přes SSH zneužit. Omezení přihlášení uživatelů na SSH je základním krokem ke zvýšení bezpečnosti vašeho serveru. V tomto článku si podrobně vysvětlíme konkrétní postupy a techniky, jak omezit přístup k SSH a snížit riziko neautorizovaného přístupu.
1. Zakažte přihlášení uživatele root
První a nejdůležitější krok, jak omezit SSH přístup, je zakázat přihlášení pomocí účtu root. Přímé přihlášení root uživatele představuje velké bezpečnostní riziko, protože pokud útočník získá přístup k tomuto účtu, má kompletní kontrolu nad serverem.
Jak zakázat root přihlášení:
-
Otevřete konfigurační soubor SSH:
sudo nano /etc/ssh/sshd_config
- Najděte řádek obsahující
PermitRootLogin
a změňte jeho hodnotu na no
:
PermitRootLogin no
- Uložte soubor a restartujte SSH službu:
sudo systemctl restart sshd
Tímto způsobem se znemožní přímé přihlášení root uživatele přes SSH.
2. Povolení přístupu jen pro specifické uživatele
Omezení SSH přístupu pouze na konkrétní uživatele je efektivní způsob, jak zabezpečit váš server. Můžete určit, kteří uživatelé mají oprávnění přihlašovat se přes SSH pomocí parametru AllowUsers
.
Postup:
-
Otevřete konfigurační soubor SSH:
sudo nano /etc/ssh/sshd_config
- Přidejte řádek s uživatelskými jmény, které chcete povolit:
AllowUsers uzivatel1 uzivatel2
Tímto způsobem bude přístup k SSH omezen pouze na vybrané uživatele. Pokud budete chtít povolit více uživatelů, jednoduše je přidáte na stejný řádek.
3. Použití klíčové autentizace místo hesel
Hesla jsou zranitelná vůči útokům hrubou silou. Bezpečnější alternativou je použití veřejných a privátních SSH klíčů. Klíčová autentizace zabezpečuje přístup mnohem lépe než tradiční hesla.
Jak povolit klíčovou autentizaci:
-
Nejprve vygenerujte pár SSH klíčů na klientském stroji:
ssh-keygen -t rsa -b 4096
- Následně nainstalujte veřejný klíč na serveru:
ssh-copy-id uzivatel@server
- Nakonec v konfiguračním souboru SSH zakážete přihlašování pomocí hesel:
PasswordAuthentication no
Tento krok zajistí, že se uživatelé mohou přihlašovat pouze s platným SSH klíčem, což výrazně zvyšuje úroveň zabezpečení.
4. Omezte přístup pomocí IP adres
Další účinnou metodou je omezení přístupu k SSH pouze z konkrétních IP adres. To zajistí, že k SSH serveru se mohou připojit pouze uživatelé z povolených sítí.
Postup pro konfiguraci pomocí firewallu:
-
Pokud používáte ufw (Uncomplicated Firewall), můžete povolit přístup k SSH pouze z určité IP adresy takto:
sudo ufw allow from 192.168.1.100 to any port 22
Tímto příkazem povolíte přístup na port 22 (SSH) pouze z IP adresy 192.168.1.100
.
5. Nastavte časové omezení pro neaktivní relace
Dlouho neaktivní SSH relace mohou být bezpečnostním rizikem. Proto je vhodné nastavit časový limit, po kterém bude neaktivní uživatel automaticky odhlášen.
Postup:
-
Otevřete konfigurační soubor SSH:
sudo nano /etc/ssh/sshd_config
- Přidejte nebo upravte následující řádky:
ClientAliveInterval 300
ClientAliveCountMax 0
Tato nastavení zajistí, že neaktivní relace budou automaticky ukončeny po 5 minutách nečinnosti.
6. Změňte výchozí SSH port
Útočníci často používají automatické skenování výchozího portu 22. Přesunutí SSH na jiný port může pomoci omezit počet nevyžádaných pokusů o přihlášení.
Jak změnit SSH port:
-
Otevřete konfigurační soubor SSH:
sudo nano /etc/ssh/sshd_config
- Najděte řádek
#Port 22
a odkomentujte ho (odstraňte znak #) a změňte číslo portu, např.:
Port 2222
- Po uložení souboru restartujte SSH službu:
sudo systemctl restart sshd
Mějte na paměti, že po změně portu je nutné upravit i pravidla firewallu, aby povolovala nový port.
7. Implementace dvoufaktorové autentizace (2FA)
Pro další vrstvu zabezpečení můžete implementovat dvoufaktorovou autentizaci. K tomu můžete využít například Google Authenticator nebo jiné nástroje pro generování jednorázových hesel (TOTP).
Instalace Google Authenticatoru:
-
Nainstalujte balíček:
sudo apt-get install libpam-google-authenticator
- Nastavte dvoufaktorovou autentizaci pro konkrétního uživatele:
google-authenticator
- Upravte soubor
/etc/pam.d/sshd
a přidejte řádek:
auth required pam_google_authenticator.so
- Nakonec v konfiguračním souboru SSH povolte používání výzev:
ChallengeResponseAuthentication yes
Tímto způsobem přidáte další úroveň zabezpečení k SSH přihlášení.
Omezení přihlášení uživatelů na SSH je klíčovým krokem při zabezpečení serveru. Kombinace výše uvedených technik, jako je zakázání root přihlášení, povolení přístupu pouze pro specifické uživatele, použití klíčové autentizace a implementace dvoufaktorové autentizace, významně zvýší bezpečnost vaší SSH služby. Dodržováním těchto postupů můžete efektivně chránit váš server před neoprávněným přístupem a útoky.