GNU/Linux >> Znalost Linux >  >> Linux

7 Výchozí možnosti zabezpečení OpenSSH, které byste měli změnit v /etc/ssh/sshd_config

Možnosti OpenSSH se ovládají prostřednictvím souboru /etc/ssh/sshd_config. Tento článek vysvětluje 7 výchozích možností v souboru sshd_config, které byste měli změnit.

V sshd_config jsou řádky, které začínají #, komentáře. U voleb, které používají výchozí hodnoty, obsahuje soubor sshd_config řádek s komentářem s volbou a její výchozí hodnotou.

To nám usnadňuje práci, protože můžeme vidět název volby OpenSSH a výchozí hodnotu, aniž bychom museli hledat někde jinde.

Například soubor sshd_config obsahuje následující komentovaný řádek. To znamená, že možnost PubkeyAuthentication obsahuje „ano“ jako výchozí hodnotu.

$ grep -i pubkey /etc/ssh/sshd_config
#PubkeyAuthentication yes

Pokud to chcete změnit, měli byste odstranit komentář a změnit hodnotu (z ano na ne), jak je uvedeno níže.

$ vi /etc/ssh/sshd_config
PubkeyAuthentication no

Výše uvedené jsem uvedl pouze jako příklad. Nemusíte měnit výchozí hodnotu možnosti PubkeyAuthentication, protože povolení ověřování pomocí veřejného klíče je dobré.

Nemusíte upravovat žádnou z výchozích hodnot v souboru sshd_config kromě 7 možností uvedených v tomto článku.

1. Zakázat přihlášení uživatele root (PermitRootLogin)

Ve výchozím nastavení můžete ssh na server jako root. Nejlepší je nepovolit rootovi přihlásit se přímo k serveru. Namísto toho byste se měli přihlásit do systému jako svůj účet a poté provést „su -“ pro přihlášení jako root.

Pokud máte ve své organizaci více správců systému a pokud se všichni přihlásí k serveru přímo jako root, možná nevíte, který správce systému je přihlášen jako root. Namísto toho, pokud zakážete přihlášení jako root, sysadmins se musí nejprve přihlásit jako svůj účet, než mohou provést „su -“, což usnadňuje audit.

Přidáním následující položky do sshd_config zakážete rootovi přímé přihlášení k serveru.

$ vi /etc/ssh/sshd_config
PermitRootLogin no

2. Povolit pouze konkrétní uživatele nebo skupiny (AllowUsers AllowGroups)

Ve výchozím nastavení se může přihlásit kdokoli, kdo je úspěšně ověřen. Místo toho můžete omezit, kterým uživatelům (nebo skupinám) povolíte přihlášení do systému.

To je užitečné, když jste v systému vytvořili několik uživatelských účtů, ale chcete, aby se přihlásilo jen několik z nich.

To je také užitečné, když k ověřování používáte NIS, openLDAP (nebo nějaký jiný externí systém). Každý uživatel ve vaší společnosti může mít účet na NIS, OpenLDAP atd. Ale na konkrétním serveru chcete, aby se přihlásilo jen několik z nich. Například v produkčním systému chcete, aby se přihlašovali pouze správci systému.

Přidejte následující položku do souboru sshd_config, abyste umožnili přihlášení do systému pouze určitým uživatelům. V níže uvedeném příkladu se do tohoto systému mohou přihlásit pouze ramesh, john a jason. Uživatelská jména by měla být oddělena mezerou.

$ vi /etc/ssh/sshd_config
AllowUsers ramesh john jason

Přidejte následující položku do souboru sshd_config, abyste umožnili přihlášení pouze uživatelům, kteří patří do určité skupiny. V níže uvedeném příkladu se do systému mohou přihlásit pouze uživatelé, kteří patří do sysadmin a dba group.

$ vi /etc/ssh/sshd_config
AllowGroups sysadmin dba

3. Odepřít konkrétní uživatele nebo skupiny (DenyUsers DenyGroups)

Místo povolení konkrétních uživatelů (nebo skupin) můžete také konkrétním uživatelům nebo skupinám zakázat.

Přidejte následující položku do souboru sshd_config, abyste konkrétním uživatelům odepřeli přihlášení do systému. V níže uvedeném příkladu cvs, apache, jane se nemůže přihlásit do tohoto systému. Uživatelská jména by měla být oddělena mezerou.

$ vi /etc/ssh/sshd_config
DenyUsers cvs apache jane

Přidejte následující položku do souboru sshd_config, abyste uživatelům, kteří patří do určité skupiny, odepřeli přihlášení. V příkladu níže se uživatelé, kteří patří k vývojářům a skupině qa, nemohou přihlásit do systému.

