GNU/Linux >> Znalost Linux >  >> Linux

3 způsoby, jak konfiguruji SSH pro soukromí

SSH (Secure Shell) je protokol, který vám umožňuje vytvořit ověřené a soukromé připojení, zabezpečit kanál pomocí kryptografických klíčů a spustit vzdálený shell na jiném počítači. Pomocí tohoto připojení můžete provádět vzdálené příkazy, spouštět zabezpečené přenosy souborů, předávat sokety a displeje a služby a mnoho dalšího.

Než se objevil SSH, většina vzdálené správy se prováděla přes telnet, a abych byl spravedlivý, jakmile jste mohli vytvořit vzdálenou relaci, mohli jste dělat prakticky cokoli, co potřebujete. Problém s tímto protokolem byl v tom, že provoz procházel nešifrovaný jako čistý prostý text. K zobrazení všech paketů v rámci relace, včetně těch, které obsahují uživatelské jméno a heslo, nebylo potřeba mnoho úsilí použít sniffer provozu.

S SSH jsou díky použití asymetrických klíčů relace mezi zařízeními zapojenými do komunikace šifrovány. A v dnešní době je to důležitější než kdy jindy, protože všechny cloudové servery jsou spravovány z celého světa.

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

3 tipy pro konfiguraci SSH

Nejběžnější implementací protokolu SSH je OpenSSH, vyvinutý projektem OpenBSD a dostupný pro většinu operačních systémů Linux a Unix. Po instalaci tohoto balíčku máte soubor s názvem sshd_config který řídí většinu chování služby. Výchozí nastavení jsou obecně velmi konzervativní, ale mám tendenci provádět určité úpravy, abych optimalizoval své prostředí SSH a chránil své servery před neoprávněným přístupem.

1. Změňte výchozí port 

To je ten, který si ne všichni správci pamatují. Každý, kdo má skener portů, může objevit port SSH i poté, co jste jej přesunuli, takže se stěží vyhnete nebezpečí, ale pohodlně se vyhnete stovkám jednoduchých skriptů spouštěných proti vašemu serveru. Je to laskavost, kterou můžete udělat sami, abyste ze svých protokolů odstranili značné množství hluku.

Pro tento článek jsem měl výchozí port SSH serveru TCP 22 přes jednoho poskytovatele cloudu a průměrné útoky za minutu byly 24. Po změně portu na mnohem vyšší číslo, TCP 45678, byl průměr lidí, kteří se připojovali a hádali jakékoli uživatelské jméno nebo heslo bylo dvě za den.

Chcete-li změnit výchozí port pro SSH, otevřete /etc/ssh/sshd_config ve svém oblíbeném textovém editoru a změňte hodnotu Port   od 22 do nějakého čísla většího než 1024. Řádek může být okomentován, protože 22 je výchozí (takže nemusí být explicitně deklarováno v konfiguraci), takže před uložením odkomentujte řádek.

#Port 22122
#AddressFamily any 
#ListenAddress 0.0.0.0 
#ListenAddress ::

Jakmile změníte port a uložíte soubor, restartujte server SSH:

$ sudo systemctl restart sshd

2. Už žádná hesla

Existuje obecný trend přestat používat hesla jako prostředek autentizace, přičemž metody, jako je dvoufaktorová autentizace, získávají na popularitě. OpenSSH se může autentizovat pomocí asymetrických klíčů, takže si není třeba pamatovat složitá hesla, natož je každých pár měsíců střídat, nebo se bát, že někdo „surfoval přes rameno“, když jste navazovali vaši vzdálenou relaci. Použití klíčů SSH vám umožní rychle a bezpečně se přihlásit ke vzdálenému zařízení. To často znamená méně času na zpracování nesprávných uživatelských jmen a hesel pro samotný server. Přihlášení je příjemně jednoduché. Když není žádný klíč, není tam žádný záznam – dokonce ani výzva.

Chcete-li použít tuto funkci, musíte nakonfigurovat klienta (počítač fyzicky před vámi) i server (vzdálený počítač).

Na klientském počítači musíte vygenerovat pár klíčů SSH. Ten se skládá z veřejného a soukromého klíče. Jak jejich názvy napovídají, jeden klíč je určen k distribuci na servery, ke kterým se chcete přihlásit, a druhý je soukromý a nesmí být sdílen s nikým. Vytvořte nový klíč pomocí ssh-keygen a použijte -t možnost zadat dobrou, aktuální kryptografickou knihovnu jako ed25519 :

