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







