HostiServer
2026-06-03 19:12
Bezpečnost webu v roce 2026: HTTPS, 2FA, WAF, zálohy 3-2-1 — kompletní průvodce
Jak ochránit web před hackery: 7 kroků, které opravdu fungují
Podle našeho názoru lze klidně říct, že nezabezpečený web v roce 2026 žije přesně do okamžiku, kdy ho najde první automatický skener. A najdou každého — protože boti procházejí celý internet a hledají dvě věci: otevřené administrace a zastaralé CMS. Velký portál s inženýrským týmem a malý WordPress blog jsou pro ně stejný cíl, protože útok je hromadný a nepersonalizovaný.
Paradox je v tom, že 90 % skutečných incidentů nejsou složité cílené útoky, ale elementární věci: slabé heslo administrátora, plugin, který nebyl aktualizován rok a půl, nebo otevřený 22. port s root loginem. Hackeři web „nehackují" — vstupují tam přes to, co majitel sám nechal otevřené.
Níže jsme pro vás připravili 7 kroků, které opravdu fungují. Bez vaty o „hrozbách digitální éry" — konkrétní nastavení, která dáváme klientům po incidentech a která by stálo za to nasadit před nimi.
ℹ️ Pro koho je tento článek: majitelé webů na WordPress / Joomla / Drupal, vývojáři, kteří spravují VPS svých klientů, a technický ředitelé, kteří chtějí rychlý audit bez 200stránkových OWASP dokumentů.
Co byznys po napadení skutečně ztrácí
Mnoho lidí přemýšlí v kategoriích „ukradnou data" nebo „zašifrují soubory". Skutečné dopady jsou složitější a finanční ztráty často nepřicházejí ze samotného útoku, ale z toho, co se děje potom.
1. Vypadnutí z vyhledávání Google
Pokud Google Safe Browsing odhalí na webu škodlivý kód, web dostane ve výsledcích vyhledávání označení „Tento web může poškodit váš počítač" a uživatelé místo obsahu uvidí červenou obrazovku. Návrat do indexu po vyčištění trvá od několika dní do několika týdnů — a celou tu dobu je organická návštěvnost prakticky nulová.
2. Blokace na úrovni prohlížečů
Chrome, Safari i Firefox se synchronizují se seznamy škodlivých webů. To znamená, že i když má někdo přímý odkaz, prohlížeč ho prostě nepustí bez extra kliknutí „Pokračovat přesto". Konverze takové „návštěvnosti" se blíží nule.
3. Právní následky
Únik osobních údajů (e-maily, telefony, historie objednávek) spadá pod GDPR v Evropě nebo příslušný zákon o ochraně osobních údajů v konkrétní jurisdikci. Pokuty se počítají z obratu firmy a oznámit dotčeným zákazníkům je zákonná povinnost — což je samostatná reputační krize.
4. Těžba a spam ve vašem jménu
Napadený web zřídka stojí nečinně, protože nejčastěji je zapojen do takzvaného botnetu — začne rozesílat spam, těžit kryptoměny, útočit na jiné weby. Majitel se o tom dozví z účtu za přenesená data nebo od hostingového poskytovatele, který server zablokuje za zneužívání.
⚠️ Ze zkušenosti technické podpory: v drtivé většině případů obnova webu po napadení trvá 4 až 48 hodin. Prevence — pár hodin jednorázové práce. Matematika je jednoduchá.
Krok 1. HTTPS + HSTS — základní minimum
HTTPS v roce 2026 už není ani otázka bezpečnosti, ale technická hygiena. Bez něj moderní prohlížeče zobrazují varování, přihlašovací formuláře jsou označeny jako nebezpečné a Google web ve výsledcích snižuje. Jakákoli Wi-Fi v kavárně je potenciální místo odposlechu provozu, pokud web jede přes čisté HTTP.
Jaký certifikát vybrat
| Scénář | Typ certifikátu | Komentář |
|---|---|---|
| Blog, vizitka, informační web | Let's Encrypt (zdarma) | Automatická obnova přes Certbot, platnost 45 dní |
| E-commerce, uživatelské účty | OV od Sectigo / DigiCert | Ověření organizace, finanční záruka |
| Banky, fintech, pojišťovny | EV s rozšířenou validací | Maximální úroveň důvěry pro kritické domény |
HSTS — druhá vrstva nad HTTPS
Samotné HTTPS nezachrání před downgrade útokem, kdy útočník donutí prohlížeč otevřít web přes HTTP při prvním spojení. HSTS hlavička říká prohlížeči: „s touto doménou jezdi výhradně přes HTTPS, bez výjimek".
Pro Nginx se přidává jedním řádkem do server bloku:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
ℹ️ Co znamenají parametry: max-age=31536000 — rok v sekundách, prohlížeč si pravidlo zapamatuje. includeSubDomains — rozšířit na všechny subdomény. preload — žádost o zařazení do vestavěného seznamu prohlížečů (přes hstspreload.org).
Krok 2. Aktualizace CMS, pluginů a knihoven
Zastaralý software je hlavní příčinou napadení ve statistikách CVE. WordPress, který obsluhuje zhruba 43 % všech webů na světě, vede ne proto, že by byl nebezpečný z principu, ale proto, že je masový. Samotný CMS se aktualizuje rychle — problémy začínají na straně pluginů a šablon.
Co dělat s jádrem CMS
- Zapnout automatické minor aktualizace — to jsou bezpečnostní záplaty, neporušují kompatibilitu.
- Major aktualizace (5.x → 6.x) instalovat ručně po testu na staging kopii webu.
- Přihlásit se k odběru bezpečnostního newsletteru vývojáře CMS — kritické díry se často zavírají nouzovými záplatami.
Co dělat s pluginy a šablonami
- Jednou měsíčně provádět audit: smazat vše, co nepoužíváte. Méně kódu znamená menší útočnou plochu.
- Kontrolovat datum poslední aktualizace pluginu. Pokud vývojář nevydal opravy déle než 12 měsíců — to je červený praporek, plugin je fakticky opuštěný.
- Nikdy neinstalujte „nulled" placené šablony z torrentů. V 99 % případů je tam zašitý backdoor, který bude tiše pracovat, dokud web nezneužijí na spam.
🚨 Typický scénář z podpory: klient ztratil přístup do administrace přes díru ve starém pluginu galerie. Přes uploader útočník nahrál PHP shell, získal práva a nastavil přesměrování na phishingový web. Obnova ze zálohy zabrala kolem 2 hodin — ale bez zálohy by byla ztráta totální.
Pravidlo před aktualizacemi
Před jakoukoli major aktualizací — záloha. Před aktualizací velkého e-commerce pluginu (WooCommerce, Magento moduly) — záloha a staging test. Záloha udělaná „až potom" nepomůže s ničím.
Krok 3. Hesla a dvoufaktorová autentizace
Většina vážných napadení administrací není „hackerství", ale banální brute-force nebo credential stuffing (zkoušení hesel uniklých z jiných míst). Boti zkoušejí 24/7, a pokud je heslo admin / 123456 / qwerty — je to otázka pár minut.
Jak vypadá normální heslo v roce 2026
- Délka — od 16 znaků. Složitost je důležitější méně než délka:
correct horse battery staplese prolomí hůř nežP@ss1! - Unikátní pro každou službu. Pokud je heslo jedno na 10 účtů — po prvním úniku je všech 10 v rizikové zóně.
- Vygenerované, ne vymyšlené v hlavě. Náhodný řetězec 20–30 znaků se nedá zapamatovat — a není to třeba, od toho jsou manažery.
- Neukládá se v textovém souboru, v prohlížeči bez master hesla nebo v messengeru. Pouze ve specializovaném manažeru: Bitwarden, 1Password, KeePassXC (které mají stejně vestavěný generátor).
2FA — to, co zastaví 99 % automatických útoků
Dvoufaktorová autentizace přidává druhou vrstvu nad heslo: jednorázový kód z mobilní aplikace. I když heslo zcela unikne, bez přístupu k telefonu se útočník dovnitř nedostane. Není to marketing — je to základní standard, který by měl být zapnutý všude, kde jsou byť trochu citlivá data.
| Metoda 2FA | Spolehlivost | Komentář |
|---|---|---|
| SMS / e-mail kód | Slabá | SMS je zranitelná vůči SIM-swap útokům, e-mail — kompromitaci schránky. Lepší než nic, ale ne pro kritické účty. |
| TOTP (Google Authenticator, Authy) | Vysoká | Kód se generuje lokálně na telefonu, nepřenáší se po síti. Výchozí standard. |
| Hardware key (YubiKey) | Maximální | Fyzický klíč, který nelze ukrást vzdáleně. Pro adminy kritické infrastruktury. |
💡 Kam nasadit 2FA jako první: panel hostingového poskytovatele, registrátor domény, e-mailová schránka administrátora (přes ni se resetují hesla všude), GitHub/GitLab s kódem projektu, administrace CMS.
Krok 4. Ochrana na úrovni serveru
Hosting je základ. Pokud je server špatně nakonfigurován, i dokonale chráněný web bude zranitelný: útočí se na operační systém, síťovou vrstvu nebo sousední weby na stejném serveru. Klíčová otázka pro poskytovatele tedy není „kolik CPU", ale „jak izolujete projekty a co se síťovou ochranou".
Základní stack serverové ochrany
1. Web Application Firewall (WAF)
WAF analyzuje HTTP provoz dřív, než dorazí na web, a blokuje typické vzory útoků: SQL injekce, XSS, pokusy o path traversal, exploity konkrétních CVE. Na úrovni serveru to může být ModSecurity s pravidly OWASP CRS, na úrovni CMS — Wordfence nebo Sucuri.
2. Ochrana proti DDoS
Volumetrické útoky (silné toky odpadního provozu) se v roce 2026 měří v desítkách a stovkách Gbit/s. Samostatně z jednoho serveru se proti nim ubránit nelze — potřebujete infrastrukturu s filtry na úrovni datového centra. Útoky na aplikační vrstvě (pomalé požadavky vypadající jako legitimní) chytá už WAF.
3. Izolace projektů
Na kvalitním VPS hostingu sedí každý klient ve vlastním KVM kontejneru s vyhrazenými prostředky — útok na souseda se vašeho serveru fyzicky nemůže dotknout, protože izolace je zajištěna na úrovni hypervisoru. Máte vlastní jádro OS, vlastní firewall, vlastní logy — nic z toho „neprosakuje" mezi klienty. Pokud někomu na stejném železe napadnou projekt, ten váš stojí stranou.
4. Fail2ban proti brute-force
Utilita, která monitoruje logy (auth.log, nginx access.log) a automaticky banuje IP adresy po N neúspěšných pokusech. Základní konfigurace pro SSH:
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 600
bantime = 3600
3 neúspěšné pokusy za 10 minut — ban na hodinu. Pro administrace CMS se píše samostatný filtr pro /wp-login.php nebo /administrator.
💡 Jednoduchý dodatečný trik: změňte výchozí SSH port z 22 na něco nestandardního (například z rozsahu 49152+). Nezastaví to cílený útok — pokud se na váš server někdo zaměří konkrétně, skener portů nový stejně najde. Ale drtivá většina automatického brute-force buší jen na port 22, takže tato změna okamžitě odřízne hlavní masu šumu v logech.
5. Omezení přístupu do administrace podle IP
Pokud chodíte do administrace z několika stálých lokací (kancelář, domov, VPN), má smysl ji uzavřít zcela na úrovni nginx:
location /wp-admin {
allow 198.51.100.42; # kancelář
allow 203.0.113.0/24; # pracovní VPN
deny all;
}
ℹ️ IP adresy v příkladu jsou bloky RFC 5737 vyhrazené pro dokumentaci. V reálné konfiguraci dosaďte své skutečné IP.
6. Security Headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Content-Security-Policy "default-src 'self'; img-src 'self' https:; script-src 'self'" always;
CSP je nejsložitější z nich — musí se ladit pro konkrétní web, jinak rozbije analytiku a externí skripty. Úroveň své ochrany můžete ověřit na securityheaders.com.
Krok 5. Pravidelné skenování škodlivého kódu
I při dokonalém nastavení může web dostat malware jiným vektorem: virus na pracovní stanici administrátora ukradl FTP přístupy, nebo jeden z vývojářů omylem commitnul do repozitáře klíče od produkce. Proto pravidlo „důvěřuj, ale prověřuj" není fráze, ale pracovní princip.
Co skenovat a čím
- Souborový systém: ClamAV, maldet (Linux Malware Detect), Imunify360. Spouštět přes cron minimálně jednou denně pro aktivní projekty.
- Integrita systémových souborů CMS: Wordfence pro WordPress porovnává soubory s referencemi z oficiálního repozitáře — jakákoli změna vyvolá alert.
- Externí skenování: Sucuri SiteCheck, VirusTotal — kontrolují web z pohledu návštěvníka, chytají přesměrování na phishing a vložené JS.
- Databáze: ve WordPressu útočníci často přidávají falešné adminy nebo vkládají spam do wp_options. Jednou měsíčně stojí za to projít tabulku users a podívat se na post_content na výskyt podivných <script>.
Co dělat, když něco najdete
| Nález | Akce |
|---|---|
| Jednotlivý infikovaný soubor | Smazat, zkontrolovat přístupové logy k němu, nahradit čistou verzí z oficiálního zdroje. |
| PHP shell v /uploads | Smazat, zakázat spouštění PHP v adresáři uploadů (location blok s deny pro .php). |
| Falešný admin v DB | Smazat, změnit hesla všech skutečných adminů, analyzovat, kdy a odkud byl účet vytvořen. |
| Hromadná infekce, nejasná příčina | Rollback na čistou zálohu, kompletní audit, výměna všech klíčů a hesel. |
Krok 6. Princip minimálních oprávnění
Majitelé webů často rozdávají přístupy s logikou „ať má všechno, kdyby náhodou". To je z hlediska bezpečnosti nejhorší přístup. Čím víc lidí má Admin práva, tím víc útočných vektorů na tyto účty a tím těžší je vyšetřit incident.
Rozdělení rolí v CMS
- Administrátor — minimum lidí, ideálně 1–2. Přístup k pluginům, uživatelům, nastavení.
- Editor — pro obsahové manažery. Může publikovat cokoli, ale do pluginů nesahá.
- Autor — pro externí copywritery. Publikuje pouze své materiály.
- SEO / analytika — samostatná role přes plugin typu User Role Editor, přístup pouze k relevantním sekcím.
Přístupy pro vývojáře a dodavatele
- Samostatný SSH klíč pro každého vývojáře. Root přístup nikomu — pro konkrétní příkazy psát pravidla do
sudoers. - SSH pouze přes klíče, autentizace heslem vypnutá (
PasswordAuthentication nov sshd_config). - Přístupy freelancerům — vytvářejte rovnou s nastaveným datem expirace (např. přes
chage -Ev Linuxu). Pak si nemusíte pamatovat na jejich odstranění po skončení projektu — účet expiruje sám. - Pro jednorázové úkoly — sudo s logováním místo přímého rootu.
⚠️ Častá chyba: vývojář, který před měsícem dodal projekt, má pořád SSH klíč a FTP login. Pokud mu ukradnou nebo napadnou notebook, je to automaticky vektor do vaší infrastruktury. Seznam aktivních klíčů a uživatelů kontrolujte jednou za čtvrtletí.
Krok 7. Zálohy podle pravidla 3-2-1
To je poslední linie obrany. Pokud ransomware zašifroval soubory nebo vývojář omylem dropnul produkční databázi — bez zálohy může být ztráta totální a nevratná. Pravidlo 3-2-1 je oborový standard, který vznikl ještě před érou cloudu, a stále platí.
Co znamená „3-2-1"
- 3 kopie dat — originál plus dvě zálohy. Ne jedna, ne „někdy bude potřeba".
- 2 různé typy médií nebo systémů — například záloha na stejném serveru plus záloha ve vzdáleném úložišti. Pokud obě kopie leží na stejném disku, nejsou to dvě kopie.
- 1 kopie zcela oddělená — v cloudu, na jiném kontinentu, offline. Pokud se ransomware dostane na server a zničí lokální zálohy, tahle kopie je to, co zachrání byznys.
Jak často zálohovat
| Typ projektu | Frekvence | Uchovávat |
|---|---|---|
| Osobní blog, vizitka | Jednou týdně | 30 dní |
| Firemní web | Každé 3–5 dní | 30–60 dní |
| E-shop | Denně (DB — několikrát denně) | 90 dní |
| Zpravodajský portál, fórum | Několikrát denně | 30–60 dní |
| SaaS, finanční služby | Nepřetržitá replikace + denní snapshoty | 1 rok+ |
| Staging / dev | Před změnami | Podle uvážení týmu |
🚨 Největší chyba se zálohami: dělají se, ale nikdy se netestují. Záloha existuje teprve tehdy, když byla úspěšně obnovena. Jednou za čtvrtletí nasaďte čerstvou kopii na testovací doménu a ujistěte se, že web nastartuje a databáze se v pořádku čte. Jinak se v kritickém okamžiku může ukázat, že je archiv poškozený nebo v něm chybí půlka tabulek.
Top 5 chyb, které dělá skoro každý
- „Můj web je moc malý, koho bych zajímal." Boti nevybírají oběti podle velikosti byznysu. Skenují /16 a /24 podsítě po řadě a hledají známé díry. Malý web je zajímavý právě tím, že ho nikdo nehlídá.
- Jedno heslo na hosting, doménu a poštu. Pokud heslo unikne z kteréhokoli ze tří, útočník získává kontrolu nad vším. Včetně možnosti převést doménu k jinému registrátorovi.
- „Zálohu má hosting, proč bych ji měl mít vlastní." Zálohy na stejném serveru, kde běží web, nejsou zálohy, ale iluze. Při kompromitaci serveru nebo ransomwaru jdou ke dnu spolu s produkcí.
- Přihlašování do administrace z veřejné Wi-Fi bez VPN. I s HTTPS existují vektory, které fungují na úrovni DNS a ARP spoofingu. Buď VPN, nebo se z kavárny do kritických služeb nelogujte.
- Ignorování logů. V access.log a auth.log lze útok často vidět den nebo dva před tím, než se podaří. Ale nikdo se tam nedívá, dokud web nepadne. Základní monitoring (Fail2ban + notifikace do Telegramu nebo na e-mail) — to je hodina nastavení a měsíce klidu.
🚀 Spolehlivý hosting = základní bezpečnost hned z krabice
Většina kroků z tohoto článku není složitá práce, ale vyžaduje čas a zkušenost. Na hostingu Hostiserver je část těchto věcí nakonfigurována ve výchozím nastavení a se zbytkem pomáhá technická podpora.
💻 Cloud (VPS) Hosting
- Od $19.95/měs — KVM izolace každého klienta na úrovni hypervisoru
- WAF a DDoS ochrana — filtrování provozu na úrovni sítě datového centra
- Automatické zálohy — denní snapshoty s uložením ve vzdáleném úložišti
- Bezplatný SSL Let's Encrypt s automatickou obnovou a nakonfigurovaným HSTS
- Pomoc s Fail2ban, security headers, hardening — od inženýrů technické podpory
- 24/7 podpora — <10 min odezva, skuteční inženýři, ne call centrum
🖥️ Dedikované servery
- Od $90/měs — úplná izolace, žádní sousedé na železe
- DDoS ochrana v ceně tarifu, bez příplatků za „premium"
- Nastavení OS hardeningu při migraci — sshd, fail2ban, firewall
- SLA 99.9 % uptime a bezplatná migrace od jiného poskytovatele
- Flexibilní konfigurace CPU, RAM, disků pod váš projekt
💬 Nejste si jisti, která varianta je pro vás?
💬 Napište nám a se vším pomůžeme!
Časté dotazy
- Stačí jeden security plugin pro WordPress, abych se o ochranu nemusel starat?
Ne. Plugin typu Wordfence nebo Sucuri pokrývá část vektorů na úrovni CMS — skenování souborů, filtrování požadavků, 2FA. Ale neochrání před útoky na úrovni sítě (DDoS), nešifruje provoz (HTTPS), nezachrání před ransomwarem (zálohy) a za vás neudělá aktualizace pluginů. Je to jedna z vrstev ochrany, ne celá zeď.
- Jak poznat, že web už byl napaden?
Typické známky: prudký pokles pozic v Google bez zjevné příčiny, varování „This site may be hacked" ve výsledcích vyhledávání, nestandardní přesměrování z mobilů (protože škodlivý kód se často zaměřuje pouze na mobile UA), neznámé soubory v adresářích /uploads nebo /tmp, noví administrátoři v databázi, které jste nevytvořili, a abnormální nárůst zátěže serveru. Pokud je přítomný byť jen jeden z těchto příznaků, je čas spustit kompletní sken a podívat se do logů.
- Co dělat hned, pokud byl web už napaden?
Krok za krokem: 1) přepnout web do režimu údržby nebo dočasně zavřít přístup; 2) změnit všechna hesla — administrace, FTP, SSH, DB, panel hostingu, registrátor domény, pošta; 3) udělat čerstvou zálohu aktuálního stavu (pro vyšetřování); 4) obnovit web z poslední čisté zálohy před infekcí; 5) aktualizovat CMS a všechny pluginy; 6) zanalyzovat, jak se dostali dovnitř — jinak opakovaná infekce přijde přes stejný vektor. Pokud je to složité dělat sám, kontaktujte technickou podporu hostingu; slušní poskytovatelé nabízejí službu vyčištění.
- Kolik reálně stojí komplexní ochrana webu?
Většina věcí z tohoto článku je zdarma: HTTPS přes Let's Encrypt, fail2ban, security headers, 2FA, aktualizace CMS. Placené prvky jsou typicky: premium security plugin (~$100–200 ročně), vzdálené úložiště pro zálohy (od pár dolarů měsíčně), kvalitní hosting s vestavěným WAF a DDoS ochranou. Roční rozpočet na bezpečnost malého/středního webu se tedy pohodlně vejde do $300–500. Pro srovnání, obnova po jednom vážném incidentu stojí od $500 do několika tisíc plus reputační ztráty.
- Je potřeba SSL/HTTPS, když web nemá formuláře ani platby?
Ano. Za prvé, Google od roku 2018 označuje weby bez HTTPS jako „Not secure" v Chromu — to ovlivňuje důvěru uživatelů. Za druhé, bez HTTPS není podpora HTTP/2 a HTTP/3, takže web bude znatelně pomalejší. Za třetí, HTTPS chrání před injection útoky na úrovni poskytovatele (ano, poskytovatelé do HTTP provozu občas vkládají vlastní reklamu). Certifikát přes Let's Encrypt je zdarma, nastaví se za 5 minut, prostě není důvod ho nemít.
- Pomůže Cloudflare místo všeho ostatního?
Cloudflare pokrývá část úkolů: CDN, základní DDoS ochrana, WAF na bezplatném tarifu omezený, na placených plnohodnotný. Ale není to náhrada lokální hygieny: aktualizací, hesel, záloh, security headers, fail2ban. Pokud někdo přijde do administrace s ukradeným heslem, Cloudflare ho nezastaví. Je to extra vrstva, která dobře funguje spolu se vším výše popsaným, ne místo toho.