GNU/Linux >> Znalost Linux >  >> Linux

12 Co dělat po instalaci linuxového serveru

Cloud computing drasticky změnil scénář serveru. Mnoho platforem poskytuje bezplatné cloudové servery Linux a na těchto cloudových platformách můžete své servery Linux nasadit během několika minut.

Když spustíte nový server, zejména pokud je viditelný na internetu, bude okamžitě k dispozici padouchům, kteří pomocí svých automatizovaných skriptů botů prohledávají odhalené servery, zda na nich nejsou špatné konfigurace a zranitelnosti.

Po instalaci linuxového serveru musíte udělat několik věcí, abyste zajistili, že váš server nebude kompromitován.

Zde je snímek obrazovky toho, co Fail2ban nedávno viděl na jednom z mých serverů.

212 chybných pokusů o přihlášení a 6 blokovaných IP adres. Veškerý provoz od neautorizovaných lidí nebo skriptů, které se pokoušejí přihlásit na můj server.

Několik zásadních prvních kroků vám pomůže ochránit vaše nové servery před kompromitováním.

Zvažoval jsem zde dvě z nejpopulárnějších serverových distribucí Linuxu:Ubuntu a CentOS/Red Hat. Zkontrolujte prosím, jaký Linux používáte.

Většina rad je zde obecných a měla by být použitelná na jiný Linux, pokud není výslovně uvedeno.

Zde jsou věci, které doporučuji zkontrolovat, abyste zajistili bezpečnost svého linuxového serveru. Poskytnul jsem jednotlivé kroky, ale pokud to chcete udělat rychle, vytvořil jsem také skript, který můžete rychle spustit na jakémkoli novém serveru, který nasadíte .

1. Ujistěte se, že je nastaven uživatel bez oprávnění root

Root je všemocný a nepotřebujete oprávnění root po celou dobu.

root je také platné uživatelské jméno na téměř každém systému Linux. To znamená, že pokud je povolena vzdálená autentizace, je hotova polovina práce útočníka, získání platného uživatelského jména.

Také, pokud se útočník může dostat jako root, nejsou vyžadována žádná další oprávnění k jakékoli činnosti v systému.

Z těchto důvodů je nejlepší přihlásit se jako uživatel bez oprávnění root a zakázat přihlášení root pro vzdálený přístup pomocí SSH (vysvětleno později).

Jak na to?

Předpokládám, že jste ve svém systému přihlášeni jako root.

Přidejte nového uživatele pomocí příkazu useradd. Nahraďte uživatelským jménem dle vašeho výběru.

useradd <username>

Nastavte heslo pomocí příkazu passwd pro nově přidaného uživatele:

passwd <username>

2. Ujistěte se, že uživatel bez oprávnění root má oprávnění sudo

Vzhledem k tomu, že se k tomuto účtu budete přihlašovat vzdáleně pomocí Secure Shell (SSH), budete chtít mít možnost provádět privilegované aktivity vyžadující přístup root. To znamená, že účet musí mít oprávnění sudo.

Jak na to?

Proces vytvoření uživatele sudo na Ubuntu a CentOS je podobný, ale skupina, do které budete uživatele přidávat, se liší.

Pro provedení tohoto kroku byste měli být přihlášeni jako root.

V systému CentOS a Red Hat , wheel group je standardní skupina používaná k udělování oprávnění uživatelům sudo. Přidejte uživatele do této skupiny pomocí příkazu usermod:

usermod -aG wheel <username>

Ubuntu používá sudo skupina pro správu uživatelů sudo.

usermod -aG sudo <username>

3. Povolení autentizace SSH na základě klíče

Je důležité mít povolenou autentizaci založenou na klíči pro SSH, aby fungovala, když deaktivujeme ověřování na základě hesla.

Prolomená, hrubě vynucená nebo kompromitovaná hesla jsou velmi běžným způsobem, jak mohou špatní herci získat přístup k systémům. Spear phishing, extrémně cílený spamový e-mail, který přiměje nic netušícího uživatele k poskytnutí přihlašovacích údajů, je pouze jednou z běžných metod získání přihlašovacích údajů.

Pokud někdo získá vaše uživatelské jméno a heslo v systému, kde je povoleno ověřování na základě klíče a ověřování na základě hesla je pro vzdálený přístup přes SSH zakázáno, toto ukradené heslo jim již nezíská přístup k tomuto serveru.

Povolením autentizace na základě klíče a v pozdějším kroku zakázáním autentizace na základě hesla jste výrazně snížili své šance na použití SSH proti vám. Toto je jeden ze základních způsobů zabezpečení SSH serveru.

Jak na to?

