Kaip apsaugoti savo VPS nuo DDoS atakų: Praktinis vadovas
Išsamus vadovas, kaip apsaugoti savo VPS nuo DDoS atakų naudojant ugniasienes, greičio apribojimus ir kitus patikrintus metodus.

DDoS atakos (Distributed Denial of Service) gali paimti jūsų serverį neprisijungus per kelias minutes, todėl prarandate pajamas, klientų nepasitenkinimą ir reputacijos žalą. 2026 m. tokios atakos tapo sudėtingesnės ir prieinamesnės. Laimei, šiuolaikiniai apsaugos metodai taip pat evoliucionavo. Šis vadovas parodys, kaip apsaugoti savo Hiddence VPS nuo dažniausių DDoS atakų tipų.
Kas yra DDoS ataka?
DDoS ataka įvyksta, kai kelios kompiuterių (botnet) vienu metu siunčia užklausas į jūsų serverį, perpildydamos jo išteklius ir padarydamos nepasiekiamą teisėtiems vartotojams.
Pagrindiniai DDoS atakų tipai
- Tūrinės atakos (L3/L4): UDP potvynis, ICMP, SYN potvynis – perpildo tinklo pralaidumą
- Programų sluoksnio atakos (L7): HTTP potvynis, Slowloris – taikomos programų sluoksniui
- Protokolų atakos: Išnaudoja pažeidžiamumus tinklo protoluose
Įmontuota Hiddence apsauga
Visi Hiddence VPS apima pagrindinę 3-4 sluoksnio DDoS apsaugą (tinklo lygis). Tai automatiškai filtruoja daugumą tūrinių atakų. Tačiau 7 sluoksnio (programų) atakos reikalauja papildomos konfigūracijos.
1 žingsnis: Ugniasienės nustatymas
Pirmoji apsaugos linija yra tinkama ugniasienės konfigūracija. UFW (Uncomplicated Firewall) yra paprastas ir efektyvus įrankis Ubuntu/Debian.
# Įdiegti UFW
sudo apt update && sudo apt install ufw -y
# Leisti SSH (SVARBU! Darykite tai prieš įjungdami UFW)
sudo ufw allow 22/tcp
# Leisti HTTP ir HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Įjungti UFW
sudo ufw enable
# Patikrinti būseną
sudo ufw status verbose
# Pažangios apsaugos taisyklės:
# Apriboti SSH ryšius (brute force apsauga)
sudo ufw limit 22/tcp
# Blokuoti ICMP ping potvynius
sudo nano /etc/ufw/before.rules
# Pridėti 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
# Apsauga nuo SYN potvynio
sudo nano /etc/sysctl.conf
# Pridėti:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5
# Taikyti pakeitimus
sudo sysctl -p2 žingsnis: Įdiegti Fail2Ban
Fail2Ban automatiškai blokuoja IP adresus, rodančius įtartiną veiklą (kelis nesėkmingus prisijungimo bandymus, prievadų skenavimą).
# Įdiegti
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# Konfigūracija SSH ir HTTP apsaugai
# Sukurti vietinę konfigūraciją
sudo nano /etc/fail2ban/jail.local
# Pridėti:
[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
# Iš naujo paleisti Fail2Ban
sudo systemctl restart fail2ban
# Patikrinti būseną
sudo fail2ban-client status3 žingsnis: Nginx apsauga
Jei naudojate Nginx, sukonfigūruokite greičio apribojimą apsaugai nuo HTTP potvynio atakų.
sudo nano /etc/nginx/nginx.conf
# Pridėti į http bloką:
http {
# Užklausų limitas: 10 užklausų per sekundę pagal IP
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
# Ryšių limitas
limit_conn_zone $binary_remote_addr zone=addr:10m;
# Slowloris apsauga
client_body_timeout 10s;
client_header_timeout 10s;
keepalive_timeout 5s 5s;
send_timeout 10s;
# Likusi konfigūracija...
}
# Serverio bloke pridėti:
server {
location / {
# Taikyti užklausų limitą
limit_req zone=one burst=20 nodelay;
# Ryšių limitas: maks. 10 pagal IP
limit_conn addr 10;
# Jūsų konfigūracija...
}
}
# Išbandyti konfigūraciją ir iš naujo įkelti
sudo nginx -t
sudo systemctl reload nginx4 žingsnis: Naudoti CDN
Maksimaliai apsaugai naudokite CDN paslaugą, pvz., Cloudflare. CDN veikia kaip tarpinis serveris, slepiant jūsų serverio tikrąjį IP ir sugeriant daugumą DDoS atakų. Privalumai: paslėpti tikrąjį IP, automatinis kenkėjiško srauto filtravimas, apkrovos paskirstymas, nemokamas SSL/TLS, WAF L7 apsaugai.
- Užsiregistruokite cloudflare.com (prieinamas nemokamas planas)
- Pridėkite savo domeną ir pakeiskite NS įrašus savo registratoriuje
- Įjunkite 'Proxy' režimą (oranžinis debesis) DNS įrašams
- Nustatykite SSL režimą į 'Full (strict)' SSL/TLS skyriuje
- Įjunkite 'DDoS Protection' ir 'Bot Fight Mode' saugumo nustatymuose
5 žingsnis: Stebėjimas
Reguliarus stebėjimas padeda anksti aptikti atakas.
# Stebėti aktyvius ryšius
watch -n 1 'ss -s'
# Peržiūrėti top IP pagal ryšių skaičių
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
# Peržiūrėti žurnalus realiuoju laiku
sudo tail -f /var/log/nginx/access.log
sudo journalctl -u nginx -f
# Patikrinti užblokuotus IP Fail2Ban
sudo fail2ban-client status sshdSkubiųjų priemonių priėmimas
Jei ataka jau vyksta, imkitės šių priemonių:
- Identifikuoti šaltinį: Naudokite 'netstat' arba žurnalus identifikuoti puolančius IP
- Laikinas blokavimas: sudo ufw insert 1 deny from ATTACKING_IP
- Blokuoti visus potinklius: sudo ufw deny from 123.45.0.0/16
- Apriboti greičio limitą: Laikinai sumažinti Nginx limitus iki 1-5 req/s
- Susisiekti su palaikymu: Kreipkitės į Hiddence palaikymą pažangios apsaugos aktyvavimui
- Įjunkite 'Under Attack Mode' Cloudflare (jei naudojate)
Geriausios praktikos
- Niekada nepublikuokite savo serverio tikrojo IP, jei naudojate CDN
- Reguliariai atnaujinkite sistemą: sudo apt update && sudo apt upgrade
- Naudokite SSH raktus vietoj slaptažodžių serverio prieigai
- Pakeiskite numatytąjį SSH prievadą (22) į nestandartinį
- Nustatykite automatinės atsarginių kopijų kūrimą greitam atkūrimui
- Naudokite atskirus IP kritinėms paslaugoms
- Įjunkite žurnalavimą ir reguliariai tikrinkite žurnalus dėl įtartinos veiklos
- Apsvarstykite galimybę naudoti geografinį blokavimą, jei jūsų paslauga nėra globali