GNU/Linux >> Znalost Linux >  >> Linux

10 praktických tipů na posílení SSH pro zabezpečení vašeho linuxového serveru

SSH je jednou z nejběžnějších metod přístupu ke vzdáleným serverům. SSH je také jedním z nejčastějších důvodů ohrožení linuxových serverů.

Nechápejte mě špatně. SSH (Secure Shell) je svým designem docela bezpečný protokol, ale to neznamená, že byste jej měli ponechat ve výchozí konfiguraci.

V tomto článku se podělím o několik praktických způsobů, jak zlepšit zabezpečení SSH, a tím zabezpečit vaše linuxové servery.

Tipy pro zabezpečení SSH na serverech Linux

Neodcházejte a slepě dodržujte všechny zde uvedené tipy na otužování SSH. Přečtěte si je všechny a poté zjistěte, které vyhovují vašim potřebám. Mějte také na paměti, že některé tipy nemusí být kompatibilní s ostatními.

Pokud například zakážete přihlašování SSH založené na hesle, není třeba hledat řešení typu Fail2Ban.

Pokud znáte základy SSH, víte, že konfigurační soubory SSH jsou umístěny na /etc/ssh/sshd_config .

Většina zde uvedených tipů pro posílení SSH bude vyžadovat úpravu tohoto konfiguračního souboru. To je důvod, proč bude dobrý nápad zálohovat původní soubor. Budete také muset restartovat službu SSH, pokud provedete nějaké změny v konfiguračním souboru SSH.

Podívejme se, jaké kroky můžete podniknout k zabezpečení serveru SSH.

1. Zakázat prázdná hesla

Ano. V Linuxu je možné mít uživatelské účty bez jakýchkoli hesel. Pokud se tito uživatelé pokusí použít SSH, nebudou potřebovat hesla ani pro přístup k serveru přes SSH.

To je bezpečnostní riziko. Měli byste zakázat používání prázdných hesel. V souboru /etc/ssh/sshd_config nezapomeňte nastavit volbu PermitEmptyPasswords na no.

PermitEmptyPasswords no

2. Změňte výchozí porty SSH

Výchozí port SSH je 22 a většina kontrol útočných skriptů je zapsána pouze kolem tohoto portu. Změna výchozího portu SSH by měla přidat další vrstvu zabezpečení, protože se může snížit počet útoků (přicházejících na port 22).

Vyhledejte informace o portu v konfiguračním souboru a změňte je na něco jiného:

Port 2345

Musíte si zapamatovat nebo poznamenat číslo portu, jinak také nebudete mít přístup ke svým serverům pomocí SSH.

3. Zakázat přihlášení root přes SSH

Abych byl upřímný, používání serveru jako root samotného by mělo být zakázáno. Je to riskantní a nezanechává žádnou auditní stopu. Mechanismus jako sudo existuje pouze z tohoto důvodu.

Pokud máte ve svém systému přidány uživatele sudo, měli byste tohoto uživatele sudo použít pro přístup k serveru přes SSH namísto root.

Přihlášení uživatele root můžete zakázat úpravou možnosti PermitRootLogin a jejím nastavením jako ne:

PermitRootLogin no

4. Zakázat protokol ssh 1

To je, pokud používáte starší distribuci Linuxu. Některé starší verze SSH mohou mít stále dostupný protokol SSH 1. Tento protokol má známé chyby zabezpečení a nesmí být používán.

Novější verze SSH mají automaticky povolený protokol SSH 2, ale není na škodu jej dvakrát zkontrolovat.

Protocol 2

5. Nakonfigurujte interval časového limitu nečinnosti

Interval časového limitu nečinnosti je doba, po kterou může připojení SSH zůstat aktivní bez jakékoli aktivity. Takové nečinné relace jsou také bezpečnostním rizikem. Je vhodné nakonfigurovat interval časového limitu nečinnosti.

Interval časového limitu se počítá v sekundách a ve výchozím nastavení je 0. Můžete jej změnit na 300, abyste zachovali pětiminutový časový limit.

ClientAliveInterval 300

Po tomto intervalu SSH server odešle klientovi živou zprávu. Pokud neobdrží odpověď, připojení bude ukončeno a koncový uživatel bude odhlášen.

Můžete také určit, kolikrát odešle živou zprávu před odpojením:

ClientAliveCountMax 2

6. Povolit přístup SSH pouze vybraným uživatelům

Pokud jde o bezpečnost, měli byste se řídit zásadou nejmenšího privilegia. Neudělujte práva, když to není vyžadováno.

Pravděpodobně máte ve svém systému Linux několik uživatelů. Potřebujete všem povolit přístup SSH? Možná ne.

Zde by bylo možné povolit přístup SSH vybraným několika uživatelům, a tím omezit všechny ostatní uživatele.

