GNU/Linux >> Znalost Linux >  >> Ubuntu

11 nejlepších způsobů, jak zabezpečit server SSH

SSH označuje Secure Shells, která pomáhá při bezpečném provozu síťových služeb, jako je vzdálené přihlášení k serveru, přenos souborů a další operace související se servery, přes nezabezpečenou nebo zabezpečenou síť.

Výchozí konfigurace SSH nestačí k posílení kanálu SSH; musíme nakonfigurovat další nastavení, abychom plně zvýšili jeho zabezpečení. V tomto článku se naučíme 11 metod zabezpečení vašeho ssh serveru.

Zakázání přihlášení root přes SSH server

Protože uživatel root má přístup ke všem službám na serveru, je lepší neriskovat, že systém umožní vzdálené přihlášení root. Může být příliš zranitelné, pokud je heslo prozrazeno při použití útoku hrubou silou nebo jiného nástroje pro hackování. Proto je nejlepší praxí zakázat vzdálené přihlášení root a zůstat u běžného uživatele.

Chcete-li zakázat vzdálené přihlášení root, otevřete soubor sshd_config.

$ sudo vim /etc/ssh/sshd_config

Poté nastavte „PermitRootLogin“ na no

Zakázat přihlášení uživatele root ssh.

Zakázat prázdné heslo

Některé distribuce Linuxu vytvoří uživatele bez hesel, takže může být zranitelné povolit připojení ssh s prázdnými hesly pro vzdálený přístup. Abychom tuto službu zakázali, musíme v souboru sshd_config nastavit „PermitEmptyPasswords“ na no.

PermitEmptyPasswords no

Zakázat přihlášení s prázdným heslem.

Používejte ověřování na základě veřejného klíče napříč protokolem SSH.

Důrazně se doporučuje používat ověřování na základě veřejného klíče, protože server SSH podporuje různé procesy ověřování. Hacker zkouší různé hackerské nástroje k potlačení hesla pomocí různých metod, jako je útok hrubou silou. Abychom tomu zabránili, používáme ověřování na základě veřejného klíče.

Nejprve musíme vygenerovat veřejný klíč a soukromý klíč pomocí příkazu ssh-keygen. Pro vygenerování klíče proveďte následující příkaz. V procesu budete dotázáni, kde vygenerovat ssh klíč, stiskněte Enter, pokud chcete pokračovat s výchozím nastavením. Poté budete požádáni o přístupovou frázi, která odkazuje na heslo k vašemu klíči ssh, používá silné heslo, které se skládá ze speciálního znaku, abecedy a číslic. Jakmile je heslo nastaveno, váš klíč ssh bude vygenerován v adresáři .ssh ve vašem domovském adresáři.

$ ssh-keygen -t rsa

Generování párů klíčů ssh.

Před nahráním veřejného klíče se ujistěte, že máte na vzdáleném serveru adresář .ssh, pokud si ho nevytvořte na svém domovském adresáři, poté nahrajte svůj veřejný klíč ssh na server pomocí následujícího příkazu.

$ cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'

Nahrání veřejného klíče na server.

Nyní se můžete přihlásit jako uživatel ubuntu pomocí veřejného klíče přes protokol ssh.

Ověřování založené na veřejném klíči.

Zakázat ověřování SSH přihlášení pomocí hesla

Důrazně se doporučuje používat ověřování pomocí veřejného klíče ssh pro vzdálený přístup k serveru, protože pokud není použito silné heslo, mohou být hesla vystavena útokům hrubou silou. Chcete-li deaktivovat ověřování heslem ze serveru SSH, nastavte hodnotu „PasswordAuthentication“ na ne.

PasswordAuthentication no

Změňte výchozí port SSH 22.

Ve výchozím nastavení běží SSH na portu 22 v systému. Pokud změníme standardní port SSH, může to přidat další vrstvu zabezpečení tím, že se vyhneme neobvyklému provozu na otevřeném portu. Takže, aby změna portu nebyla jednoduchá, otevřete soubor sshd_config a v sekci port nastavte požadované číslo nepoužívaného portu. V následujícím příkladu jsem nastavil port na 454.

Změňte výchozí port ssh.

Omezit přístup k přihlášení uživatelů pomocí SSH.

