Налаштування захисту від DDoS 1С-Бітрікс
DDoS-атака на сайт Бітрікс проявляється специфічно: спочатку зростає навантаження на PHP-FPM, потім черга запитів до MySQL/PostgreSQL, потім сервер або перестає відповідати, або видає 502/503. Бітрікс сам по собі не захищає від volumetric DDoS — це задача інфраструктури. Але прикладний L7-DDoS можна суттєво пом'якшити інструментами платформи.
Що можна закрити засобами Бітрікс
Контроль активності (Безпека → Контроль активності) — обмеження кількості запитів з одного IP за період. Налаштування:
- Максимальна кількість запитів за хвилину — поріг для блокування
- Дія: перенаправлення на CAPTCHA або до стоп-списку
- Період блокування
Заблоковані IP — у таблиці b_security_stop_list. Очищення старих записів — через агент Bitrix\Security\Stoplist::clearOldRecords().
Стоп-список (Безпека → Стоп-список) — ручне додавання IP-адрес і підмереж. Підтримує маски (наприклад, 192.168.1.0/24).
Захист на рівні веб-сервера
Nginx-конфігурація для rate limiting — до того, як запит дійде до PHP:
limit_req_zone $binary_remote_addr zone=bitrix:10m rate=30r/m;
location / {
limit_req zone=bitrix burst=10 nodelay;
# ...
}
Для сторінок оформлення замовлення та авторизації — жорсткіші ліміти:
location ~ ^/(personal/|checkout/) {
limit_req zone=bitrix burst=3 nodelay;
}
CDN та зовнішні WAF
Для серйозного захисту — Cloudflare, DDoS-Guard, Qrator. Вони фільтрують трафік до того, як він дійде до сервера. Бітрікс коректно працює за reverse proxy — потрібно правильно передавати X-Forwarded-For, щоб стоп-список блокував реальні IP, а не адресу проксі.
У init.php додайте:
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$_SERVER['REMOTE_ADDR'] = trim(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'])[0]);
}
Або використовуйте модуль \Bitrix\Main\Server і налаштування trusted_proxies у bitrix/.settings.php.
Випадок із практики
Атака на сторінку пошуку інтернет-магазину: боти надсилали запити з різними параметрами q=..., кожен запит викликав повнотекстовий пошук по MySQL. Сервер ліг за 4 хвилини. Рішення: кешування результатів пошуку через \Bitrix\Main\Data\Cache, rate limiting у nginx (5 запитів/хвилину на URL /search/), додавання вимоги мінімальної довжини пошукового запиту (3 символи) у компоненті. Повторна атака — сервер витримав.
Терміни виконання
Налаштування вбудованого контролю активності та nginx rate limiting — 3–5 годин. Інтеграція із зовнішнім CDN/WAF — від 1 до 2 робочих днів.







