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 — опасная, но решаемая проблема. Используйте защиту на всех уровнях — от фаерволов до облака — и держите инфраструктуру под контролем.