10 kroků k zabezpečení linuxového serveru pro produkční prostředí

Lis 28, 2021
admin
Megha Pandey
Megha Pandey

Sledovat

5. října, 2017 – 6 minut čtení

Zabezpečení linuxového serveru je nezbytné pro ochranu našich dat před hackery. Zabezpečení serveru však nemusí být složité .měli bychom přijmout metodu, která ochrání náš server před nejčastějšími útoky spolu s efektivní správou .

Neberte však věci jako samozřejmost. I ten nejzabezpečenější server může být napaden zneužitím jakékoli zranitelné komponenty, která na něm běží.

Instalace toho, co potřebujete

Prvním pravidlem je udržovat server štíhlý a průměrný. Instalujte pouze ty balíčky, které skutečně potřebujete. Pokud existují nechtěné balíčky; vyčistěte je. Čím méně balíčků, tím menší šance na neopravený kód.

Zapněte SELinux

Security-Enhanced Linux (SELinux) je bezpečnostní mechanismus řízení přístupu poskytovaný v jádře.

SELinux poskytuje 3 základní režimy činnosti :

  • Vynucování:
  • Povolující: V tomto režimu SELinux nevynucuje bezpečnostní politiku v systému, pouze varuje a zaznamenává akce.
  • Zakázaný: V tomto režimu SELinux nevynucuje bezpečnostní politiku v systému, pouze varuje a zaznamenává akce:

Lze jej spravovat ze souboru ‚/etc/selinux/config‘, kde jej můžete povolit nebo zakázat.

Zabezpečení přístupu ke konzole

Přístup ke konzoli linuxových serverů musíte chránit tím, že po nastavení systému BIOS zakážete spouštění z externích zařízení, jako jsou disky DVD / CD / pera USB. Také ,nastavte heslo pro BIOS a zavaděč grub, abyste tato nastavení ochránili.

Omezte používání starých hesel

Můžeme uživatelům omezit používání stejných starých hesel. Soubor se starými hesly se nachází v adresáři /etc/security/opasswd. To lze provést pomocí modulu PAM.

Otevřete soubor ‚/etc/pam.d/system-auth‘ pod RHEL / CentOS / Fedora.

# vi /etc/pam.d/system-auth

Otevřete soubor ‚/etc/pam.d/common-password‘ pod Ubuntu/Debian/Linux.

# vi /etc/pam.d/common-password

Přidejte následující řádek do sekce ‚auth‘.

auth sufficient pam_unix.so likeauth nullok

Přidejte následující řádek do sekce ‚password‘, abyste uživateli znemožnili opakované použití posledních 3 hesel.

password sufficient pam_unix.so nullok use_authtok md5 shadow remember=3

Poslední 3 hesla si server pamatuje. Pokud se pokusíte použít některé z posledních 3 starých hesel, zobrazí se chybové hlášení.

Zkontrolujte naslouchající porty

Příkazem ‚netstat‘ zobrazíte otevřené porty a a odpovídající služby .

netstat -tunlp 

Zakázat nežádoucí služby ze systému pomocí příkazu ‚chkconfig‘ a zavřít porty, které nejsou potřeba.

chkconfig serviceName off

Zakázat přihlášení roota

Nedoporučuje se ssh na server jako superuživatel(root). Měli bychom zakázat ssh jako uživatel root na serveru, ale než tak učiníme, vytvořme uživatele s pravomocemi sudo, abyste mohli ssh na server a provádět úkoly správy. Po přihlášení k serveru můžete v případě potřeby vždy přepnout uživatele na roota.

Vytvořte nového uživatele :

useradd user1

Vytvořte heslo pro přidaného uživatele :

passwd user1

Přidělte nově přidanému uživateli oprávnění sudo :

echo 'user1 ALL=(ALL) ALL' >> /etc/sudoers

Přihlaste se k serveru pomocí nového uživatele a ujistěte se, že přihlášení funguje.

Nyní zakážeme přihlašování uživatele root, což znamená, že nikdo nebude moci ssh nebo se přihlásit na server jako uživatel root. Za tímto účelem otevřete konfigurační soubor sshd:

