Opevnění Vaší Linuxové Pevnosti: Základní Zabezpečení pro Debian a Ubuntu Servery

April 25, 2024 | By Pietro Dubsky

Debian a Ubuntu jsou dvě z nejpopulárnějších linuxových distribucí pro servery, ceněné pro svou stabilitu, rozsáhlé repozitáře balíčků a silnou komunitní podporu. Výchozí instalace, ačkoli funkční, však často není dostatečně posílena proti nesčetným hrozbám přítomným na internetu. Zabezpečení vašeho Linux serveru je kritický a neustálý proces. Tento průvodce pokryje základní kroky k opevnění vašeho serveru Debian nebo Ubuntu.

Proč je Posílení Zabezpečení Serveru Klíčové

Servery, zejména ty vystavené internetu, jsou neustálými cíli pro automatizované útoky, hackery hledající zranitelnosti a botnety. Kompromitovaný server může vést k:

  • Únikům dat a krádeži citlivých informací.
  • Přerušení služeb a prostojům.
  • Využití vašeho serveru k škodlivým aktivitám (např. odesílání spamu, hostování phishingových stránek, účast na DDoS útocích).
  • Poškození pověsti.
  • Finančním ztrátám.

Posílení zabezpečení serveru (server hardening) zahrnuje konfiguraci systému tak, aby se snížila jeho útočná plocha a zlepšila celková bezpečnostní pozice.

Počáteční Nastavení Serveru a Uživatelské Účty

1. Vytvořte Neprivilegovaného Uživatel s Právy Sudo

Přihlašování a práce přímo jako uživatel root je riskantní. Jediná chyba může mít katastrofální následky. Akce: Ihned po počátečním nastavení serveru vytvořte nový uživatelský účet a udělte mu práva sudo.

# Jako root
adduser novyuzivatel
usermod -aG sudo novyuzivatel
# Poté se odhlaste jako root a přihlaste se jako novyuzivatel
Vždy používejte tohoto uživatele pro každodenní správu a příkazy vyžadující administrátorská oprávnění prefixujte slovem sudo.

2. Zakažte Přihlášení Roota přes SSH

Jakmile je váš sudo uživatel nastaven a otestován, zakažte přímé přihlášení roota přes SSH, abyste snížili riziko útoků hrubou silou cílících na root účet. Akce: Upravte konfigurační soubor SSH (sudo nano /etc/ssh/sshd_config) a nastavte:

PermitRootLogin no
Poté restartujte službu SSH: sudo systemctl restart ssh nebo sudo systemctl restart sshd.

3. Používejte Silná Hesla (a Zvažte SSH Klíče)

Ujistěte se, že všechny uživatelské účty, zejména váš sudo uživatel, mají velmi silná, jedinečná hesla. Akce: K jejich generování použijte správce hesel. Ještě lépe, nastavte ověřování pomocí SSH klíčů, které je výrazně bezpečnější než ověřování heslem, a poté zcela zakažte ověřování heslem pro SSH (viz další sekce).

Zabezpečení Přístupu přes SSH

SSH (Secure Shell) je primární způsob vzdáleného přístupu a správy Linux serverů. Jeho zabezpečení je prvořadé.

1. Používejte Ověřování Pomocí SSH Klíčů

SSH klíče se skládají z veřejného klíče (umístěného na serveru) a soukromého klíče (bezpečně uloženého na vašem klientském počítači). Přihlásit se můžete pouze pokud vlastníte soukromý klíč. Akce: Vygenerujte pár SSH klíčů na vašem lokálním počítači (ssh-keygen) a zkopírujte veřejný klíč do souboru ~/.ssh/authorized_keys vašeho sudo uživatele na serveru. Otestujte to a poté zvažte zakázání ověřování heslem.

2. Zakažte Ověřování Heslem pro SSH (Po Nastavení Klíčů)

To zabraňuje útokům hrubou silou na hesla proti SSH. Akce: V /etc/ssh/sshd_config nastavte:

PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
Restartujte službu SSH.

3. Změňte Výchozí SSH Port (Bezpečnost Skrze Neznámo - Volitelné)

Automatizovaní boti často skenují SSH na výchozím portu 22. Jeho změna může snížit počet automatizovaných pokusů o přihlášení. Akce: V /etc/ssh/sshd_config změňte Port 22 na nestandardní port (např. Port 2222). Nezapomeňte povolit nový port ve vašem firewallu před restartováním SSH. Poznámka: Toto je menší bezpečnostní opatření a nemělo by se na něj spoléhat jako na primární obranu.

4. Implementujte Fail2Ban

Fail2Ban je software pro prevenci narušení, který monitoruje log soubory (např. pro SSH, Apache) a zakazuje IP adresy, které vykazují škodlivé známky, jako je příliš mnoho neúspěšných pokusů o zadání hesla. Akce: Nainstalujte a nakonfigurujte Fail2Ban:

