GNU/Linux >> Znalost Linux >  >> Linux

Hardening SSH konfigurace

Tento příspěvek je o Hardening SSH Configuration

Úvod

SSH se stalo standardním nástrojem pro vzdálenou správu systémů založených na UNIXu. Démon SSH (sshd ) je standardně nainstalován na téměř všech hlavních systémech. Navíc sshd také nám poskytuje mnoho možností konfigurace.

Poznámka :Tento článek je pokračováním mého předchozího tématu o Lynis. I když jsem se snažil, aby to bylo čitelné samo o sobě. Možná budete chtít zvážit přečtení předchozí, abyste získali nějaký kontext.

Výchozí nastavení openssh (verze SSH vyvinutá projektem OpenBSD) se řídí filozofií „secure by default“, takže většina konfigurací je sama o sobě bezpečná. Nicméně při provádění kontroly lynis auditu jsem obdržel nějaké návrhy ohledně konfigurací. Pojďme si tedy projít návrhy, abychom dále posílili našeho démona SSH. Také se vyjádřím k tomu, zda vypnutí/zapnutí některých z nich zlepšuje zabezpečení.

Zpevnění konfigurace SSH

Návrhy zahrnují úpravu našeho sshd konfigurace. Jako výchozí cesta pro sshd config je /etc/ssh/sshd_config , to je místo, kde bychom se měli podívat.

TCP a přesměrování agentů

Jak je vidět ze snímku obrazovky, lynis doporučuje nastavit AllowTCPForwarding a AllowAgentForwarding na ne. Je dobrou radou používat pouze to, co je vyžadováno, takže pokud ji nepoužíváme, měli bychom tuto možnost zakázat. Vypnutím této možnosti se však nezlepší zabezpečení, pokud má uživatel přístup k shellu, v takovém případě si může nastavit své vlastní forwardery (jak je uvedeno v sshd_config(5) manuálová stránka).

ClientAliveCountMax

ClientAliveCountMax a ClientAliveInterval jsou dvě související možnosti. Maximální počet, vynásobený intervalem aktivního klienta v sekundách, určuje, kdy připojení přestane reagovat. Nechápu, jak by to ovlivnilo bezpečnost. Možná budu muset udělat další průzkum. Snížení hodnoty by však nemělo bolet.

Komprese

SSH nám umožňuje komprimovat data odeslaná po ověření prostřednictvím této možnosti. Na pomalých modemech může komprese zvýšit rychlost připojení. Na většině moderních systémů by to však nemělo mít žádný vliv. Kromě toho nás může také seznámit s útoky BREACH, jak je uvedeno v tomto komentáři na GitHubu. Vezměme si proto lynis' návrh.

Úroveň protokolu

sshd zaznamenává zprávy do journald ve výchozím nastavení na většině distribucí GNU/Linux. Tato možnost řídí úroveň podrobností, které mají být protokolovány. lynis doporučuje nastavit toto z INFO na VERBOSE, což může pomoci při odstraňování problémů atd. Manuální stránka sshd_config(5) upozorňuje však, že nastavení na vyšší úroveň (např. DEBUG) může narušit soukromí jejích uživatelů. Takže opravdu nevidím žádné zlepšení zabezpečení vyladěním tohoto nastavení.

MaxAuthTries

Tato hodnota určuje, kolik pokusů o ověření povolit na jedno připojení. Navíc, když selhání pokusu o připojení dosáhnou poloviny této hodnoty, pak sshd zahájí protokolování poruch. Proto má smysl tuto hodnotu snížit.

MaxSessions

Hodnota této možnosti určuje, kolik relací shellu má být povoleno na připojení. Nemyslím si, že by bylo potřeba ssh na jeden server několikrát najednou. Navíc je zde také tmux což nám umožňuje provádět multiplexování, které chceme, aniž bychom museli otevírat více relací. Takže má smysl přijmout tento návrh.

Port

Můj výklad tohoto návrhu je, že bychom měli nastavit sshd naslouchací port na nějakou jinou hodnotu. To se ukáže jako užitečné při obraně proti většině botnetů, které skenují internet a hledají zranitelné stroje na výchozích portech. Nicméně každý, kdo zná základy mapování sítě (nástroje jako nmap ) bude vědět, že to nepomůže. Nicméně nastavme ji na jinou než výchozí hodnotu.

TCPKeepAlive

Nastavení této možnosti na ANO pomůže serveru upozornit na výpadek připojení. Tímto způsobem relace na serveru nevisí donekonečna. Proto si myslím, že je lepší tuto možnost nevypínat.

Přesměrování X11

Ačkoli většina ssh relace mají být založeny pouze na textu. Openssh však také poskytuje funkci pro otevírání GUI aplikací na serveru, které se zobrazí na klientovi. Funguje to tak, že X server otevře kanál zpět klientovi. Problém je v tom, že X11 nebyl nikdy navržen s ohledem na bezpečnost. Předpokládá, že všechny programy jsou důvěryhodné od doby, kdy je spustili my. Ale jak tato odpověď ukazuje, s X11Forwarding může server ovládat klienta, a tak být schopen provádět příkazy shellu na klientovi. Takže raději tuto funkci zapněte, pokud ji nepotřebujeme.

Závěr

Bezpečnost je jako vždy velmi složité téma. Nemůžeme vždy vědět, kdy je systém bezpečný. Kromě toho je zdání zabezpečení ještě horší než žádné zabezpečení.

V tomto článku jsem prošel různými konfiguracemi včetně těch velmi malých detailů, které by mohly pomoci zlepšit zabezpečení našeho ssh serveru. Ale jako vždy zpevněte svůj systém podle vašeho modelu ohrožení.

Takže víte o Hardening SSH Configuration


Linux
  1. Konfigurační soubor databáze Magento 2

  2. Odstraňování problémů s SSH

  3. Nelze spustit X aplikací přes SSH v Linuxu

  1. Ssh – Omezení uživatele Ssh/scp/sftp na adresář?

  2. Ssh – protokoly Sshd?

  3. Konfigurace Magento 2 Rabbitmq

  1. SSH s autorizovanými klíči do systému Ubuntu se zašifrovaným homedir?

  2. Jiné než výchozí umístění pro konfigurační soubor ssh v Linuxu

  3. SSH - Jak zahrnout příkaz -t do souboru ~/.ssh/config