DDoS (распределённая атака типа «отказ в обслуживании») — это массовая отправка запросов к вашему сервису с целью перегрузить систему.

В статье расскажем, как защищать Kubernetes-кластеры, API и серверы от DDoS — на практике и с примерами.


1. Что такое DDoS-атака?

Сеть заражённых устройств (ботнет) начинает массово слать трафик на ваш сервис. Это может:

  • Забить канал (UDP flood)
  • Использовать уязвимость протокола (SYN flood)
  • Ломать API (HTTP flood)

2. Основные методы защиты

🔐 2.1. Ограничение скорости (rate limiting)

NGINX-пример:

limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;

server {
  location /api/ {
    limit_req zone=req_limit burst=20 nodelay;
  }
}

☁️ 2.2. Облачные решения

Используйте:

  • Cloudflare, AWS Shield, GCP Armor
  • CDN для кэширования

🔥 2.3. iptables: базовая фильтрация

iptables -A INPUT -p tcp --syn -m limit --limit 10/s --limit-burst 20 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP

🧠 2.4. Мониторинг и автоматическая блокировка

Инструменты:

  • Fail2ban
  • Netdata или Prometheus
  • Suricata (IDS/IPS)

🧰 2.5. Kubernetes-специфика

  • Ограничения на уровне Ingress
  • NetworkPolicy
  • Cilium для фильтрации на уровне подов

3. Лучшие практики

  • Использовать HTTPS и CDN
  • Реагировать на аномалии трафика
  • Комбинировать подходы
  • Настроить автоскейлинг

4. Выводы

DDoS — опасная, но решаемая проблема. Используйте защиту на всех уровнях — от фаерволов до облака — и держите инфраструктуру под контролем.