sudo apt update
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local # Nakonfigurujte nastavení, zejména pro SSH
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Konfigurace Firewallu

Firewall řídí příchozí a odchozí síťový provoz na základě předdefinovaných bezpečnostních pravidel.

1. Používejte UFW (Uncomplicated Firewall) nebo nftables

Debian a Ubuntu často přicházejí s UFW, uživatelsky přívětivým rozhraním pro správu pravidel firewallu (které pod kapotou používá nftables nebo iptables). Akce:

  • Nainstalujte UFW, pokud není přítomen: sudo apt install ufw
  • Nastavte výchozí politiky: sudo ufw default deny incoming a sudo ufw default allow outgoing.
  • Povolte nezbytné služby (např. SSH na vašem vlastním portu, HTTP, HTTPS):
    sudo ufw allow 2222/tcp  # Nebo váš vlastní SSH port
    sudo ufw allow http
    sudo ufw allow https
  • Povolte UFW: sudo ufw enable
  • Zkontrolujte stav: sudo ufw status verbose

Systémové Aktualizace a Správa Záplat

Udržování vašeho systému a nainstalovaných balíčků aktuálních je jedním z nejúčinnějších způsobů ochrany proti známým zranitelnostem. Akce:

  • Pravidelně aktualizujte svůj systém:
    sudo apt update
    sudo apt upgrade
    sudo apt full-upgrade # Občas, pro aktualizace jádra atd.
    sudo apt autoremove   # Odstranění nepoužívaných balíčků
  • Zvažte povolení unattended-upgrades pro automatickou instalaci bezpečnostních aktualizací: sudo apt install unattended-upgrades a nakonfigurujte jej (sudo dpkg-reconfigure --priority=low unattended-upgrades).

Minimalizujte Nainstalovaný Software (Snižte Útočnou Plochu)

Každý kus softwaru nainstalovaný na vašem serveru potenciálně zvyšuje jeho útočnou plochu. Akce: Odinstalujte veškeré nepotřebné balíčky a služby. Pokud je nepoužíváte, odstraňte je.

sudo apt list --installed # Pro zobrazení nainstalovaných balíčků
sudo apt remove nazev_balicku
sudo apt purge nazev_balicku # Pro odstranění i konfiguračních souborů

Logování a Monitorování

Systémové logy jsou klíčové pro detekci podezřelé aktivity, řešení problémů a pro forenzní analýzu po incidentu. Akce:

  • Seznamte se s běžnými umístěními log souborů (např. /var/log/auth.log pro autentizaci, /var/log/syslog pro obecné systémové zprávy).
  • Ujistěte se, že služby jako rsyslog běží.
  • Zvažte centralizované logování, pokud spravujete více serverů.
  • Nainstalujte nástroje jako logwatch pro získání denních souhrnů aktivity v logu.

Systémy Detekce Narušení (IDS)

IDS může monitorovat síťové nebo systémové aktivity na škodlivé aktivity nebo porušení politik a hlásit je. Akce: Zvažte host-based IDS (HIDS) jako:

  • Tripwire (AIDE je bezplatná alternativa): Monitoruje integritu souborového systému pro neoprávněné změny.
  • OSSEC nebo Wazuh: Komplexnější HIDS řešení nabízející analýzu logů, kontrolu integrity, detekci rootkitů a upozornění v reálném čase.

Pravidelné Bezpečnostní Audity

Pravidelně kontrolujte bezpečnostní konfiguraci a logy vašeho serveru. Akce:

  • Spouštějte nástroje jako lynis (sudo apt install lynis poté sudo lynis audit system) k provedení bezpečnostního auditu a získání návrhů na posílení zabezpečení.
  • Zkontrolujte naslouchající porty: sudo ss -tulnp nebo sudo netstat -tulnp.
  • Zkontrolujte uživatelské účty a sudo oprávnění.

Fyzická Bezpečnost (Pokud Je Relevantní)

Pokud spravujete fyzické servery, ujistěte se, že jsou v bezpečném místě s omezeným přístupem.

Závěr

Zabezpečení serveru Debian nebo Ubuntu je neustálý závazek, nikoli jednorázový úkol. Prostředí hrozeb se neustále mění, takže neustálá ostražitost, pravidelné aktualizace a periodické bezpečnostní kontroly jsou nezbytné. Implementací těchto základních kroků posílení zabezpečení můžete výrazně zlepšit bezpečnostní pozici vašich Linux serverů a chránit je proti široké škále běžných útoků. Nezapomeňte přizpůsobit tato doporučení vaší konkrétní roli serveru a bezpečnostním požadavkům.

« Back to Blog