Обратно към блога
Януари 19, 2026Ръководства

Как да защитите вашия VPS от DDoS атаки: Пракческо ръководство

Изчерпателно ръководство за защита на вашия VPS от DDoS атаки с помощта на защитни стени, ограничаване на скоростта и други доказани методи.

Как да защитите вашия VPS от DDoS атаки: Пракческо ръководство

DDoS атаките (Distributed Denial of Service) могат да свалят вашия сървър офлайн за минути, което води до загуба на приходи, недоволство на клиентите и увреждане на репутацията. През 2026 г. такива атаки станаха по-сложни и достъпни. За щастие, съвременните методи за защита също са се развили. Това ръководство ще ви покаже как да защитите вашия Hiddence VPS от най-често срещаните видове DDoS атаки.

Какво е DDoS атака?

DDoS атака възниква, когато множество компютри (ботнет) едновременно изпращат заявки към вашия сървър, претоварвайки ресурсите му и правейки го недостъпен за легитимни потребители.

Основни типове DDoS атаки

  • Обемни атаки (L3/L4): UDP flood, ICMP, SYN flood — претоварват мрежовата честотна лента
  • Атаки на приложния слой (L7): HTTP flood, Slowloris — насочени към приложния слой
  • Протоколни атаки: Използват уязвимости в мрежовите протоколи

Вградена защита на Hiddence

Всички Hiddence VPS включват основна Layer 3-4 DDoS защита (мрежово ниво). Това автоматично филтрира повечето обемни атаки. Въпреки това, Layer 7 (приложните) атаки изискват допълнителна конфигурация.

Стъпка 1: Настройка на защитна стена

Първата линия на защита е правилната конфигурация на защитната стена. UFW (Uncomplicated Firewall) е прост и ефективен инструмент за Ubuntu/Debian.

bash
# Инсталиране на 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 връзки (защита от груба сила)
sudo ufw limit 22/tcp

# Блокиране на ICMP ping floods
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 адреси, показващи подозрителна активност (множество неуспешни опити за влизане, сканиране на портове).

bash
# Инсталиране
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, конфигурирайте ограничаване на скоростта, за да се предпазите от HTTP flood атаки.

bash
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: Мониторинг

Редовният мониторинг помага за ранното откриване на атаки.

bash
# Мониторинг на активни връзки
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
  • Ограничете скоростта: Временно намалете Nginx лимитите до 1-5 req/s
  • Свържете се с поддръжката: Свържете се с поддръжката на Hiddence за активиране на разширена защита
  • Активирайте 'Under Attack Mode' в Cloudflare (ако използвате)

Най-добри практики

  • Никога не публикувайте реалния IP на сървъра си, ако използвате CDN
  • Редовно актуализирайте системата: sudo apt update && sudo apt upgrade
  • Използвайте SSH ключове вместо пароли за достъп до сървъра
  • Променете стандартния SSH порт (22) на нестандартен
  • Настройте автоматични архиви за бързо възстановяване
  • Използвайте отделни IP-та за критични услуги
  • Активирайте логване и редовно проверявайте логовете за подозрителна дейност
  • Обмислете използването на географско блокиране, ако услугата ви не е глобална