====== Zabezpečení webových serverů ====== Zabezpečení webového serveru (jako [[it:sw:apache|Apache]] nebo Nginx) na systému [[it:sw:linux|Linux]] vyžaduje kombinaci správné konfigurace, šifrování a neustálého monitoringu. Cílem je minimalizovat "plochu útoku" (attack surface). ===== 1. Šifrování komunikace (HTTPS/TLS) ===== Základem bezpečného webu je protokol HTTPS. Ten zajišťuje, že data mezi prohlížečem a serverem nemůže nikdo cestou přečíst ani pozměnit. * **SSL/TLS certifikáty:** Dnes je standardem využívat bezplatnou autoritu **Let's Encrypt**. * **HSTS (HTTP Strict Transport Security):** Hlavička, která prohlížeči přikáže komunikovat výhradně přes HTTPS, čímž brání útokům typu SSL Stripping. --- ===== 2. Zabezpečení na úrovni sítě (Firewall) ===== Server by měl mít otevřené pouze ty porty, které nezbytně potřebuje k provozu. Vše ostatní musí blokovat firewall (např. ''ufw'', ''firewalld'' nebo ''iptables''). ^ Port ^ Služba ^ Doporučení ^ | **80** | HTTP | Přesměrovat na 443 | | **443** | HTTPS | Povolit pro všechny | | **22** | SSH | Omezit na konkrétní IP adresy nebo změnit port | | **3306** | MySQL | Zakázat přístup zvenčí (povolit pouze localhost) | --- ===== 3. Obrana proti útokům hrubou silou (Brute Force) ===== Útočníci se neustále pokoušejí uhodnout hesla ke službám jako SSH nebo administrace webu. * **Fail2Ban:** Nástroj, který sleduje logy a po několika neúspěšných pokusech o přihlášení automaticky zablokuje IP adresu útočníka na úrovni firewallu. * **SSH klíče:** Úplný zákaz přihlašování heslem a vyžadování privátního klíče. --- ===== 4. Bezpečnostní hlavičky HTTP ===== Správně nastavený webový server by měl v každé odpovědi posílat hlavičky, které chrání uživatele v prohlížeči: * **Content Security Policy (CSP):** Určuje, ze kterých domén může web stahovat skripty a obrázky. Brání útokům typu **XSS** (Cross-Site Scripting). * **X-Content-Type-Options:** Brání prohlížeči v "hádání" typu souboru (MIME-sniffing). * **X-Frame-Options:** Zabraňuje zobrazení webu v ''iframe'' na cizí stránce, což brání útoku **Clickjacking**. --- ===== 5. Oprávnění a izolace systému ===== Pád aplikace nebo napadení webu by nemělo vést k ovládnutí celého serveru. * **Principle of Least Privilege:** Webový server nesmí běžet pod uživatelem ''root''. Musí mít vlastní omezený účet (např. ''www-data''). * **Zakázání Directory Listing:** Útočník by neměl vidět seznam souborů v adresářích, kde chybí soubor index.html. * **Kontejnerizace:** Provozování webu v [[it:sw:docker|Dockeru]] poskytuje další vrstvu izolace od hostitelského systému. --- ===== 6. Detekce a prevence (WAF a IDS) ===== Pro pokročilé zabezpečení se používají specializované nástroje: * **WAF (Web Application Firewall):** Např. modul **ModSecurity** pro Apache. Analyzuje HTTP provoz a blokuje podezřelé dotazy (SQL Injection, XSS). * **IDS/IPS:** Systémy pro detekci a prevenci průniku, které sledují neobvyklé chování v celém systému. ---- //Související články:// * [[it:sw:apache|Apache: Konfigurace modulů]] * [[it:sw:linux_basics|Linux: Správa uživatelů a práv]] * [[it:sw:docker|Docker: Izolace aplikací]] //Tagy: {{tag>security webserver cybersecurity https firewall sysadmin it-basics}}//