DDoS-атака может положить сайт за секунды — если нет защиты. Сетевой флуд на L3/L4 или хитрый HTTP flood на L7 способны обвалить даже мощный сервер. Мы помогаем настроить комплексную защиту от всех типов атак. У нас 5+ лет опыта в защите веб-проектов, более 50 успешных проектов. Свяжитесь с нами для аудита вашей инфраструктуры.
Один из клиентов — интернет-магазин на WooCommerce — терял до 30% выручки из-за периодических DDoS. После нашей настройки сайт выдержал атаку в 1000 RPS, а время отклика не превысило 200 мс. Свяжитесь с нами для бесплатного аудита.
Почему стандартной защиты недостаточно?
Часто разработчики ограничиваются одним слоем: ставят Cloudflare или включают rate limiting. Этого мало. Атакующие подстраиваются: обходят простые лимиты, мимикрируют под легитимный трафик. OWASP рекомендует многоуровневую защиту — только в комбинации CDN, rate limiting, поведенческого анализа и мониторинга можно гарантировать стабильность.
Как мы настраиваем защиту под ключ
Мы используем проверенные инструменты и настраиваем каждый слой индивидуально. Cloudflare Free/Pro закрывает L3/L4 атаки автоматически. Для L7 дополнительно настраиваем rate limiting и поведенческие фильтры. Результат: ваш сайт выдерживает атаки в 500+ RPS без потери производительности.
Пример конфигурации Cloudflare
-
Security > DDoS > HTTP DDoS attack protection— Sensitivity High, Action Block (начинаем с Log) -
Security > Settings— Security Level Medium/High, Bot Fight Mode ON, Browser Integrity Check ON - При активной атаке включаем
Under Attack Mode— все посетители проходят JS-вызов
Rate Limiting в Nginx
# Зоны ограничения — в http блоке limit_req_zone $binary_remote_addr zone=api:10m rate=30r/m; limit_req_zone $binary_remote_addr zone=login:10m rate=5r/m; limit_conn_zone $binary_remote_addr zone=perip:10m; server { # API — 30 запросов в минуту location /api/ { limit_req zone=api burst=10 nodelay; limit_req_status 429; } # Форма входа — 5 попыток в минуту location /login { limit_req zone=login burst=3 nodelay; limit_req_status 429; } # Максимум 20 одновременных соединений с одного IP limit_conn perip 20; } Rate Limiting в приложении (Laravel)
// routes/api.php Route::middleware('throttle:60,1')->group(function () { Route::get('/data', [DataController::class, 'index']); }); // Кастомные лимиты с разными правилами для авторизованных Route::middleware('throttle:api')->group(function () { ... }); // config/app.php или RouteServiceProvider RateLimiter::for('api', function (Request $request) { return $request->user() ? Limit::perMinute(120)->by($request->user()->id) : Limit::perMinute(30)->by($request->ip()); }); SYN Flood на уровне ядра Linux
# /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 = 3 # Применить sysctl -p Fail2ban для HTTP flood
# /etc/fail2ban/filter.d/nginx-req-limit.conf [Definition] failregex = limiting requests, excess:.* by zone.*client: <HOST> # /etc/fail2ban/jail.d/nginx.conf [nginx-req-limit] enabled = true filter = nginx-req-limit logpath = /var/log/nginx/error.log maxretry = 10 findtime = 60 bantime = 600 Геоблокировка
При атаке из определённых регионов — временная блокировка через Cloudflare или GeoIP в Nginx:
# MaxMind GeoIP2 geoip2 /usr/share/GeoIP/GeoLite2-Country.mmdb { $geoip2_country_code country iso_code; } map $geoip2_country_code $blocked_country { default 0; CN 1; RU 0; # Нельзя блокировать собственную аудиторию } if ($blocked_country = 1) { return 403; } Сравнение уровней защиты
| Уровень | Тип атаки | Инструменты | Время настройки |
|---|---|---|---|
| L3/L4 | SYN flood, UDP flood | Cloudflare, iptables, sysctl | 1 день |
| L7 (HTTP flood) | GET/POST flood | Cloudflare WAF, rate limiting, Fail2ban | 2 дня |
| Аномалии | Поведенческие атаки | Bot Fight Mode, CAPTCHA, Grafana | 1 день |
Сравнение решений для DDoS-защиты
| Провайдер | Тип защиты | Бесплатный тариф | Лимиты |
|---|---|---|---|
| Cloudflare | L3-L7 | Есть | 1 ТБ/мес |
| Qrator | L3-L7 | Нет | от 10 Гбит/с |
| Arbor (Nokia) | L3-L4 | Нет | от 1 Гбит/с |
Cloudflare лучше подходит для малого и среднего бизнеса: он в 2-3 раза дешевле аналогов при сопоставимом уровне защиты L7. Закажите настройку защиты и получите гарантию стабильности.
Как выбрать уровень защиты?
Определите, какие атаки наиболее вероятны для вашего проекта. Если сайт — информационный портал с низкой посещаемостью, достаточно Cloudflare Free и базового rate limiting. Для интернет-магазина или API с высоким трафиком нужен полный стек: CDN, WAF, поведенческий анализ и мониторинг. Мы поможем подобрать конфигурацию под ваш бюджет и нагрузку. Свяжитесь с нами для бесплатного аудита.
Как оперативно реагировать на DDoS-атаку?
При первых признаках атаки (рост 5xx, падение LCP) немедленно включите Under Attack Mode в Cloudflare. Затем проверьте логи Nginx на предмет аномальных IP и кастомных URI. Если атака продолжается, активируйте Fail2ban с фильтром на nginx-req-limit. В крайнем случае — временно заблокируйте страну-источник через GeoIP. Мы дежурим 24/7 и поможем развернуть защиту в течение 30 минут.
Что входит в работу
- Аудит текущей защиты и выявление уязвимостей
- Подключение CDN с DDoS-защитой (Cloudflare)
- Настройка rate limiting на Nginx и уровне приложения
- Установка Fail2ban и кастомных фильтров
- Настройка мониторинга (Grafana + Prometheus, алерты)
- Документация и обучение вашей команды
- Гарантия на конфигурацию 30 дней
Процесс настройки
- Аудит — анализируем текущую инфраструктуру, логи, нагрузку
- Проектирование — выбираем оптимальный стек и правила
- Реализация — настраиваем все слои защиты
- Тестирование — симулируем атаки, проверяем корректность
- Деплой — переносим в production с мониторингом
Сроки реализации
- Подключение Cloudflare + базовые правила: 1 день
- Rate limiting + Fail2ban: 1-2 дня
- Мониторинг и алерты: 1 день
- Полный комплекс под ключ: до 5 дней
Стоимость рассчитывается индивидуально — напишите нам для оценки. Хотите защитить свой сайт? Оценим вашу инфраструктуру бесплатно. Свяжитесь с нами.