Předpokládám, že již máte na svém serveru povoleno SSH. Co musíte udělat, je vygenerovat SSH klíče na vašem osobním počítači (odkud se budete přihlašovat k serveru).

Jakmile budete mít klíče SSH, měli byste přidat veřejný klíč k autorizovaným_klíčům na našem serveru pro uživatele bez oprávnění root.

Pozor ! Neztraťte ssh klíče ze svého osobního počítače. Vytvořte zálohu těchto klíčů. Pokud později deaktivujete ověřování na základě hesla a ztratíte klíče SSH, budete uzamčeni z vašeho vlastního serveru.

4. Ujistěte se, že SSH je povoleno přes ufw firewall

Před aktivací brány firewall na vašem systému byste se měli ujistit, že je povoleno SSH. V opačném případě můžete být uzamčeni ze svého systému, pokud k němu přistupujete vzdáleně.

Jak na to?

Ubuntu používá Uncomplicated Firewall (ufw) a CentOS/Red Hat používá firewalld.

V systému CentOS/Red Hat , použijte příkaz firewall-cmd:

sudo firewall-cmd --zone=public --add-service=ssh --permanent

Na Ubuntu použijte příkaz ufw takto:

sudo ufw allow ssh

5. Povolit firewall (pouze po povolení SSH)

Firewall zajišťuje, že na váš server může proudit pouze provoz, který výslovně povolíte. Pokud se na váš server dostane malware zlý hráč a pokusí se jej nechat komunikovat přes port, který není povolen, nebo pokud je služba náhodně povolena, nelze ji použít ke kompromitaci vašeho serveru nebo k dalšímu kompromitování.

Jak na to?

V systémech CentOS/Red Hat povolte službu firewalld systemd:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Na Ubuntu použijte tento příkaz:

sudo ufw enable

6. Nastavte SSH tak, aby nezobrazoval banner

Jedním ze způsobů, jak může útočník ohrozit váš server, jsou chyby v softwaru, na kterém běží vaše služby. Banner může zobrazovat informace o tom, jakou verzi OpenSSH nebo operačního systému používáte. Nemá smysl dávat informace padouchům. Nechte je pracovat!

Jak na to?

Toto je výchozí chování v CentOS/Red Hat ne pro zobrazení banneru, takže není potřeba žádná akce.

Na Ubuntu můžete použít:

sudo echo "DebianBanner no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

7. Zakázat veškeré předávání SSH

I když není neobvyklé, že správci používají předávání SSH k šifrování provozu, který by jinak mohl procházet jako prostý text, pokud jej nepoužíváte, měli byste jej vypnout. Přesměrování by mohl použít špatný hráč k zašifrování provozu, takže je pro vás obtížnější jej zobrazit, nebo k tomu, aby provoz, který by byl jinak zablokován, prošel pomocí autorizovaného portu a služby.

Jak na to?

Na CentOS/Red Hat, a dd následující do /etc/ssh/sshd_config :

DisableForwarding yes

V Ubuntu, přidat DisableForwarding yes do 10-my-sshd-settings.conf soubor:

sudo echo "DisableForwarding yes" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

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

Téměř na každém systému Linux je uživatel root. Rizika povolení, aby tento účet používal SSH, jsou dvojí.

  1. Uživatelské jméno je známé a často ho zkoušejí padouši.
  2. Pokud se útočník dostane jako uživatel root, má úplný přístup k systému.

Zakázání používání účtu root pro připojení SSH neguje obě rizika.

Jak na to?

V systému CentOS/Red Hat , najděte řádek PermitRootLogin yes v /etc/ssh/sshd_config a změňte jej na:

PermitRootLogin no

Na Ubuntu přidejte PermitRootLogin no do 10-my-sshd-settings.conf soubor:

sudo echo "PermitRootLogin no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

9. Zakázat ověřování SSH na základě hesla

Před zakázáním ověřování heslem v SSH se ujistěte, že máte nakonfigurováno a otestováno ověřování pomocí klíče, jak je uvedeno v kroku 3.

Zakázání ověřování na základě hesla blokuje přístup na váš server pomocí SSH zlomyslným aktérům, kteří se snaží uhodnout vaše heslo nebo kteří vás společensky navedli, abyste zadali vaše přihlašovací údaje nebo je jakýmkoli způsobem ukradli.

Útočník musí mít vaše veřejné a soukromé klíče, aby se dostal na váš server.

Jak na to?

V systému CentOS/Red Hat , najděte řádek PasswordAuthentication yes v /etc/ssh/sshd_config a změňte jej na:

PasswordAuthentication no

Na Ubuntu , přidejte PasswordAuthentication no do 10-my-sshd-settings.conf soubor:

sudo echo "PasswordAuthentication no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

10. Ignorujte rhosts