$ vi /etc/ssh/sshd_config
DenyGroups developers qa

Poznámka:Můžete použít kombinaci všech směrnic Povolit a Zakázat. Zpracovává se v tomto pořadí:DenyUsers, AllowUsers, DenyGroups a nakonec AllowGroups

4. Změňte číslo portu SSHD (Port)

Ve výchozím nastavení ssh běží na portu 22. Většina útočníků zkontroluje, zda je server otevřený na portu 22, a náhodně použije hrubou sílu k přihlášení k serveru pomocí několika kombinací uživatelského jména a hesla.

Pokud změníte port # na něco jiného, ​​ostatní potřebují přesně vědět, jaký port použít pro přihlášení k serveru pomocí ssh. Níže uvedený příklad používá port 222 pro ssh.

$ vi /etc/ssh/sshd_config
Port 222

Pokud z vašich protokolů (/var/log/secure) uvidíte mnoho neplatných přihlášení pomocí ssh pro účty, které ve vašem systému neexistují, z
ip-adresy, kterou neznáte, může být nějakým útokem hrubou silou. Tento druh neplatného přihlášení ssh se zastaví, pokud změníte číslo portu.

Vezměte prosím na vědomí, že to vašemu týmu, který se přihlásí do systému, způsobí malé nepříjemnosti, protože potřebuje znát IP adresu i číslo portu.

5. Změna doby odkladu přihlášení (LoginGraceTime)

Když připojíte ssh na server, máte 2 minuty na přihlášení. Pokud se do 2 minut úspěšně nepřihlásíte, ssh se odpojí.
2 minuty na úspěšné přihlášení jsou příliš mnoho. Měli byste zvážit jeho změnu na 30 sekund, nebo to může být 1 minuta.

Přidejte následující položku do souboru sshd_config, abyste změnili dobu odkladu přihlášení ze 2 minut na 1 minutu.

$ vi /etc/ssh/sshd_config
LoginGraceTime 1m

6. Omezit rozhraní (IP adresu) na přihlášení (ListenAddress)

Pokud máte na serveru více rozhraní, která jsou nakonfigurována na různé IP adresy, možná nebudete chtít, aby se všichni přihlašovali k serveru pomocí všech těchto IP adres.

Předpokládejme, že máte na serveru následující 4 rozhraní:

  • eth0 – 192.168.10.200
  • eth1 – 192.168.10.201
  • eth2 – 192.168.10.202
  • eth3 – 192.168.10.203

Ve výchozím nastavení bude ssh naslouchat na všech výše uvedených IP adresách. Pokud chcete, aby se uživatelé přihlašovali pouze pomocí ip-adres 200 a 202, proveďte následující ve vašem sshd_config

$ vi /etc/ssh/sshd_config
ListenAddress 192.168.10.200
ListenAddress 192.168.10.202

7. Odpojte SSH, když není žádná aktivita (ClientAliveInterval)

Jakmile se úspěšně přihlásíte do systému, možná se budete chtít odpojit, když po x počtu minut neproběhnou žádné aktivity. Toto je v podstatě časový limit nečinnosti.

V Bash toho můžete dosáhnout pomocí proměnné TMOUT.

V OpenSSH toho lze dosáhnout kombinací možností ClientAliveCountMax a ClientAliveInterval v souboru sshd_config.

  • ClientAliveCountMax – Udává celkový počet kontrolních zpráv odeslaných serverem ssh bez obdržení jakékoli odpovědi od klienta ssh. Výchozí hodnota je 3.
  • ClientAliveInterval – Udává časový limit v sekundách. Po x počtu sekund odešle ssh server klientovi zprávu s žádostí o odpověď. Deafult je 0 (server nepošle zprávu klientovi ke kontrole.).

Pokud chcete, aby se ssh klient automaticky ukončil (timeout) po 10 minutách (600 sekundách), upravte soubor sshd_config a nastavte následující dva parametry, jak je uvedeno níže.

$ vi /etc/ssh/sshd_config
ClientAliveInterval 600
ClientAliveCountMax 0

Linux
  1. Linuxové příkazy:du a možnosti, které byste měli používat

  2. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  3. Jak se aktualizuje /etc/motd?

  1. CentOS / RHEL :Jak obnovit ze smazaného souboru /etc/passwd

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

  3. Kdy mám použít /dev/shm/ a kdy /tmp/?

  1. Může někdo vysvětlit 'PasswordAuthentication' v souboru /etc/ssh/sshd_config?

  2. /etc/passwd zobrazuje uživatele ve skupině, ale /etc/group nikoli

  3. /dev/sdb:Žádný takový soubor nebo adresář (ale /dev/sdb1 atd. existuje)