$ ssh-keygen -t ed25519    
 Generating public/private ed25519 key pair. 
 Enter file in which to save the key (~/.ssh/id_ed25519):

Během vytváření klíče budete vyzváni k zadání názvu souboru. Můžete stisknout Návrat přijmout výchozí nastavení. Pokud v budoucnu vytvoříte více klíčů, můžete každému přiřadit vlastní název, ale mít více klíčů znamená určit, který klíč chcete použít pro každou interakci, takže prozatím přijměte výchozí nastavení.

Svému klíči můžete také dát přístupovou frázi. Tím je zajištěno, že i když se někomu jinému podaří získat váš soukromý klíč (což by se samo o sobě nikdy nemělo stát), nebude jej moci použít bez vaší přístupové fráze. Je to užitečná ochrana pro některé klíče, zatímco pro jiné to není vhodné (zejména pro ty, které se používají ve skriptech). Stiskněte Návrat ponechat váš klíč bez přístupové fráze nebo vytvořit přístupovou frázi, pokud chcete.

Chcete-li zkopírovat klíč na server, použijte ssh-copy-id příkaz. Pokud například vlastním server s názvem example.com , pak do něj mohu zkopírovat svůj veřejný klíč pomocí tohoto příkazu:

$ ssh-copy-id [email protected]

Tím se vytvoří nebo upraví soubor authorized_keys v .ssh serveru adresář s vaším veřejným klíčem.

Jakmile je ssh-copy-id příkaz potvrdil, co provedl, zkuste se přihlásit ze svého počítače, abyste ověřili, že se můžete přihlásit bez hesla (nebo pomocí přístupové fráze vašeho klíče, pokud se rozhodnete nějaké používat).

Jakmile budete na serveru bez použití hesla účtu serveru, upravte sshd_config serveru a nastavte PasswordAuthentication na no .

PasswordAuthentication no

Restartujte ssh služba pro načtení nové konfigurace:

$ sudo systemctl restart sshd

3. Rozhodněte, kdo se může přihlásit

Většina distribucí neumožňuje uživateli root přihlásit se přes SSH, což zajišťuje, že jsou aktivní pouze neprivilegované účty, pomocí sudo příkaz k eskalaci oprávnění podle potřeby. To zabraňuje jednomu pozoruhodnému a bolestně zřejmému cíli (kořenu) v jednoduchých, ale až příliš běžných skriptovaných útokech.

Podobně jednoduchou a výkonnou funkcí OpenSSH je možnost rozhodnout, kteří uživatelé se mohou přihlásit do počítače. Chcete-li nastavit, kteří uživatelé dostanou udělený přístup SSH, otevřete sshd_config soubor ve vašem oblíbeném textovém editoru a přidejte řádek jako tento:

AllowUsers jgarrido jane tux

Restartujte službu SSH, aby se načetly nové možnosti konfigurace.

To umožňuje pouze třem uživatelům (jgarrido, jane a tux) přihlásit se nebo provádět jakoukoli operaci na vzdáleném počítači.

Poslední myšlenky

OpenSSH můžete použít k implementaci silného a robustního serveru SSH. Toto byly pouze tři užitečné možnosti pro zpevnění vaší instalace. Přesto existuje spousta funkcí a možností, které můžete zapnout nebo vypnout v sshd_config a existuje mnoho skvělých aplikací, jako je Fail2ban, které můžete použít k další ochraně své služby SSH.


Linux
  1. Konfigurace klíčů SSH na systému Debian 9 – jak na to?

  2. Importovat klíč Ssh jako podklíč Gpg k použití pro ověřování Ssh?

  3. Jak nastavit klíče SSH pro přihlášení k ssh „bez hesla“ v systému Linux

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

  2. Jak nastavit klíče SSH pro přihlášení pomocí „veřejného/soukromého klíče“ SSH v systému Linux

  3. nástroj podobný teamvieweru pro ssh?

  1. Spravujte páry klíčů SSH pro cloudové servery pomocí python-novaclient

  2. Jak používat příkaz ssh-keygen ke konfiguraci ssh bez hesla

  3. Jak zabránit tomu, aby ssh vyžadoval přístupovou frázi klíče pro přihlášení bez hesla