Найти тему
Alfa IT Studio

Как защитить битрикс от ddos-атак и назойливых поисковых ботов

Оглавление

Клиент обратился к нам с проблемой медленной работы сайта и его периодической недоступностью. Так как это интернет-магазин, то он нёс большие убытки и от стабильной работы ресурса зависел весь его бизнес.

Клиент использует bitrixVM (centos) и решение CMS Битрикс + CRM Битрикс24 на борту.

В ходе диагностики выяснилось, что сайт имеет множество поддоменов и по стратегии SEO специалиста каждый поддомен заведен как отдельный сайт под нужный регион. Следовательно боты Яндекса расценивают их отдельными сайтами и даже достаточно мощный сервер не справляется с этой нагрузкой. Чтобы это увидеть можно посмотреть access.log httpd сервера bitrix vm.

Алгоритм решения проблемы

Будем использовать стандартный функционал битрикс и отправлять по документации Яндекса 429 ошибку. https://yandex.ru/support/webmaster/robot-workings/load-robots.html

1.

Для начала проверим, установлен ли модуль веб - аналитики.
Заходим в настройки => Настройки продукта => Модули

-2

Если он установлен, приступаем к следующему шагу, если нет – устанавливаем.

2.

Переходим Настройка => Проактивная защита => Контроль активности

-3

3.

Включаем защиту и переходим на вкладку параметры.

-4

4.

Нужно отредактировать шаблон, чтобы отправлять заблокированным роботам 429 код.

<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();?>
<?CHTTP::SetStatus("429 Too Many Requests");?>
<html>
<head>
<title>429 Too Many Requests</title>
</head>
<body>
<h1>429 Too Many Requests</h1>
You have made too many requests per second.
</body></html>
<?die();?>

5.

Ограничения подбираем исходя из разумности создания хитов. То есть смотрим, сколько создает человек хитов за какой-то небольшой срез времени и ставим приблизительные ограничения. Или оставляем стандартные значения.
Посмотреть создание хитов можно в веб аналитике
Аналитика => Кто на сайте.

-5

6.

Если вы используете постоянный обмен данными между 1С, обязательно добавьте IP сервера, с которого отправляются пакеты в исключения, иначе он будет забанен.
Настройки => Настройка продукта => настройки модулей => Веб - аналитика

7.

Можно добавить исключения как по IP, так и по группам пользователей. Как правило если решение для обмена типовое, то используется админ. группа.

-6

Вот так была решена проблема назойливости ботов и сайт клиента перестал падать. Также этот приём спасёт от не сложных ddos-атак.

Остались вопросы? Пишите в комментариях.