GNU/Linux >> Znalost Linux >  >> Linux

Osm způsobů, jak chránit přístup SSH ve vašem systému

SSH. Zname to. Líbí se nám to. Musíme to použít.

Provedu vás osmi kroky, které vám pomohou lépe zabezpečit službu SSH ve vaší síti. Myslím, že všichni oceňujeme důležitost SSH. Umožňuje nám připojovat se k a z Linuxových zařízení, unixových serverů, síťových zařízení a někdy i Windows boxů. Nebudu se vám snažit prodávat, jak často se SSH používá nebo jak je důležité. Poskytnu vám solidní kontrolní seznam, který můžete použít k zajištění toho, aby byly služby SSH ve vašem prostředí uzamčeny.

1. Zálohujte konfigurační soubor

Před provedením větších změn nejprve zálohujte konfigurační soubor. Toto je běžná rada, ale je skutečná. Je to snadné, zabere to jen chvilku a ochrání vás to v případě chyby při úpravě souboru. A kdo neudělal ve Vimu chybu?

# cp /etc/ssh/sshd_config ~/sshd_config_original

Vidíš, to není tak špatné.

Výzva – Zálohujete důsledně konfigurační soubory před provedením větších úprav?

2. Nastavte bannerovou zprávu

Je pravda, že toto je stejně o zákonných požadavcích jako o čemkoli jiném, ale opět toto nastavení trvá jen chvíli. V bannerových zprávách můžete také poskytnout docela dobré informace. Nejprve napíšeme bannerovou zprávu do /etc/issue.net soubor pomocí Vim. Poté otevřeme sshd_config a řekněte mu, aby použil obsah issue.net jako banner.

# vim /etc/issue.net
Warning! Authorized use only.
This server is the property of MyCompanyName.com

[ Také by se vám mohlo líbit: Automatizace hesel SSH v Linuxu pomocí sshpass ]

Je zřejmé, že budete chtít přijít s něčím specifickým pro vaši organizaci. Odstraňte veškeré informace, které jsou již v issue.net soubor.

Dále řekněte SSH, aby použil bannerovou zprávu. Otevřete sshd_config soubor ve Vimu a najděte řádek, který zní Banner . Pamatujete si, že můžete použít znak lomítka ve Vim's Command módu k vyhledávání klíčových slov v souboru, že? Například /banner

# vim /etc/ssh/sshd_config

Najděte řádek, který zní # žádná výchozí cesta banneru a poté odkomentujte další řádek (říká Banner ).


# no default banner path
Banner /etc/issue.net

Uložte změny ve Vimu pomocí :wq a poté restartujte službu SSH:

# systemctl restart sshd

Poznámka:Nebudu vám připomínat, abyste od tohoto okamžiku restartovali SSH. Kdykoli provedete změnu v konfiguračním souboru, musíte službu restartovat.

Výzva – Je bannerová zpráva konzistentní ve všech zařízeních SSH ve vaší síti?

3. Zabránit prázdným heslům

Zdá se to jako zbytečné, ale prázdná hesla jsou zjevně špatný nápad. Možná máte další nástroje, jako jsou Pluggable Authentication Modules (PAM), které regulují vaše běžná hesla, ale je také dobré se ujistit, že SSH také vynucuje zodpovědná nastavení zabezpečení.

Otevřete /etc/ssh/sshd_config soubor ve Vimu a poté najděte řádek, který zní PermitEmptyPasswords . Odkomentujte jej a nahraďte ano hodnotu s ne .

PermitEmptyPasswords no

To je ono.

4. Zabránit uživateli root v procházení sítě přes SSH

Myšlenka je zde docela přímočará. Odesílejte standardní uživatelské přihlašovací údaje přes síť namísto přihlašovacích údajů uživatele root. Jakmile navážete připojení SSH pomocí standardního uživatelského účtu, použijte su nebo sudo zvýšit svá privilegia.

Otevřete konfigurační soubor SSH a poté zrušte komentář u PermitRootLogin čára. Upravte nastavení z ano na ne .

PermitRootLogin no

Výzva – vaše organizace přijala sudo , že?

5. Seznam povolených konkrétních uživatelských účtů

Pokud již bráníte v používání uživatelského účtu root v rámci SSH, proč nezajít o krok dále a výslovně neuvést, kteří uživatelé mohou připojit k serveru? Možná máte běžný účet správce bez oprávnění root nebo účet, který je již nakonfigurován pomocí sudo privilegia.

Do konfiguračního souboru SSH přidejte následující řádek (ve výchozím nastavení tam není):

AllowUsers user1

Dal bych to blízko PermitRootLogin no nastavení.

Mimochodem, ve skutečnosti můžete filtrovat pomocí všech následujících nastavení:AllowUsers , Odmítnout uživatele , Povolit skupiny , DenyGroups . Záměrně jsem je napsal v tomto pořadí – v takovém pořadí jsou zpracovávány. Více informací můžete najít na manuálové stránce sshd_config .

Výzva – buďte opatrní, kdo přesně je autorizován.

Poznámka:Můžete také omezit připojení přes iptables.

6. Už žádný port 22

Další běžnou změnou je konfigurace SSH pro naslouchání na jiném portu, než je standardní 22/tcp které jsme si všichni zapamatovali. V sshd_config již položka existuje soubor.

Můžete okomentovat výchozí nastavení portu a přidat další řádek, jak jsem to udělal níže:

