Community
48
HostiServer
2026-06-03 19:12

Bezpečnost webu v roce 2026: HTTPS, 2FA, WAF, zálohy 3-2-1 — kompletní průvodce

⏱️ Doba čtení: ~10 minut | 📅 Aktualizováno: červen 2026

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 staple se 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.

Výstup příkazu fail2ban-client status sshd se seznamem zabanovaných IP adres útočníků

💡 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 no v sshd_config).
  • Přístupy freelancerům — vytvářejte rovnou s nastaveným datem expirace (např. přes chage -E v 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ý

  1. „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á.
  2. 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.
  3. „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í.
  4. 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.
  5. 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.

Fragment nginx access.log s typickými pokusy o útoky: požadavky na wp-admin, .env, phpmyadmin

🚀 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.

Contents

Sdílejte tento článek

MANAGED VPS STARTING AT

$19 95 / mo

NEW INTEL XEON BASED SERVERS

$80 / mo

CDN STARTING AT

$0 / mo

 

Tento web používá cookies. Používáním tohoto webu souhlasíte s politikou ochrany osobních údajů.