Настройка защиты от 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 рабочих дней.