SSH server umožňuje všem uživatelům vzdálený přístup k serveru, ale můžeme přepsat výchozí nastavení a nastavit pouze konkrétní uživatele, aby povolili nebo zakázali vzdálený přístup přes protokol SSH. Jednoduchým způsobem vzdálený přístup ke všem přihlášením uživatelů systému vytváří možný způsob, jak se hacker dostat do našeho systému.

Chcete-li umožnit konkrétním uživatelům přihlášení přes SSH, přidejte do souboru sshd_config následující řádek.

AllowUsers user1 user2 ubuntu

A podobně můžete omezit konkrétního uživatele a umožnit ostatním přístup přes SSH přidáním následujícího řádku kódu.

DenyUsers root user3 user4

Vylepšete používání silných hesel pro uživatele/klíč SSH.

Obvykle lidé pro své přihlášení často používají jednoduchá hesla, jako je 123456, něco123, aby si hesla snadno zapamatovali. To je důvod, proč útok hrubou silou funguje perfektně, protože pokus o kontrolu hesla je moudrý ve slovníku. Abychom tomu zabránili, musíme použít heslo obsahující speciální znaky, velká a malá písmena, čísla a minimální délku hesla 8 znaků.

Konfigurace intervalu časového limitu nečinnosti

Uživatelé často ponechávají své připojení SSH nečinné po delší dobu, takže bude vysoké riziko, pokud se někdo pokusí převzít vaši relaci SSH a bude dělat, co chtějí, když uživatelé nejsou v tuto chvíli přítomni. Můžeme tedy nastavit časový limit naší přihlašovací relace po určité době nečinnosti, takže se po vypršení relace musíme znovu přihlásit. Chcete-li nastavit časový limit nečinnosti, musíme nastavit hodnotu „ClientAliveInterval“ v souboru sshd_config. V následujícím příkladu jsem nastavil hodnotu časového limitu 360, což je 6 minut.

ClientAliveInterval 360

Použít protokol SSH 2

SSH má dvě varianty protokolu SSH protokol 1 a protokol SSH 2, protokol 1 je výchozí systém, který je méně bezpečný než protokol 2, protože protokol 2 používá hromadné šifrování, robustní algoritmy a kryptografické kontroly. Pro přechod na protokol 2 musíme do souboru sshd_config přidat následující řádek.

Protokol 2

Použití ssh protokolu 2.

Nakonfigurujte limit pro pokusy o zadání hesla

Můžeme omezit počet pokusů o heslo pro přihlášení ssh, takže po omezeném počtu pokusů se spojení přeruší, což přidá další vrstvu zabezpečení, která zabrání systému před útokem botů. Abychom toho dosáhli, musíme nastavit hodnotu direktivy „MaxAuthTries“. V příkladu jsem nastavil jeho limit na 4 pokusy.

MaxAuthTries 3

Omezte pokus o přihlášení pomocí ssh.

Zakázat tunelování a přesměrování portů

Pokud nebudete používat službu tunelování a přesměrování portů, je lepší ji ponechat deaktivovanou, protože hacker by tyto služby mohl použít k prolomení vašeho systému. Chcete-li toho dosáhnout, nastavte následující hodnotu direktivy na no.

AllowAgentForwarding ne

AllowTcpForwarding no

PovoleníTunnel č

Nakonec, až bude vše nastaveno, nezapomeňte restartovat ssh server, aby se změny uplatnily

$ sudo systemctl restart ssh

Závěr

V tomto článku se naučíme některé běžné způsoby posílení SSH serverů, které pomáhají vyhnout se různým bezpečnostním rizikům. Doufám, že se vám tento článek líbí.


Ubuntu
  1. 3 způsoby, jak konfiguruji SSH pro soukromí

  2. SSH přihlášení k serveru RHEL 7 bez hesla

  3. Připojte se k serveru pomocí SSH v systému Linux nebo Mac OS X

  1. Nejlepší postupy zabezpečení OpenSSH

  2. Jednoduchý BASH skript pro instalaci serveru Ubuntu

  3. Ssh Soukromá-veřejná mapa klíčů pro klienta?

  1. 6 Doporučené postupy zabezpečení Kubernetes:Zabezpečte svou pracovní zátěž

  2. Server Ubuntu 20.04 SSH

  3. Nainstalujte SSH server Ubuntu 22.04