Zpět na blog
Leden 19, 2026Návody

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.

Jak chránit své VPS před DDoS útoky: Praktický průvodce

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.

bash
# 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 -p

Krok 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ů).

bash
# 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 status

Krok 3: Ochrana Nginx

Pokud používáte Nginx, nakonfigurujte omezování rychlosti (rate limiting) pro ochranu před útoky HTTP flood.

bash
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 nginx

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

bash
# 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 sshd

Nouzová 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í