🔒 Úvod

Apache HTTP Server (Apache2) je jedným z najrozšírenejších webových serverov na svete. Na serveroch s viacerými aplikáciami (napr. WordPress, Nextcloud, Roundcube) je Apache často základnou súčasťou. Predvolená konfigurácia však ponecháva procesy Apache s vysokými právami, čo zvyšuje riziko zneužitia v prípade zraniteľnosti.

V tomto článku si ukážeme, ako výrazne zlepšiť bezpečnosť Apache pomocou systemd sandboxingu na Ubuntu 24.04 LTS.


🧪 Kontrola stavu – systemd-analyze security

Na zistenie úrovne zabezpečenia bežiacej služby použijeme nástroj:

Výsledok pred hardeningom:


🔧 Vytvorenie override konfigurácie pre Apache2

Systemd umožňuje pridať vlastné bezpečnostné nastavenia bez zásahu do pôvodného súboru služby.

  1. Vytvoríme adresár pre override súbor:
  1. Vytvoríme súbor override.conf:
  1. Vložíme nasledujúcu konfiguráciu:

🔄 Aplikovanie zmien

Po uložení je potrebné obnoviť a reštartovať službu:

Overíme stav služby:


✅ Overenie výsledkov

Po aplikovaní bezpečnostných pravidiel znova spustíme audit:

Výsledok po hardeningu:

Z pôvodného stavu UNSAFE sme sa dostali na výrazne bezpečnejšiu úroveň. Apache teraz beží v izolovanom prostredí, bez prístupu do systému, s minimálnymi oprávneniami.

📝 Vysvetlenie vybraných nastavení

ParameterPopis
PrivateTmp=trueApache má vlastný /tmp, nemôže čítať cudzie dočasné súbory
ProtectSystem=strictRoot systém len na čítanie (okrem povolených adresárov)
ProtectHome=trueZablokovaný prístup k /home
NoNewPrivileges=trueŽiadne nové oprávnenia cez setuid/setcap
CapabilityBoundingSetPovolené len minimálne schopnosti potrebné na beh servera
RestrictAddressFamiliesPovolí len IPv4, IPv6 a UNIX sockety
MemoryDenyWriteExecuteBlokuje vykonateľné zápisy do pamäte – ochrana pred shellcode

🛡 Záver

Hardening Apache2 cez systemd je jednoduchý, no mimoriadne účinný spôsob, ako zvýšiť bezpečnosť na úrovni systému bez zásahu do samotnej konfigurácie Apache.

Táto metóda je ideálna na serveri s viacerými službami – a ešte dôležitejšia, ak je Apache dostupný z internetu.

🧭 Odporúčaný postup ďalej

  • V článku č. 2 sa pozrieme na Fail2Ban, ktorý chráni server pred brute-force útokmi.
  • V ďalších častiach sa pozrieme na:
    • ClamAV, MariaDB, Docker, PHP-FPM, Postfix, Dovecot
    • a ako ich všetky izolovať podobným spôsobom.

Ak máš otázky k tomuto hardeningu, alebo chceš zdieľať vlastné nastavenia, napíš do komentára alebo nás kontaktuj. 🔐✨