Kontrolní seznam zabezpečení linuxových serverů

15 min čtení - 8. května 2026

hero section cover
Obsah
  • Kontrolní seznam pro zabezpečení linuxových serverů
  • Zabezpečte SSH
  • Nakonfigurujte firewally a Fail2Ban
  • Opravy a automatické aktualizace
  • Zabezpečení souborových systémů a oprávnění
  • Povolte povinné řízení přístupu
  • Nastavení protokolování auditů a monitorování
  • Průběžná údržba
Sdílet

Kontrolní seznam krok za krokem pro zabezpečení linuxového serveru. Zahrnuje SSH, firewally, záplatování, oprávnění k souborům, SELinux/AppArmor a auditní protokolování

Kontrolní seznam pro zabezpečení linuxových serverů

Výchozí instalace Linuxu není bezpečná instalace Linuxu. Nesprávná konfigurace, jako je otevřený přístup SSH k rootu, slabé firewally a neopravený software, jsou příčinou většiny narušení bezpečnosti. Nové servery čelí automatickým skenům během několika minut po připojení k internetu, proto by mělo být jejich zabezpečení provedeno jako první.

Tento kontrolní seznam pokrývá základní kroky: uzamčení SSH, konfiguraci firewallů, instalaci oprav, zpřísnění oprávnění k souborům, povolení povinných kontrol přístupu a nastavení protokolování auditu.

Zabezpečte SSH

SSH je váš primární přístupový bod a první věc, kterou útočníci zkoumají. Výchozí konfigurace (ověřování heslem, přihlášení jako root, port 22) je přesně to, co automatizované skenery hledají.

Vygenerujte pár klíčů Ed25519, který nabízí lepší zabezpečení a výkon než RSA:

ssh-keygen -t ed25519

Jakmile bude přihlášení pomocí klíče fungovat, proveďte aktualizaci /etc/ssh/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
AllowUsers yourname
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2

Změňte výchozí port z 22 na něco méně zřejmého. To nezastaví odhodlaného útočníka, ale výrazně omezí rušivé automatické skenování.

Změny vždy otestujte z druhého terminálu před ukončením aktuální relace. Spusťte sudo sshd -t pro kontrolu syntaktických chyb a poté systemctl reload sshd pro použití bez přerušení aktivních připojení.

Přidejte dvoufaktorové ověřování

2FA znamená, že útočník potřebuje jak váš SSH klíč, tak fyzický přístup k vašemu zařízení. Nainstalujte modul Google Authenticator PAM:

sudo apt install libpam-google-authenticator   # Debian/Ubuntu
sudo dnf install google-authenticator           # RHEL/Fedora

Spusťte google-authenticator pro každého uživatele, abyste vygenerovali tajný klíč a kódy pro obnovení. Uložte kódy pro obnovení offline.

Přidejte tento řádek do /etc/pam.d/sshd:

auth required pam_google_authenticator.so

Poté aktualizujte /etc/ssh/sshd_config:

KbdInteractiveAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactive

Během testování nechte otevřenou aktivní relaci. Kódy TOTP závisí na přesném systémovém čase, proto se ujistěte, že běží NTP.

Nakonfigurujte firewally a Fail2Ban

Spusťte firewall na úrovni hostitele, i když je váš server za síťovým firewallem. Princip je jednoduchý: ve výchozím nastavení odepřete veškerý příchozí provoz a poté povolte pouze to, co potřebujete.

Pro Ubuntu/Debian (UFW):

ufw default deny incoming
ufw default allow outgoing
ufw limit ssh
ufw enable

Pro RHEL/Rocky/AlmaLinux (Firewalld):

firewall-cmd --set-default-zone=public
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Zabezpečte síťový stack jádra přidáním těchto položek do /etc/sysctl.conf:

net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1

Nainstalujte Fail2Ban

Fail2Ban monitoruje pokusy o přihlášení a po opakovaných neúspěších blokuje IP adresy. Vytvořte /etc/fail2ban/jail.local (neupravujte jail.conf přímo, aktualizace jej přepíšou) a nakonfigurujte jej tak, aby blokoval IP adresy na jednu hodinu po třech neúspěšných pokusech během 10 minut. Nastavte správný backend pro váš firewall (banaction = ufw nebo banaction = nftables).

