Jakmile nainstalujete server CentOS 8 / RHEL 8, je na druhém místě jeho zabezpečení proti neoprávněnému přístupu a vniknutí. Jak praví přísloví:„Prevence je lepší než léčba“, takže prevence hackerů je lepší než pokusy o nápravu.
Prozkoumejte několik kroků, které můžete podniknout k posílení a zabezpečení serveru CentOS 8 / RHEL 8 a zmaření pokusů o hackování.
1) Nastavte bránu firewall
Jako uživatel Linuxu zaměřený na bezpečnost byste z bezpečnostních důvodů nepovolili žádný provoz do vašeho systému CentOS 8 / RHEL 8. Ve skutečnosti je nastavení brány firewall jednou z počátečních úloh nastavení serveru, které musí správce systému provést, aby otevřel pouze určité porty a povolil aktuálně používané služby.
Ve výchozím nastavení je systém CentsO8 / RHEL 8 dodáván s firewallem firewall, který lze spustit a povolit při spuštění spuštěním příkazů:
$ sudo systemctl start firewalld $ sudo systemctl enable firewalld
Chcete-li zkontrolovat služby povolené na firewallu, jednoduše spusťte příkaz:
$ sudo firewall-cmd --list all
Chcete-li otevřít port na bráně firewall, např. port 443, spusťte příkaz:
$ sudo firewall-cmd --add-port=443/tcp --zone=public --permanent
Chcete-li povolit službu, např. ssh, použijte příkaz:
$ sudo firewall-cmd --add-service=ssh --zone=public --permanent
Chcete-li odebrat port a službu, použijte –remove-port a –remove-service atributy.
Aby se změny projevily, vždy znovu načtěte firewall podle obrázku.
$ sudo firewall-cmd --reload
2) Zakázat nepoužívané / nežádoucí služby
Vždy se doporučuje vypnout nepoužívané nebo nepotřebné služby na vašem serveru. Důvodem je, že čím vyšší je počet spuštěných služeb, tím více je ve vašem systému otevřených portů, které může útočník zneužít k získání vstupu do vašeho systému. Kromě toho se vyhněte používání staré a nezabezpečené služby, jako je telnet, která odesílá provoz v prostém textu
Nejlepší bezpečnostní postupy doporučují zakázat nepoužívané služby a zbavit se všech nezabezpečených služeb běžících na vašem systému. Můžete použít nástroj nmap prohledat váš systém a zkontrolovat, které porty jsou otevřené a naslouchané.
3) Zabezpečte důležité soubory
Je důležité uzamknout důležité soubory, aby se zabránilo náhodnému smazání nebo úpravám. Mezi takové soubory patří /etc/passwd a /etc/gshadow, které obsahují hashovaná hesla. Chcete-li, aby byly soubory neměnné (tj. zabránit úpravě nebo náhodnému smazání), použijte příkaz chattr jak je znázorněno:
$ sudo chattr +i /etc/passwd $ sudo chattr +i /etc/shadow
To zajišťuje, že hacker nemůže změnit heslo žádného uživatele ani je smazat, což povede k odmítnutí přihlášení do systému.
4) Zabezpečený protokol SSH
Protokol SSH je populární protokol pro vzdálené přihlášení. Ve výchozím nastavení má protokol nativní slabiny, které může zneužít hacker.
Ve výchozím nastavení SSH umožňuje vzdálené přihlášení uživatele root. Toto je potenciální mezera a pokud se hackerovi podaří získat heslo roota k vašemu systému, váš server je do značné míry vydán na jeho milost. Abyste tomu zabránili, je vhodné odmítnout vzdálené přihlášení root a místo toho vytvořit přihlašovacího běžného uživatele s právy sudo. Můžete to provést úpravou konfiguračního souboru SSH /etc/ssh/sshd_config a zakázáním přihlášení root, jak je znázorněno:
PermitRootLogin
Dalším způsobem, jak můžete zabezpečit SSH, je nastavení SSH autentizace bez hesla pomocí ssh klíčů. Namísto použití ověřování heslem, které je náchylné k útokům hrubou silou, jsou preferovány klíče SSH, protože umožňují přístup pouze uživatelům s klíčem ssh, aby se přihlásili ke vzdálenému serveru a zablokovali jakéhokoli jiného uživatele. Prvním krokem k povolení autentizace bez hesla je vygenerování páru klíčů pomocí příkazu:
$ ssh-keygen
Tím se vygeneruje pár veřejného a soukromého klíče. Soukromý klíč je umístěn na hostiteli, zatímco veřejný klíč je zkopírován do vzdáleného systému nebo serveru. Jakmile je pár ssh-key zkopírován, můžete se bez námahy přihlásit ke vzdálenému systému, aniž byste byli vyzváni k zadání hesla. Dále deaktivujte ověřování hesla úpravou konfiguračního souboru /etc/ssh/sshd_config a nastavením této hodnoty:
PasswordAuthentication no
Jakmile provedete změny, nezapomeňte restartovat službu SSH, aby se změny projevily.
$ sudo systemctl restart sshd
5 ) Definujte limit pro pokusy o zadání hesla
Chcete-li svůj server dále posílit, můžete zvážit omezení počtu pokusů o zadání hesla při přihlašování přes SSH, abyste zabránili útokům hrubou silou. Znovu přejděte do konfiguračního souboru SSH, přejděte a vyhledejte parametr „MaxAuthTries“. Odkomentujte jej a nastavte hodnotu, například 3, jak je znázorněno.
MaxAuthTries 3
To znamená, že po 3 nesprávných pokusech o zadání hesla bude relace uzavřena. To se hodí zejména tehdy, když chcete blokovat robotické skripty/programy, které se snaží získat přístup do vašeho systému.
6) Nastavte systém prevence narušení (IPS)
Dosud jsme se zabývali základními kroky, které můžete podniknout k posílení vašeho serveru CentOS 8 / RHEL 8. Chcete-li přidat další vrstvu, doporučujeme nainstalovat systém detekce narušení. Dokonalým příkladem IPS je Fail2ban.
Fail2ban je bezplatný a open source systém prevence narušení, který chrání servery před útoky hrubou silou tím, že zakáže IP adresy po určitém počtu pokusů o přihlášení, které lze zadat v konfiguračním souboru. Jakmile je uživatel se zlými úmysly nebo neoprávněný uživatel zablokován, nemůže ani zahájit pokus o přihlášení k SSH.
7) Pravidelně aktualizujte svůj server
Tento článek by nebyl úplný bez zdůraznění toho, jak důležité je pravidelně aktualizovat váš server. To zajišťuje, že váš server získá nejnovější funkce a aktualizace zabezpečení, které jsou nezbytné pro řešení stávajících problémů se zabezpečením.
Automatické aktualizace můžete nastavit pomocí nástroje kokpit, což je nástroj pro správu serveru založený na grafickém uživatelském rozhraní, který také provádí řadu dalších úkolů. To je ideální zejména pokud máte v úmyslu jet na dlouhodobý pobyt nebo dovolenou bez přístupu k serveru.