nano /etc/ssh/sshd_conf

Dále odkomentujte řádek, který říká

PermitRootLogin no

Poté tento soubor uložte a zavřete a restartujte službu

service sshd restart

Důležité: Zatím se neodhlašujte ze serveru. Nejprve vyzkoušejte, zda se můžete úspěšně připojit k serveru pomocí dříve vytvořeného uživatele ssh. Otevřete další instanci terminálu a připojte se k serveru pomocí dříve vytvořeného uživatele ssh. Pokud vše funguje správně, můžete se ze serveru bezpečně odhlásit jako root.

Změna portu

Můžeme změnit výchozí port SSH a přidat tak vrstvu neprůhlednosti, která zajistí bezpečnost serveru .

Otevřete soubor /etc/ssh/sshd_config

nahrazení výchozího portu 22 jiným číslem portu řekněme 1110

uložit & ukončení souboru

service sshd restart

Nyní pro přihlášení definujte číslo portu.

ssh username@IP -p 1110

Zakázat Ctrl+Alt+Delete v Inittab

Stisknutí Ctrl+Alt+Delete povede k restartování serveru. Proto je vždy vhodné tuto akci zakázat, protože někdo může omylem restartovat systém.

Akce Ctrl+Alt+Del je definována v souboru /etc/init/control-alt-delete.conf .Zakomentujte níže uvedený řádek

Přihlášení bez hesla

Vygenerováním ssh-klíčů se můžeme snadno přihlásit k našemu serveru přes SSH bez hesla. Jen si dejte pozor, abyste se k serveru mohli přihlásit pouze z toho počítače, na kterém jste vygenerovali ssh klíče

Generování SSH-klíčů :

ssh-keygen - t rsa

Zkopírujte svůj veřejný klíč SSH , pak jej přidejte na server

cat ~/.ssh/id_rsa.pub

Pro přidání ssh klíčů na server

Předpokládejme, že máme uživatele-uživatele1 pro zajištění přístupu k ssh klíči na serveru

cd /home/user1
ls -ll

Vytvořte .ssh adresář a uvnitř něj vytvořte soubor s názvem authorized_keys a do něj přidejte veřejný ssh klíč uživatele

mkdir .ssh
cd /home/admin/.ssh
vim authorized_keys

Přidejte veřejný ssh klíč a poté změňte vlastníka adresáře souboru

chown user1 authorized_keys

Zakázat ssh přihlašování

Upravit /etc/ssh/sshd_config

Passwordauthentication no
PermitRootLogin no

Nyní, se k serveru může přihlásit pouze oprávněný uživatel příkazem

ssh user-name@serverIP -p(port Number)

Fail2Ban. pro přihlášení přes SSH

Fail2ban funguje tak, že dynamicky mění pravidla firewallu a zakazuje adresy, které se určitý početkrát neúspěšně pokusily přihlásit.

Instalace Fail2ban :

sudo apt-get update
apt-get install fail2ban

Vytvořte nový soubor jail.local a zkopírujte do něj obsah souboru jail.config a proveďte změny pouze v souboru jail.local

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Upravte soubor /etc/fail2ban/jail.local

Provedete požadované změny:


enabled = true
port = ssh ( provide the port number if the default port is changed )
protocol = tcp
filter = sshd
logpath = /var/log/secure
maxretry = 3 ( max no. of tries after which the host should be banned)
findtime = 600 (This parameter sets the window that fail2ban will pay attention to when looking for repeated failed authentication attempts in seconds)
bantime = 600 (time duration for which the host is banned -in seconds)

Poté restartujte služby fail2ban

service fail2ban restart

IP lze trvale zablokovat nastavením bantime = -1.

Poznámka: FAIL2BAN zablokuje globální IP .

Zabezpečení bývalo někdy nepříjemností, ale nyní je nutností neustále – Martina Navrátilová

Díky za přečtení . Pokud vám tento článek pomohl, pár potlesků pro vás bude znamenat hodně!

Zůstaňte s námi 🙂

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.