Jak chránit své VPS před DDoS útoky: Praktický průvodce
Komplexní průvodce ochranou vašeho VPS před DDoS útoky pomocí firewallů, omezování rychlosti a dalších osvědčených metod.

DDoS útoky (Distributed Denial of Service) mohou vyřadit váš server z provozu během několika minut, což vede ke ztrátě příjmů, nespokojenosti zákazníků a poškození reputace. V roce 2026 se takové útoky staly sofistikovanějšími a dostupnějšími. Naštěstí se vyvinuly i moderní metody ochrany. Tento průvodce vám ukáže, jak chránit vaše Hiddence VPS před nejběžnějšími typy DDoS útoků.
Co je DDoS útok?
K DDoS útoku dochází, když více počítačů (botnet) současně odešle požadavky na váš server, zahltí jeho zdroje a znepřístupní jej legitimním uživatelům.
Hlavní typy DDoS útoků
- Objemové útoky (L3/L4): UDP flood, ICMP, SYN flood — zahlcení šířky pásma sítě
- Útoky na aplikační vrstvě (L7): HTTP flood, Slowloris — cílí na aplikační vrstvu
- Protokolové útoky: Zneužívají zranitelnosti v síťových protokolech
Vestavěná ochrana Hiddence
Všechny VPS Hiddence zahrnují základní ochranu proti DDoS na vrstvě 3-4 (síťová úroveň). To automaticky filtruje většinu objemových útoků. Útoky na vrstvě 7 (aplikace) však vyžadují další konfiguraci.
Krok 1: Nastavení firewallu
První linií obrany je správná konfigurace firewallu. UFW (Uncomplicated Firewall) je jednoduchý a efektivní nástroj pro Ubuntu/Debian.
# Instalace UFW
sudo apt update && sudo apt install ufw -y
# Povolit SSH (DŮLEŽITÉ! Udělejte to před povolením UFW)
sudo ufw allow 22/tcp
# Povolit HTTP a HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Povolit UFW
sudo ufw enable
# Zkontrolovat stav
sudo ufw status verbose
# Pokročilá pravidla ochrany:
# Omezit SSH připojení (ochrana proti hrubé síle)
sudo ufw limit 22/tcp
# Blokovat záplavy ICMP ping
sudo nano /etc/ufw/before.rules
# Přidejte za *filter:
-A ufw-before-input -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP
# Ochrana proti SYN flood
sudo nano /etc/sysctl.conf
# Přidejte:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5
# Aplikovat změny
sudo sysctl -pKrok 2: Instalace Fail2Ban
Fail2Ban automaticky blokuje IP adresy vykazující podezřelou aktivitu (vícenásobné neúspěšné pokusy o přihlášení, skenování portů).
# Instalace
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# Konfigurace pro ochranu SSH a HTTP
# Vytvořit místní konfiguraci
sudo nano /etc/fail2ban/jail.local
# Přidejte:
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
banaction = ufw
[sshd]
enabled = true
port = 22
logpath = /var/log/auth.log
[nginx-http-auth]
enabled = true
filter = nginx-http-auth
port = http,https
logpath = /var/log/nginx/error.log
[nginx-limit-req]
enabled = true
filter = nginx-limit-req
port = http,https
logpath = /var/log/nginx/error.log
# Restartovat Fail2Ban
sudo systemctl restart fail2ban
# Zkontrolovat stav
sudo fail2ban-client statusKrok 3: Ochrana Nginx
Pokud používáte Nginx, nakonfigurujte omezování rychlosti (rate limiting) pro ochranu před útoky HTTP flood.
sudo nano /etc/nginx/nginx.conf
# Přidejte do bloku http:
http {
# Limit požadavků: 10 požadavků za sekundu na IP
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
# Limit připojení
limit_conn_zone $binary_remote_addr zone=addr:10m;
# Ochrana Slowloris
client_body_timeout 10s;
client_header_timeout 10s;
keepalive_timeout 5s 5s;
send_timeout 10s;
# Zbytek konfigurace...
}
# V bloku server přidejte:
server {
location / {
# Aplikovat limit požadavků
limit_req zone=one burst=20 nodelay;
# Limit připojení: max 10 na IP
limit_conn addr 10;
# Vaše konfigurace...
}
}
# Otestovat konfiguraci a znovu načíst
sudo nginx -t
sudo systemctl reload nginxKrok 4: Použití CDN
Pro maximální ochranu použijte službu CDN, jako je Cloudflare. CDN funguje jako proxy, skrývá skutečnou IP adresu vašeho serveru a pohlcuje většinu DDoS útoků. Výhody: skrytí skutečné IP, automatické filtrování škodlivého provozu, rozložení zátěže, bezplatné SSL/TLS, WAF pro ochranu L7.
- Zaregistrujte se na cloudflare.com (k dispozici bezplatný plán)
- Přidejte svou doménu a změňte záznamy NS u svého registrátora
- Povolte režim 'Proxy' (oranžový mrak) pro záznamy DNS
- Nastavte režim SSL na 'Full (strict)' v sekci SSL/TLS
- Povolte 'DDoS Protection' a 'Bot Fight Mode' v nastavení zabezpečení
Krok 5: Monitorování
Pravidelné monitorování pomáhá včas odhalit útoky.
# Sledování aktivních připojení
watch -n 1 'ss -s'
# Zobrazit top IP podle počtu připojení
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
# Zobrazit protokoly v reálném čase
sudo tail -f /var/log/nginx/access.log
sudo journalctl -u nginx -f
# Zkontrolovat blokované IP ve Fail2Ban
sudo fail2ban-client status sshdNouzová opatření
Pokud útok již probíhá, přijměte následující opatření:
- Identifikujte zdroj: Použijte 'netstat' nebo protokoly k identifikaci útočících IP
- Dočasný blok: sudo ufw insert 1 deny from UTOCICI_IP
- Blokovat celé podsítě: sudo ufw deny from 123.45.0.0/16
- Omezit rate limit: Dočasně snižte limity Nginx na 1-5 req/s
- Kontaktujte podporu: Kontaktujte podporu Hiddence pro aktivaci pokročilé ochrany
- Povolte 'Under Attack Mode' v Cloudflare (pokud používáte)
Doporučené postupy
- Nikdy nezveřejňujte skutečnou IP adresu svého serveru, pokud používáte CDN
- Pravidelně aktualizujte systém: sudo apt update && sudo apt upgrade
- Pro přístup k serveru používejte SSH klíče místo hesel
- Změňte výchozí port SSH (22) na nestandardní
- Nastavte automatické zálohování pro rychlé obnovení
- Pro kritické služby používejte oddělené IP
- Povolte protokolování a pravidelně kontrolujte protokoly na podezřelou aktivitu
- Zvažte použití geografického blokování, pokud vaše služba není globální