Powrót do bloga
Styczeń 19, 2026Poradniki

Jak chronić swój VPS przed atakami DDoS: Praktyczny przewodnik

Kompleksowy przewodnik dotyczący ochrony Twojego VPS przed atakami DDoS przy użyciu firewalli, ograniczania przepustowości i innych sprawdzonych metod.

Jak chronić swój VPS przed atakami DDoS: Praktyczny przewodnik

Ataki DDoS (Distributed Denial of Service) mogą wyłączyć Twój serwer w ciągu kilku minut, prowadząc do utraty przychodów, niezadowolenia klientów i szkód wizerunkowych. W 2026 roku takie ataki stały się bardziej zaawansowane i dostępne. Na szczęście nowoczesne metody ochrony również ewoluowały. Ten przewodnik pokaże Ci, jak chronić swój VPS Hiddence przed najczęstszymi typami ataków DDoS.

Co to jest atak DDoS?

Atak DDoS występuje, gdy wiele komputerów (botnet) jednocześnie wysyła żądania do Twojego serwera, przeciążając jego zasoby i czyniąc go niedostępnym dla legalnych użytkowników.

Główne typy ataków DDoS

  • Ataki wolumetryczne (L3/L4): Powódź UDP, ICMP, powódź SYN — przeciążają przepustowość sieci
  • Ataki warstwy aplikacji (L7): Powódź HTTP, Slowloris — celują w warstwę aplikacji
  • Ataki protokołów: Wykorzystują luki w protokołach sieciowych

Wbudowana ochrona Hiddence

Wszystkie VPS Hiddence zawierają podstawową ochronę DDoS warstwy 3-4 (na poziomie sieci). To automatycznie filtruje większość ataków wolumetrycznych. Jednak ataki warstwy 7 (aplikacji) wymagają dodatkowej konfiguracji.

Krok 1: Konfiguracja firewalla

Pierwsza linia obrony to właściwa konfiguracja firewalla. UFW (Uncomplicated Firewall) to proste i skuteczne narzędzie dla Ubuntu/Debian.

bash
# Zainstaluj UFW
sudo apt update && sudo apt install ufw -y

# Zezwól na SSH (WAŻNE! Zrób to przed włączeniem UFW)
sudo ufw allow 22/tcp

# Zezwól na HTTP i HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Włącz UFW
sudo ufw enable

# Sprawdź status
sudo ufw status verbose

# Zaawansowane reguły ochrony:
# Ogranicz połączenia SSH (ochrona przed brute force)
sudo ufw limit 22/tcp

# Zablokuj powódź ping ICMP
sudo nano /etc/ufw/before.rules
# Dodaj po *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

# Ochrona przed powodzią SYN
sudo nano /etc/sysctl.conf
# Dodaj:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5

# Zastosuj zmiany
sudo sysctl -p

Krok 2: Zainstaluj Fail2Ban

Fail2Ban automatycznie blokuje adresy IP wykazujące podejrzaną aktywność (wiele nieudanych prób logowania, skanowanie portów).

bash
# Zainstaluj
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

# Konfiguracja ochrony SSH i HTTP
# Utwórz lokalną konfigurację
sudo nano /etc/fail2ban/jail.local

# Dodaj:
[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

# Uruchom ponownie Fail2Ban
sudo systemctl restart fail2ban

# Sprawdź status
sudo fail2ban-client status

Krok 3: Ochrona Nginx

Jeśli używasz Nginx, skonfiguruj ograniczanie przepustowości, aby chronić przed atakami powodzi HTTP.

bash
sudo nano /etc/nginx/nginx.conf

# Dodaj do bloku http:
http {
    # Limit żądań: 10 żądań na sekundę na IP
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
    
    # Limit połączeń
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    
    # Ochrona przed Slowloris
    client_body_timeout 10s;
    client_header_timeout 10s;
    keepalive_timeout 5s 5s;
    send_timeout 10s;
    
    # Reszta konfiguracji...
}

# W bloku server dodaj:
server {
    location / {
        # Zastosuj limit żądań
        limit_req zone=one burst=20 nodelay;
        
        # Limit połączeń: maksymalnie 10 na IP
        limit_conn addr 10;
        
        # Twoja konfiguracja...
    }
}

# Przetestuj konfigurację i przeładuj
sudo nginx -t
sudo systemctl reload nginx

Krok 4: Użyj CDN

Dla maksymalnej ochrony użyj usługi CDN, takiej jak Cloudflare. CDN działa jako proxy, ukrywając prawdziwy IP Twojego serwera i absorbując większość ataków DDoS. Korzyści: ukryj prawdziwy IP, automatyczne filtrowanie złośliwego ruchu, dystrybucja obciążenia, darmowy SSL/TLS, WAF dla ochrony L7.

  • Zarejestruj się na cloudflare.com (dostępny plan bezpłatny)
  • Dodaj swoją domenę i zmień rekordy NS u rejestratora
  • Włącz tryb 'Proxy' (pomarańczowa chmura) dla rekordów DNS
  • Ustaw tryb SSL na 'Pełny (ścisły)' w sekcji SSL/TLS
  • Włącz 'Ochrona DDoS' i 'Tryb walki z botami' w ustawieniach bezpieczeństwa

Krok 5: Monitorowanie

Regularne monitorowanie pomaga wcześnie wykrywać ataki.

bash
# Monitoruj aktywne połączenia
watch -n 1 'ss -s'

# Zobacz najważniejsze IP według liczby połączeń
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

# Zobacz logi w czasie rzeczywistym
sudo tail -f /var/log/nginx/access.log
sudo journalctl -u nginx -f

# Sprawdź zablokowane IP w Fail2Ban
sudo fail2ban-client status sshd

Środki awaryjne

Jeśli atak już trwa, podejmij następujące środki:

  • Zidentyfikuj źródło: Użyj 'netstat' lub logów, aby zidentyfikować atakujące IP
  • Tymczasowe zablokowanie: sudo ufw insert 1 deny from ATTACKING_IP
  • Zablokuj całe podsieci: sudo ufw deny from 123.45.0.0/16
  • Ogranicz limit przepustowości: Tymczasowo obniż limity Nginx do 1-5 req/s
  • Skontaktuj się z wsparciem: Skontaktuj się z wsparciem Hiddence w celu aktywacji zaawansowanej ochrony
  • Włącz 'Tryb ataku' w Cloudflare (jeśli używasz)

Najlepsze praktyki

  • Nigdy nie publikuj prawdziwego IP Twojego serwera, jeśli używasz CDN
  • Regularnie aktualizuj system: sudo apt update && sudo apt upgrade
  • Używaj kluczy SSH zamiast haseł do dostępu do serwera
  • Zmień domyślny port SSH (22) na niestandardowy
  • Skonfiguruj automatyczne kopie zapasowe dla szybkiego odzyskiwania
  • Używaj oddzielnych IP dla krytycznych usług
  • Włącz logowanie i regularnie sprawdzaj logi pod kątem podejrzanej aktywności
  • Rozważ użycie blokowania geograficznego, jeśli Twoja usługa nie jest globalna