AllowUsers User1 User2

Můžete také přidat vybrané uživatele do nové skupiny a povolit pouze této skupině přístup k SSH.

AllowGroups ssh_group

Můžete také použít DenyUsers a DenyGroups k odepření přístupu SSH určitým uživatelům a skupinám.

7. Zakázat X11 Forwarding

X11 nebo X display server je základní framework pro grafické prostředí. Přesměrování X11 vám umožňuje používat GUI aplikaci přes SSH.

Klient v zásadě spouští GUI aplikaci na serveru, ale díky X11 forwardingu se mezi stroji otevře kanál a GUI aplikace se zobrazí na klientském stroji.

Protokol X11 není orientován na bezpečnost. Pokud to nepotřebujete, měli byste deaktivovat předávání X11 v SSH.

X11Forwarding no

8. Automaticky zmírněte útoky hrubou silou

Chcete-li zabránit útokům SSH bruteforce, můžete použít bezpečnostní nástroj, jako je Fail2Ban.

Fail2Ban kontroluje neúspěšné pokusy o přihlášení z různých IP adres. Pokud tyto špatné pokusy překročí prahovou hodnotu v nastaveném časovém intervalu, zakáže IP přístup k SSH na určitou dobu.

Všechny tyto parametry můžete nakonfigurovat podle svých představ a požadavků. Napsal jsem podrobného úvodního průvodce používáním Fail2Ban, který byste si měli přečíst.

9. Zakázat přihlašování SSH pomocí hesla

Bez ohledu na to, jak moc se snažíte, vždy uvidíte špatné pokusy o přihlášení přes SSH na vašem linuxovém serveru. Útočníci jsou chytří a skripty, které používají, se často starají o výchozí nastavení nástrojů typu Fail2Ban.

Abyste se zbavili neustálých útoků hrubou silou, můžete se rozhodnout pro přihlášení pouze pomocí klíče SSH.

V tomto přístupu přidáte veřejný klíč vzdálených klientských systémů do seznamu známých klíčů na serveru SSH. Tímto způsobem mohou tyto klientské počítače přistupovat k SSH bez zadání hesla uživatelského účtu.

Když máte toto nastavení, můžete zakázat přihlášení SSH založené na hesle. Nyní mohou k serveru přes SSH přistupovat pouze klientské počítače, které mají zadané klíče SSH.

Než použijete tento přístup, ujistěte se, že jste na server přidali svůj vlastní veřejný klíč a funguje. Jinak se uzamknete a můžete ztratit přístup ke vzdálenému serveru, zvláště pokud používáte cloudový server, jako je Linode, kde nemáte fyzický přístup k serveru.

Přečtěte si tento podrobný návod, kde se dozvíte, jak deaktivovat ověřování SSH založené na hesle.

10. Dvoufaktorová autentizace pomocí SSH

Chcete-li posunout zabezpečení SSH na další úroveň, můžete také povolit dvoufaktorové ověřování. V tomto přístupu obdržíte jednorázové heslo na svůj mobilní telefon, e-mail nebo prostřednictvím aplikace třetí strany pro ověřování.

O nastavení dvoufaktorové autentizace pomocí SSH si můžete přečíst zde.

Závěr

Všechny parametry vašeho SSH serveru můžete zobrazit pomocí tohoto příkazu:

sshd -T

Tímto způsobem můžete snadno zjistit, zda potřebujete změnit nějaký parametr, abyste zvýšili zabezpečení serveru SSH.

Měli byste také udržovat instalaci SSH a systém aktualizované.

Uvedl jsem několik praktických způsobů kalení SSH. Samozřejmě může existovat několik dalších způsobů, jak zabezpečit SSH a váš Linux server. Není možné je všechny vyjmenovat v jednom článku.

Doufám, že vám tyto tipy pomohou. Dejte mi vědět, které tipy považujete za užitečné.

Znáte nějaké další tipy na zabezpečení SSH? Proč se o to s námi nepodělit v sekci komentářů?


Linux
  1. 9 věcí, které musíte udělat během prvních 10 minut na serveru Linux

  2. 7 kroků k zabezpečení serveru Linux

  3. Zabezpečte svůj Linuxový server pomocí Fail2Ban [Příručka pro začátečníky]

  1. Jak na SSH na Linuxu z Androidu

  2. 6 nezbytných nástrojů s otevřeným zdrojovým kódem pro zabezpečení vašeho linuxového serveru

  3. Jak nastavit SSH bez hesla v systému Linux

  1. Monitorujte svůj Linux server pomocí Checkmk

  2. 10 tipů, jak zabezpečit webový server Apache v systému UNIX / Linux

  3. Příkaz Linuxu, který čeká na spuštění serveru SSH