5 мин.
Если вы используете 1С-Битрикс, то, возможно, хотя бы раз получали письмо с заголовком “Превышен лимит активности”.Внутри письма примерно такой текст:
На сайте посетитель превысил установленный лимит активности.
Начиная с [дата] посетитель заблокирован на 600 сек.
Активность – 16 хитов за 10 сек. (лимит – 15)
Посетитель – 1974831
Сессия – 2032988
Поисковик – [0]
UserAgent –
Для добавления в стоп-лист воспользуйтесь нижеследующей ссылкой:
...
Почему это происходит
В большинстве случаев это не живой посетитель, а бот-сканер, который проверяет сайт на наличие уязвимых файлов или уязвимых CMS-скриптов. Цель — найти дыру и внедрить вредоносный код (web shell, backdoor, спам-скрипт).Мы заметили, что сканирование шло по чётким спискам популярных вредоносных или устаревших файлов. Например:
- /ee.php
- /edit.php
- /dropdown.php
- /doc.php
- /content.php
- /composer.php
- /classsmtps.php
- /adminer.php
- /as.php
- /alfanew.php
А также по вложенным путям:
- /assets/images/doc.php
- /about/function.php
- /admin/index.php
- /.well-known/index.php
Почему блокировка в самом Битрикс неэффективна
Битрикс в письме даёт ссылку для моментальной блокировки IP-адреса. На первый взгляд — удобно. Но на практике IP-адреса меняются постоянно (иногда — на каждый новый запрос).В итоге блокировка IP в Битрикс не даёт реального эффекта, и сканирование продолжается.
Как мы решили проблему
Мы решили не блокировать IP, а блокировать сами вредоносные запросы на уровне веб-сервера (nginx).Преимущество этого подхода:
- Запрос даже не дойдёт до PHP и Битрикс, нагрузка на сайт меньше.
- Работает для всех сайтов на сервере сразу.
- Не зависит от IP-адреса злоумышленника.
Пример содержимого:
Блокировка вредоносных файлов на любой вложенности:
location ~* "(?x)
(/|^) (autoload_classmap\.php
| auth\.php
| atomlib\.php
| assets/images/doc\.php
| asasx\.php
| as\.php
| alfa\.php
| al\.php
| akc\.php
| adminfuns\.php
| admin/index\.php
| admin/function\.php
| admin/admin\.php
| admin\.php
| about/function\.php
| about/Geforce\.php
| about\.php
| 87\.php
| 13k\.php
| 12\.php
| ee\.php
| 10\.php
| edit\.php
| dropdown\.php
| doc\.php
| content\.php
| composer\.php
| classsmtps\.php
| chosen\.php
| blog\.php
| ay\.php
| av\.php
| avaa\.php
| adminer\.php
| alfanew\.php
)$" {
deny all;
return 403;
}
Блокировка целых разделов на сайте через NGINX
Иногда вредоносные сканеры не просто проверяют отдельные файлы, а последовательно перебирают целые папки, например, wp-includes, wp-content, wp-admin (часто встречается на WordPress), а также каталоги с картинками или медиа, такие как assets.Чтобы защититься от таких массовых запросов, можно сразу запретить доступ ко всему разделу на любой вложенности. Это особенно полезно, если на вашем сайте таких папок в принципе нет, и любые обращения к ним являются подозрительными.
Пример конфигурации NGINX:
# Блокировка папок wp-includes, wp-content, wp-admin и assets на любой вложенности
location ~* "(?x)
/(
wp-includes
| wp-content
| wp-admin
| assets
)/" {
deny all;
return 403;
}
Как это работает:- location ~* — регистронезависимое регулярное выражение.
- (wp-includes|wp-content|wp-admin|assets) — список блокируемых папок.
- / в конце — гарантирует, что правило сработает именно на папку, а не на часть имени файла.
- deny all; return 403; — запрещает доступ и возвращает код ответа HTTP 403 (Forbidden).
Топ вредоносных запросов к сайту
№ | Запрашиваемый путь | Частота | Описание угрозы |
---|---|---|---|
1 | /adminer.php | 325 | Популярный скрипт для управления БД, часто используется злоумышленниками |
2 | /wp-admin/ | 298 | Админ-панель WordPress, используется для брутфорса |
3 | /wp-content/plugins/ | 254 | Попытки найти уязвимые плагины WordPress |
4 | /composer.php | 210 | Могут запускать установщик или исполнять PHP-код |
5 | /classsmtps.php | 184 | Спам-скрипт или бэкдор |
6 | /ee.php | 172 | Устаревший эксплойт для RFI/LFI атак |
7 | /assets/images/doc.php | 158 | Маскировка вредоносного файла под изображение |
8 | /edit.php | 141 | Известный бэкдор для загрузки файлов |
9 | /alfanew.php | 132 | PHP web-shell |
10 | /wp-includes/ | 124 | Системные файлы WordPress, сканируются на уязвимости |
Дополнительная защита: fail2ban
Fail2ban — это инструмент, который отслеживает логи веб-сервера и может автоматически блокировать IP-адреса, нарушающие заданные правила.Например, если с одного IP за короткий промежуток времени идёт слишком много запросов с ошибкой 404, fail2ban может добавить этот IP в бан на несколько часов или дней.
Плюсы fail2ban:
- Автоматическая реакция на подозрительную активность.
- Гибкие настройки фильтров.
- Блокировка не только для веба, но и для SSH, FTP и других сервисов.
Использование Cloudflare
Cloudflare — это сервис, который может фильтровать трафик ещё до того, как он попадёт на ваш сервер. Он умеет:- Защищать от DDoS-атак.
- Ограничивать частоту запросов (Rate Limiting).
- Автоматически блокировать подозрительных ботов.
Рекомендации по защите Bitrix-сайта
- Настройте блокировку вредоносных файлов и путей через NGINX.
- Используйте fail2ban для автоматической блокировки IP по логам.
- Если возможно — подключите Cloudflare.
- Регулярно обновляйте Bitrix и PHP.
- Удаляйте неиспользуемые модули и скрипты.
- Периодически проверяйте сайт на наличие вредоносного кода.
Итог
Если вы регулярно получаете письма от Bitrix о превышении лимита активности — это сигнал, что ваш сайт сканируют на уязвимости.Не тратьте время на ручную блокировку IP в админке — настройте защиту на уровне сервера, чтобы вредоносные запросы даже не доходили до сайта.
Мы можем помочь: настроим NGINX, fail2ban и дополнительные фильтры, чтобы ваш сайт работал безопасно и без лишней нагрузки.
Так же рекомендуем ознакомиться: Вирус на Битрикс с первого июля, Как хакеры заражают сайты на Битрикс и создают бэкдоры, Вирус в Битрикс через слабые пароли, Вирус в assets Битрикс, Февральский вирус на Битрикс.