Služby auditu a odstranění zastaralých protokolů

Zkontrolujte, co naslouchá pomocí ss -tlnp a co běží pomocí systemctl list-units --type=service --state=running. Deaktivujte vše, co nepotřebujete: Bluetooth, CUPS, avahi-daemon, rpcbind.

Odstraňte zastaralé protokoly, které přenášejí data v otevřeném textu:

Zastaralý protokolPort(y)Bezpečná alternativa
Telnet23SSH
RSH / Rlogin512, 513, 514SSH
FTP21SFTP / FTPS
TFTP69SFTP / SCP
NISVariabilníLDAP / Kerberos

V Debianu/Ubuntu: sudo apt-get --purge remove xinetd nis tftpd telnetd rsh-server. Na systémech založených na RHEL: yum erase xinetd ypserv tftp-server telnet-server rsh-server. Ověřte odstranění pomocí ss -tulpn.

Opravy a automatické aktualizace

Aktualizace systému je nejrychlejší způsob, jak odstranit známé bezpečnostní mezery. Spusťte aktualizace ihned po nasazení:

apt update && apt upgrade -y      # Debian/Ubuntu
dnf update -y                      # RHEL/Rocky

Poté automatizujte bezpečnostní opravy. V systému Debian/Ubuntu nainstalujte unattended-upgrades a nakonfigurujte jej tak, aby aplikoval pouze bezpečnostní opravy. V RHEL/Rocky nainstalujte dnf-automatic a nastavte upgrade_type = security v /etc/dnf/automatic.conf.

Nastavte e-mailová oznámení o výsledcích aktualizací. Zakažte automatické restartování na produkčních serverech (Automatic-Reboot = false), aby k restartům docházelo během plánovaných údržbových oken. Pro prostředí s vysokou dostupností zvažte živé opravy pomocí Canonical Livepatch (Ubuntu) nebo kpatch (RHEL).

Zabezpečení souborových systémů a oprávnění

Nejprve zkontrolujte binární soubory SUID a SGID. Tyto soubory se spouštějí s vyššími oprávněními a jsou hlavním cílem útoků:

find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -ls

Zpřísněte oprávnění u kritických souborů: /etc/shadow by mělo být 600, /etc/passwd by mělo být 644, /etc/ssh/sshd_config by mělo být 600. Nastavte globální umask hodnotu 027 v /etc/profile , aby se zabránilo tomu, že nové soubory budou čitelné pro všechny.

Vyhledejte a opravte soubory s oprávněním pro zápis pro všechny pomocí find / -xdev -type f -perm -0002 -ls. U adresářů, které musí zůstat zapisovatelné pro všechny (jako /tmp), použijte sticky bit: chmod 1777 /tmp.

Možnosti bezpečného připojení

Upravte /etc/fstab , abyste omezili, co se může dít na kritických oddílech:

MožnostiMožnosti připojeníÚčel
/tmpnodev, nosuid, noexecZabraňuje spuštění malwaru v oblasti s oprávněním pro zápis pro všechny
/var/tmpnodev, nosuid, noexecStejná ochrana jako u /tmp
/dev/shmnodev, nosuid, noexecZabezpečuje sdílenou paměť
/homenodev, nosuidBlokuje binární soubory setuid a uzly zařízení
/var/lognodev, nosuid, noexecChrání integritu protokolů

Změny otestujte pomocí mount -o remount před restartem, abyste předešli problémům při spouštění.

Povolte povinné řízení přístupu

SELinux a AppArmor přidávají na úrovni jádra omezení toho, co mohou procesy dělat. Použijte to, co je součástí vaší distribuce: SELinux pro RHEL/CentOS/Fedora, AppArmor pro Ubuntu/Debian/SUSE. Přepínání mezi nimi způsobuje problémy s kompatibilitou.

SELinux: Zkontrolujte stav pomocí getenforce. Spusťte v režimu permissive (setenforce 0) po dobu alespoň dvou týdnů, abyste zachytili chování pracovního zatížení, aniž byste něco narušili. Sledujte porušení pomocí ausearch -m avc -ts recent. Použijte audit2why k diagnostice blokování a audit2allow -M [module_name] k vytvoření modulů zásad. Jakmile budou protokoly čisté, přepněte do vynucovacího režimu pomocí setenforce 1, poté to nastavte jako trvalé v /etc/selinux/config.

