10 kroků k zabezpečení linuxového serveru pro produkční prostředí
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 🙂
.