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 дней
Стоимость рассчитывается индивидуально — напишите нам для оценки. Хотите защитить свой сайт? Оценим вашу инфраструктуру. Свяжитесь с нами.







