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 днів
Вартість розраховується індивідуально — напишіть нам для оцінки. Хочете захистити свій сайт? Оцінимо вашу інфраструктуру безкоштовно. Зв'яжіться з нами.