#Run SSH on a non-standard port
#Port 22
Port 2222

Mám podezření, že mnoho lidí používá 2222 jako náhradní číslo portu, takže možná budete chtít standardizovat něco trochu jedinečnějšího.

Od tohoto okamžiku musíte k pokusům o připojení SSH přidávat nové nestandardní číslo portu. Například:

# ssh -p 2222 [email protected]

Výzva – máte nakonfigurováno stejné nestandardní číslo portu pro všechny vaše SSH destinace? Důslednost vám výrazně usnadní život.

7. Čas vypršel!

Další tip se zabývá vypršením časového limitu připojení. ClientAliveInterval spravuje nečinná připojení SSH. Server odešle zprávu klientovi a očekává odpověď. ClientAliveInterval je časový prostor mezi zprávami. ClientAliveCountMax definuje, kolikrát to server udělá, než se rozhodne, že klient už tam opravdu není. V tomto okamžiku je spojení přerušeno.

Zde je příklad konfigurace, která se kontroluje každých 60 sekund a provede tak třikrát:

ClientAliveInterval 60
ClientAliveCountMax 3

Upravte tyto hodnoty na něco, co má smysl pro vaše prostředí.

Poznámka:Pokud používáte SSH k tunelování pro jiná připojení, možná budete muset zajistit, aby interval byl dostatečně dlouhý, aby správně podporoval všechny ostatní aplikace, které jej používají.

Je zde ServerAliveInterval hodnotu, kterou můžete nakonfigurovat i na straně klienta. To umožňuje klientům přerušit připojení k serverům SSH, které nereagují.

8. Zde je klíč

Jedním z nejběžnějších nastavení zabezpečení pro SSH v dnešní době je ověřování na základě klíče. Během let, co jsem učil Linux, se tato metoda ověřování stala stále běžnější. Ve skutečnosti bych se nepokusil o administrační zkoušku Red Hat, aniž bych si v tomto procesu věřil. Naštěstí to není těžké.

Pojďme si udělat rychlou recenzi. Autentizace založená na klíči využívá asymetrickou kryptografii. To znamená, že existují dva klíče, různé, ale matematicky spolu související. Jeden je soukromý a nikdy se neposílá přes síť. Druhý je veřejný a lze jej přenášet po síti. Protože klíče spolu souvisí, lze je použít k potvrzení identit – identit, jako jsou pokusy o ověření SSH.

Budete muset vygenerovat pár klíčů na místním klientském počítači SSH a poté přenést veřejný klíč přes síť na cílový server SSH. Jinými slovy, klíče vás identifikují na vaší pracovní stanici správce. Jakmile je tato konfigurace zavedena, již nebudete vyzváni k zadání hesla při navazování připojení SSH.

Tento proces vyžaduje pouze několik kroků.

Nejprve vygenerujte pár klíčů:

# ssh-keygen

Klíče jsou uloženy ve vašem domovském adresáři ve skrytém adresáři s názvem .ssh a výchozí názvy klíčů jsou id_rsa (soukromý klíč) a id_rsa.pub (veřejný klíč).

Dále odešlete veřejný klíč user1 přes síť na cílový server SSH na adrese 10.1.0.42:

# ssh-copy-id [email protected]

Nakonec otestujte připojení:

# ssh [email protected]

Všimněte si, že nejste vyzváni k zadání hesla.

Protože jste nyní přijali ověřování na základě klíče, můžete upravit sshd_config aby se zabránilo jakémukoli přihlášení na základě hesel. Jakmile toto nastavení nakonfigurujete, bude akceptováno pouze ověřování založené na klíči.

Upravte tyto dva řádky v souboru:

PasswordAuthentication no
PublicKeyAuthentication yes

[ Chcete se dozvědět více o zabezpečení? Podívejte se na kontrolní seznam zabezpečení IT a dodržování předpisů. ] 

Sbalit

Uvedl jsem několik běžných, ale účinných konfigurací SSH, které vám pomohou lépe zabezpečit vaše prostředí. Pamatujte, že pokud jde o zabezpečení, vaše zařízení pravděpodobně neochrání žádné nastavení. Cílem jsou vrstvy zabezpečení, jejichž kombinace pomáhá zmírňovat bezpečnostní hrozby. Důrazně doporučuji, abyste své klíče pečlivě uspořádali, pokud implementujete autentizaci založenou na klíčích. Můžete také zvážit použití centralizovaného /etc/ssh/sshd_config pro zachování konzistentních konfigurací zabezpečení na vašich serverech SSH. Při každé změně konfiguračního souboru nezapomeňte restartovat SSH.


Linux
  1. 7 způsobů, jak určit typ systému souborů v Linuxu (Ext2, Ext3 nebo Ext4)

  2. Ssh – Zkopírujte soubor zpět do místního systému pomocí Ssh?

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

  1. Jak porovnat váš systém (CPU, File IO, MySQL) pomocí Sysbench

  2. Jak můžete chránit svůj počítač?

  3. Zabezpečení Linuxu:Chraňte své systémy pomocí fail2ban

  1. 4 způsoby, jak zjistit, kdo je přihlášen ve vašem systému Linux

  2. 5 způsobů, jak identifikovat typ systému souborů Linux (Ext2 nebo Ext3 nebo Ext4)

  3. Jak poskytnout ssh přístup uživateli v Ubuntu