AppArmor: Zkontrolujte aktivní profily pomocí aa-status. Nainstalujte apparmor-utils pro příkazy správy. Spusťte profily v režimu upozornění pomocí aa-complain, poté přejděte do vynucovacího režimu pomocí aa-enforce , jakmile si budete jisti. Použijte aa-genprof k vytvoření profilů pro vlastní aplikace.

Nastavení protokolování auditů a monitorování

Bez protokolování nezanechávají incidenty žádné stopy. Nainstalujte auditd:

sudo apt-get install auditd audispd-plugins

Přidejte sledování souborového systému pro kritické soubory:

-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity

Sledujte veškeré provádění příkazů na úrovni root:

-a always,exit -F arch=b64 -S execve -F euid=0 -k root_commands

Načtěte pravidla pomocí augenrules --load a přidejte -e 2 na konec souboru s pravidly, aby byla konfigurace chráněna proti neoprávněným zásahům (změny vyžadují restart).

Sledování integrity souborů pomocí AIDE

AIDE detekuje neoprávněné změny souborů porovnáním aktuálního stavu se známou správnou základnou. Nainstalujte jej, inicializujte databázi pomocí aideinita přesuňte výsledný soubor do /var/lib/aide/aide.db.gz. Nastavte denní cron úlohu pro spuštění aide --check a odesílání výsledků e-mailem správcům.

Centralizujte protokoly

Místní protokoly jsou k ničemu, pokud je útočník s rootovým přístupem smaže. Přesměrujte protokoly na vzdálený server v reálném čase pomocí rsyslogu s TLS šifrováním. Přidejte do /etc/rsyslog.conf:

*.* @@remote-host:514

Set LogLevel VERBOSE ve vaší konfiguraci SSH, aby protokoly obsahovaly otisky klíčů pro každé úspěšné přihlášení. Pro produkční prostředí spravující více serverů poskytují nástroje jako Wazuh nebo OSSEC detekci narušení na úrovni hostitele s centralizovanou analýzou protokolů.

Průběžná údržba

Zabezpečení není jednorázová záležitost. Konfigurace se mění, objevují se nové zranitelnosti a personální změny zanechávají po sobě opuštěné účty.

Týdně: Projděte si protokoly Fail2Ban, zkontrolujte neúspěšné aktualizace a ověřte zálohy.

Měsíčně: Prověřte uživatelské účty a oprávnění, zkontrolujte spuštěné služby, proveďte úplnou kontrolu pomocí Lynis nebo OpenSCAP.

Čtvrtletně: Obměňujte přihlašovací údaje, aktualizujte pravidla firewallu, testujte obnovu po havárii.

Používejte nástroje typu „infrastruktura jako kód“ (infrastructure-as-code), jako je Ansible s rolemi pro zabezpečení dev-sec.io, abyste zajistili konzistentní konfigurace ve všech svých zařízeních a zabránili odchylkám mezi audity.

Dedikované servery FDC vám poskytují plný root přístup a úplnou kontrolu nad vaší bezpečnostní infrastrukturou. Prozkoumejte možnosti dedikovaných serverů a vytvořte si platformu, kde máte kontrolu nad každou vrstvou.

background image
Brzdí váš server váš růst?

Máte už dost pomalého nasazování nebo omezení šířky pásma? Společnost FDC Servers nabízí okamžitý vyhrazený výkon, globální dosah a flexibilní plány vytvořené pro libovolný rozsah.

Aktualizujte nyní

Blog

Tento týden byly představeny

Další články
Průvodce nastavením systému Prometheus a node_exporter

Průvodce nastavením systému Prometheus a node_exporter

Nainstalujte Prometheus a node_exporter, nakonfigurujte cíle scrape, nastavte služby systemd a zabezpečte svůj monitorovací stack. Krok za krokem pro Linux.

15 min čtení - 29. května 2026

XDP a eBPF pro zpracování paketů v systému Linux

14 min čtení - 27. května 2026

Další články
background image

Máte dotazy nebo potřebujete vlastní řešení?

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení