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.

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.
# 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 -pKrok 2: Zainstaluj Fail2Ban
Fail2Ban automatycznie blokuje adresy IP wykazujące podejrzaną aktywność (wiele nieudanych prób logowania, skanowanie portów).
# 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 statusKrok 3: Ochrona Nginx
Jeśli używasz Nginx, skonfiguruj ograniczanie przepustowości, aby chronić przed atakami powodzi HTTP.
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 nginxKrok 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.
# 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