rhosts je spojen s rsh, starším protokolem nahrazeným bezpečným shellem. Pokud se uživatel pokusí vytvořit škodlivý rhosts soubor, toto nastavení jej explicitně ignoruje.

Jak na to?

V systému CentOS/Red Hat , najděte řádek #IgnoreRhosts yes v /etc/ssh/sshd_config a změňte jej na:

IgnoreRhosts yes

Na Ubuntu , přidejte IgnoreRhosts yes do 10-my-sshd-settings.conf soubor:

sudo echo "IgnoreRhosts yes" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

11. Nainstalujte fail2ban a nakonfigurujte jej tak, aby chránil SSH

Fail2ban dohlíží na soubory protokolu pro nakonfigurované služby, jako je SSH, a blokuje IP adresy uživatelů se zlými úmysly v připojení k vašemu serveru po stanoveném počtu pokusů po stanovenou dobu.

Pokud útočník provede více než 5 neúspěšných pokusů během tří hodin, jeho IP adresa bude zablokována například na 12 hodin.

Fail2ban lze nakonfigurovat tak, aby chránil i další služby, jako jsou webové stránky poháněné webovým serverem nginx nebo webovým serverem Apache.

Jak na to?

Můžete postupovat podle našeho podrobného průvodce používáním Fail2Ban.

12. Nakonfigurujte automatické aktualizace zabezpečení (pro Red Hat a CentOS)

Jak již bylo zmíněno dříve, zastaralá služba s exploitem může umožnit útočníkovi dostat se na váš server, aniž by se musel přihlásit, pokud je zranitelnost dostatečně závažná! Aby se toto riziko snížilo, je velmi důležité rychle používat aktualizace zabezpečení.

Jak na to?

Pro výchozí instalaci serveru Ubuntu jsou povoleny automatické aktualizace zabezpečení, takže není potřeba žádná akce týkající se aktualizací.

Chcete-li nakonfigurovat automatické aktualizace na CentOS / Red Hat, nainstalujte si aplikaci s názvem dnf-automatic a povolte pro ni časovač pomocí příkazů níže:

sudo dnf upgrade
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timer

Časovač můžete zkontrolovat spuštěním:

sudo systemctl status dnf-automatic.timer

Hledejte "načteno" pod řádkem Loaded:a "active" pod řádkem Active:.

Kroků může být více nebo méně v závislosti na vašem osobním vkusu a na tom, na co své servery obvykle nastavujete.

Bonusový skript:prvních 10 sekund na linuxovém serveru

Jak jsem slíbil, zde je skript, který jsem napsal a který provede všechny výše uvedené kroky, které jsem uvedl poté, co máte uživatele bez oprávnění root nastaven a konfigurován pro ověřování na základě klíče.

Skript lze spustit na Ubuntu 20.04 i CentOS/Red Hat 8.

Upozorňujeme, že byste neměli slepě spouštět náhodné shellové skripty stažené z internetu, bez ohledu na to, jak moc důvěřujete zdroji skriptu. Musíte si přečíst skript a pokusit se pochopit, co dělá.

Celý skript je open source a je dostupný všem a můžete si jej prohlédnout zde. Můžete si stáhnout, přečíst a poté spustit bash skript.

Zde je snímek obrazovky po spuštění na serveru Ubuntu 20.04.

Podívejte se, jak snadno můžete provést některé základní kroky k zabezpečení svých nových serverových sestavení v CentOS, Red Hat nebo Ubuntu spuštěním jediného skriptu!

Můžete také poskytnout zpětnou vazbu k funkcím skriptu nebo požadavku.

Závěr

Toto jsou jen některé z velmi základních bezpečnostních kontrol, ale něco, co musíte udělat po instalaci vašeho linuxového serveru.

Ruční provádění těchto věcí na řadě serverů může být bolestivé a zbytečně časově náročné. Zde můžete využít skriptování a použít můj skript „Prvních 10 sekund na serveru Linux“ nebo si vytvořit svůj vlastní.

Toto jsou některá z mých doporučení. co ty? Chcete k tomuto seznamu něco přidat? Uveďte svůj návrh v sekci komentářů.

Autor Ted LeRoy je architekt Enterprise Security Architect, který firmám poskytuje řadu informací a vedení fyzického zabezpečení.

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

  2. Jak na SSH na Linuxu z Androidu

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

  1. 21 nejlepších věcí, které můžete udělat po instalaci Fedora Linux 37

  2. Instalace GDAL na Linux Ubuntu Server?

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

  1. Co dělat po instalaci Ubuntu 18.04 a 19.10

  2. Co dělat po instalaci Ubuntu 20.04 Focal Fossa Linux

  3. Co dělat po instalaci Arch Linuxu?