Як абараніць ваш VPS ад DDoS-атак: Практычнае кіраўніцтва
Поўнае кіраўніцтва па абароне вашага VPS ад DDoS-атак з выкарыстаннем фаерволаў, абмежавання хуткасці і іншых правераных метадаў.

DDoS-атакі (размеркаваная атака тыпу «адмова ў абслугоўванні») могуць вывесці ваш сервер з ладу за лічаныя хвіліны, што прывядзе да страты прыбытку, нездаволенасці кліентаў і шкоды рэпутацыі. У 2026 годзе такія атакі сталі больш складанымі і даступнымі. На шчасце, сучасныя метады абароны таксама эвалюцыянавалі. Гэта кіраўніцтва пакажа вам, як абараніць ваш Hiddence VPS ад найбольш распаўсюджаных тыпаў DDoS-атак.
Што такое DDoS-атака?
DDoS-атака адбываецца, калі некалькі кампутараў (ботнэт) адначасова адпраўляюць запыты на ваш сервер, перагружаючы яго рэсурсы і робячы яго недаступным для легітымных карыстальнікаў.
Асноўныя тыпы DDoS-атак
- Аб'ёмныя атакі (L3/L4): UDP flood, ICMP, SYN flood — перагружаюць прапускную здольнасць сеткі
- Атакі на прыкладным узроўні (L7): HTTP flood, Slowloris — нацэлены на прыкладны ўзровень
- Атакі на пратаколы: Выкарыстоўваюць уразлівасці ў сеткавых пратаколах
Убудаваная абарона Hiddence
Усе VPS Hiddence ўключаюць базавую абарону ад DDoS узроўню 3-4 (сеткавы ўзровень). Гэта аўтаматычна фільтруе большасць аб'ёмных атак. Аднак атакі ўзроўню 7 (прыкладнога) патрабуюць дадатковай канфігурацыі.
Крок 1: Налада фаервола
Першая лінія абароны - гэта правільная канфігурацыя фаервола. UFW (Uncomplicated Firewall) - гэта просты і эфектыўны інструмент для Ubuntu/Debian.
# Усталяваць UFW
sudo apt update && sudo apt install ufw -y
# Дазволіць SSH (ВАЖНА! Зрабіце гэта перад уключэннем UFW)
sudo ufw allow 22/tcp
# Дазволіць HTTP і HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Уключыць UFW
sudo ufw enable
# Праверыць статус
sudo ufw status verbose
# Прасунутыя правілы абароны:
# Абмежаваць SSH-злучэнні (абарона ад brute-force)
sudo ufw limit 22/tcp
# Блакаваць ICMP ping флуд
sudo nano /etc/ufw/before.rules
# Дадаць пасля *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
# Абарона ад SYN flood
sudo nano /etc/sysctl.conf
# Дадаць:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5
# Ужыць змены
sudo sysctl -pКрок 2: Усталяваць Fail2Ban
Fail2Ban аўтаматычна блакуе IP-адрасы, якія праяўляюць падазроную актыўнасць (некалькі няўдалых спроб уваходу, сканіраванне партоў).
# Усталяваць
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# Канфігурацыя для абароны SSH і HTTP
# Стварыць лакальную канфігурацыю
sudo nano /etc/fail2ban/jail.local
# Дадаць:
[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
# Перазапусціць Fail2Ban
sudo systemctl restart fail2ban
# Праверыць статус
sudo fail2ban-client statusКрок 3: Абарона Nginx
Калі вы выкарыстоўваеце Nginx, наладзьце абмежаванне хуткасці (rate limiting) для абароны ад HTTP-флуд атак.
sudo nano /etc/nginx/nginx.conf
# Дадаць у блок http:
http {
# Ліміт запытаў: 10 запытаў у секунду на IP
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
# Ліміт злучэнняў
limit_conn_zone $binary_remote_addr zone=addr:10m;
# Абарона ад Slowloris
client_body_timeout 10s;
client_header_timeout 10s;
keepalive_timeout 5s 5s;
send_timeout 10s;
# Астатняя канфігурацыя...
}
# У блоку server дадаць:
server {
location / {
# Ужыць ліміт запытаў
limit_req zone=one burst=20 nodelay;
# Ліміт злучэнняў: максімум 10 на IP
limit_conn addr 10;
# Ваша канфігурацыя...
}
}
# Тэст канфігурацыі і перазагрузка
sudo nginx -t
sudo systemctl reload nginxКрок 4: Выкарыстанне CDN
Для максімальнай абароны выкарыстоўвайце сэрвіс CDN, такі як Cloudflare. CDN дзейнічае як проксі, хаваючы рэальны IP вашага сервера і паглынаючы большасць DDoS-атак. Перавагі: схаванне рэальнага IP, аўтаматычная фільтрацыя шкоднаснага трафіку, размеркаванне нагрузкі, бясплатны SSL/TLS, WAF для абароны L7.
- Зарэгіструйцеся на cloudflare.com (даступны бясплатны план)
- Дадайце свой дамен і зменіце NS-запісы ў вашага рэгістратара
- Уключыце рэжым 'Proxy' (аранжавае воблака) для DNS-запісаў
- Усталюйце рэжым SSL на 'Full (strict)' у раздзеле SSL/TLS
- Уключыце 'DDoS Protection' і 'Bot Fight Mode' у наладах бяспекі
Крок 5: Маніторынг
Рэгулярны маніторынг дапамагае выявіць атакі на ранняй стадыі.
# Маніторынг актыўных злучэнняў
watch -n 1 'ss -s'
# Прагляд топ IP па колькасці злучэнняў
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
# Прагляд логаў у рэальным часе
sudo tail -f /var/log/nginx/access.log
sudo journalctl -u nginx -f
# Праверыць заблакаваныя IP у Fail2Ban
sudo fail2ban-client status sshdЭкстраныя меры
Калі атака ўжо ідзе, прыміце наступныя меры:
- Вызначце крыніцу: Выкарыстоўвайце 'netstat' або логі для ідэнтыфікацыі атакуючых IP
- Часовая блакіроўка: sudo ufw insert 1 deny from ATTACKING_IP
- Блакіроўка цэлых падсетак: sudo ufw deny from 123.45.0.0/16
- Абмяжуйце rate limit: Часова панізьце ліміты Nginx да 1-5 req/s
- Звяжыцеся з падтрымкай: Звярніцеся ў падтрымку Hiddence для актывацыі прасунутай абароны
- Уключыце 'Under Attack Mode' у Cloudflare (калі выкарыстоўваеце)
Лепшыя практыкі
- Ніколі не публікуйце рэальны IP вашага сервера, калі выкарыстоўваеце CDN
- Рэгулярна абнаўляйце сістэму: sudo apt update && sudo apt upgrade
- Выкарыстоўвайце SSH-ключы замест пароляў для доступу да сервера
- Зменіце стандартны порт SSH (22) на нестандартны
- Наладзьце аўтаматычныя бэкапы для хуткага аднаўлення
- Выкарыстоўвайце асобныя IP для крытычных сэрвісаў
- Уключыце лагіраванне і рэгулярна правярайце логі на наяўнасць падазронай актыўнасці
- Разгледзьце магчымасць выкарыстання геаграфічнай блакіроўкі, калі ваш сэрвіс не глабальны