Tento základ vám představí základní zabezpečení serveru Linux. I když se zaměřuje na Debian/Ubuntu, vše zde uvedené můžete aplikovat na jiné distribuce Linuxu. Také vám doporučuji, abyste si tento materiál prozkoumali a případně jej rozšířili.
1. Aktualizujte svůj server
První věc, kterou byste měli udělat pro zabezpečení svého serveru, je aktualizovat místní úložiště a upgradovat operační systém a nainstalované aplikace použitím nejnovějších oprav.
Na Ubuntu a Debianu:
$ sudo apt update && sudo apt upgrade -y
Na Fedoře, CentOS nebo RHEL:
$ sudo dnf upgrade
2. Vytvořte nový privilegovaný uživatelský účet
Dále vytvořte nový uživatelský účet. Nikdy byste se neměli přihlašovat k serveru jako root . Místo toho si vytvořte svůj vlastní účet („
Začněte vytvořením nového uživatele:
$ adduser <username>
Dejte svému novému uživatelskému účtu sudo práva připojením (-a ) sudo skupina (-G ) k členství ve skupině uživatele:
$ usermod -a -G sudo <username>
3. Nahrajte svůj klíč SSH
K přihlášení k novému serveru budete chtít použít klíč SSH. Svůj předem vygenerovaný klíč SSH můžete nahrát na svůj nový server pomocí ssh-copy-id příkaz:
$ ssh-copy-id <username>@ip_address
Nyní se můžete přihlásit ke svému novému serveru, aniž byste museli zadávat heslo.
4. Zabezpečené SSH
Dále proveďte tyto tři změny:
- Zakázat ověřování pomocí hesla SSH
- Omezit root od vzdáleného přihlášení
- Omezit přístup k IPv4 nebo IPv6
Otevřete /etc/ssh/sshd_config pomocí svého textového editoru a zajistěte tyto řádky:
PasswordAuthentication yes
PermitRootLogin yes
vypadat takto:
PasswordAuthentication no
PermitRootLogin no
Dále omezte službu SSH na IPv4 nebo IPv6 úpravou AddressFamily volba. Chcete-li jej změnit tak, aby používal pouze IPv4 (což by mělo být pro většinu lidí v pořádku), proveďte tuto změnu:
AddressFamily inet
Restartujte službu SSH, abyste povolili změny. Pamatujte, že před restartováním serveru SSH je dobré mít dvě aktivní připojení k serveru. Díky tomuto zvláštnímu připojení můžete opravit cokoli, pokud by se restartování pokazilo.
Na Ubuntu:
$ sudo service sshd restart
Na Fedoře nebo CentOS nebo na čemkoli pomocí Systemd:
$ sudo systemctl restart sshd
5. Povolte bránu firewall
Nyní musíte nainstalovat bránu firewall, povolit ji a nakonfigurovat pouze tak, aby umožňovala síťový provoz, který určíte. Uncomplicated Firewall (UFW) je snadno použitelné rozhraní pro iptables což značně zjednodušuje proces konfigurace firewallu.
UFW můžete nainstalovat pomocí:
$ sudo apt install ufw
Ve výchozím nastavení UFW zakazuje všechna příchozí připojení a povoluje všechna odchozí připojení. To znamená, že jakákoli aplikace na vašem serveru se může připojit k internetu, ale cokoli, co se pokouší dostat na váš server, se nemůže připojit.
Nejprve se ujistěte, že se můžete přihlásit povolením přístupu k SSH, HTTP a HTTPS:
$ sudo ufw allow ssh
$ sudo ufw allow http
$ sudo ufw allow https
Poté povolte UFW:
$ sudo ufw enable
Můžete vidět, jaké služby jsou povoleny a zakázány pomocí:
$ sudo ufw status
Pokud někdy budete chtít deaktivovat UFW, můžete tak učinit zadáním:
$ sudo ufw disable
Můžete také použít firewall-cmd, který je již nainstalován a integrován do některých distribucí.
6. Nainstalujte Fail2ban
Fail2ban je aplikace, která zkoumá protokoly serveru a hledá opakované nebo automatické útoky. Pokud jsou nějaké nalezeny, změní firewall tak, aby blokoval útočníkovu IP adresu buď trvale, nebo po určitou dobu.
Fail2ban můžete nainstalovat zadáním:
$ sudo apt install fail2ban -y
Poté zkopírujte přiložený konfigurační soubor:
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
A restartujte Fail2ban:
$ sudo service fail2ban restart
To je všechno. Software bude nepřetržitě zkoumat soubory protokolu a hledat útoky. Po chvíli aplikace vytvoří docela seznam zakázaných IP adres. Tento seznam můžete zobrazit tak, že požádáte o aktuální stav služby SSH pomocí:
$ sudo fail2ban-client status ssh
7. Odeberte nepoužívané síťové služby
Téměř všechny serverové operační systémy Linux jsou dodávány s několika povolenými službami orientovanými na síť. Většinu z nich si budete chtít ponechat. Existuje však několik, které možná budete chtít odstranit. Všechny spuštěné síťové služby můžete zobrazit pomocí ss příkaz:
$ sudo ss -atpu
Výstup z ss se bude lišit v závislosti na vašem operačním systému. Toto je příklad toho, co můžete vidět. Ukazuje, že služby SSH (sshd) a Ngnix (nginx) naslouchají a jsou připraveny k připojení:
tcp LISTEN 0 128 *:http *:* users:(("nginx",pid=22563,fd=7))
tcp LISTEN 0 128 *:ssh *:* users:(("sshd",pid=685,fd=3))
Jak postupujete při odstraňování nepoužívané služby („
Chcete-li odebrat nepoužívanou službu na Debian/Ubuntu:
$ sudo apt purge <service_name>
Chcete-li odebrat nepoužívanou službu na Red Hat/CentOS:
$ sudo yum remove <service_name>
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Spusťte ss -atup znovu, abyste ověřili, že nepoužívané služby již nejsou nainstalovány a spuštěny.
Poslední myšlenky
Tento tutoriál představuje naprosté minimum potřebné k posílení linuxového serveru. Další vrstvy zabezpečení mohou a měly by být povoleny v závislosti na tom, jak se server používá. Tyto vrstvy mohou zahrnovat věci jako konfigurace jednotlivých aplikací, software pro detekci narušení a povolení řízení přístupu, např. dvoufaktorové ověřování.