Отдельная установка модуля постаналитики¶
Обработка запросов в модуле Вебмониторэкс делится на две фазы:
-
Первичная обработка в модуле NGINX-Вебмониторэкс (нодой Вебмониторэкс). Не требует большого объема оперативной памяти, может быть размещена на текущих frontend-серверах без изменения требований.
-
Статистический анализ обработанных запросов в модуле постаналитики. Требует значительного объема памяти, что может потребовать внесения изменений в конфигурацию существующих серверов либо выполнение постаналитики на другом сервере.
В зависимости от архитектуры системы, модуль NGINX-Вебмониторэкс и модуль постаналитики могут быть установлены на один сервер или на разные серверы.
Данная инструкция описывает способ установки модуля постаналитики на отдельный сервер.
Требования¶
-
Модуль NGINX-Вебмониторэкс, установленный для NGINX stable из репозитория NGINX, NGINX из репозитория Debian/CentOS
-
Доступ к аккаунту с ролью Администратор в Консоли управления Вебмониторэкс
-
SELinux, отключенный или настроенный по инструкции
-
Выполнение команд от имени суперпользователя (например,
root
) -
Возможность обращаться к
https://repo.webmonitorx.ru
для загрузки пакетов. Убедитесь, что доступ не ограничен настройками файервола -
Доступ к
https://api.wallarm.ru
для работы с Вычислительным кластером Вебмониторэкс. Если доступ к Вебмониторэкс API возможен только через прокси‑сервер, используйте инструкцию для настройки -
Доступ к хранилищу Яндекс S3 (
https://storage.yandexcloud.net
), чтобы обеспечить корректную блокировку IP‑адресов, зарегистрированных в странах, регионах или дата-центрах из белого, черного и серого списков IPНеобходимо обеспечить доступ к
https://storage.yandexcloud.net
или нескольким диапазонам IP‑адресов: диапазон 1 и диапазон 2. -
Установленный текстовый редактор vim, nano или другой. В инструкции используется редактор vim
Установка¶
1. Добавьте репозитории Вебмониторэкс¶
Модуль постаналитики, как и другие модули Вебмониторэкс, устанавливается и обновляется из репозиториев Вебмониторэкс. Для добавления репозиториев используйте команды для вашей платформы:
sudo apt install dirmngr
curl -fsSL https://repo.webmonitorx.ru/wmx.gpg | sudo apt-key add -
sh -c "echo 'deb http://repo.webmonitorx.ru/debian/webmonitorx-node buster/4.8/' | sudo tee /etc/apt/sources.list.d/wmx.list"
sudo apt update
sudo apt install dirmngr
curl -fsSL https://repo.webmonitorx.ru/wmx.gpg | sudo apt-key add -
sh -c "echo 'deb http://repo.webmonitorx.ru/debian/webmonitorx-node bullseye/4.8/' | sudo tee /etc/apt/sources.list.d/wmx.list"
sudo apt update
curl -fsSL https://repo.webmonitorx.ru/wmx.gpg | sudo apt-key add -
sh -c "echo 'deb http://repo.webmonitorx.ru/ubuntu/webmonitorx-node bionic/4.8/' | sudo tee /etc/apt/sources.list.d/wmx.list"
sudo apt update
curl -fsSL https://repo.webmonitorx.ru/wmx.gpg | sudo apt-key add -
sh -c "echo 'deb http://repo.webmonitorx.ru/ubuntu/webmonitorx-node focal/4.8/' | sudo tee /etc/apt/sources.list.d/wmx.list"
sudo apt update
curl -fsSL https://repo.webmonitorx.ru/wmx.gpg | sudo apt-key add -
sh -c "echo 'deb http://repo.webmonitorx.ru/ubuntu/webmonitorx-node jammy/4.8/' | sudo tee /etc/apt/sources.list.d/wmx.list"
sudo apt update
sudo yum install -y epel-release
sudo rpm -i https://repo.webmonitorx.ru/centos/webmonitorx-node/7/4.8/x86_64/webmonitorx-node-repo-4.8-0.el7.noarch.rpm
sudo yum install -y epel-release
sudo rpm -i https://repo.webmonitorx.ru/centos/webmonitorx-node/8/4.8/x86_64/webmonitorx-node-repo-4.8-0.el8.noarch.rpm
2. Установите пакеты для модуля постаналитики¶
Для модуля постаналитики и хранилища Tarantool необходимо установить группу пакетов wallarm-node-tarantool
из репозитория Вебмониторэкс:
sudo apt install --no-install-recommends wallarm-node-tarantool
sudo apt install --no-install-recommends wallarm-node-tarantool
sudo yum install wallarm-node-tarantool
sudo yum install wallarm-node-tarantool
3. Подключите модуль постаналитики к Вычислительному кластеру Вебмониторэкс¶
В процессе работы модуль постаналитики взаимодействует с Вычислительным кластером Вебмониторэкс. Чтобы обеспечить взаимодействие с Вычислительным кластером, необходимо создать ноду Вебмониторэкс для модуля постаналитики. Нода будет получать правила обработки трафика из Вычислительного кластера и выгружать данные об атаках в Вычислительный кластер.
Чтобы создать ноду и подключить модуль постаналитики к Вычислительному кластеру, выполните следующие действия:
-
Убедитесь, что роль вашего пользователя в Консоли управления Вебмониторэкс — Администратор.
Для этого перейдите к списку пользователей в Консоли управления и проверьте столбец Роль:
-
Перейдите в Консоль управления → Ноды и создайте ноду.
-
Скопируйте сгенерированный токен.
-
В системе с установленными пакетами модуля постаналитики запустите скрипт
register-node
:sudo /usr/share/wallarm-common/register-node -t <WALLARM_API_TOKEN> -H api.wallarm.ru --no-sync --no-sync-acl
<WALLARM_API_TOKEN>
— скопированный токен.- Вы можете добавить параметр
-n <HOST_NAME>
, чтобы задать уникальное имя экземпляру ноды с модулем постаналитики. Итоговое имя экземпляра ноды будет иметь формат:HOST_NAME_NodeUUID
.
4. Обновите конфигурацию модуля постаналитики¶
Конфигурационный файл для модуля постаналитики расположен по пути:
-
/etc/default/wallarm-tarantool
для операционных систем Debian и Ubuntu -
/etc/sysconfig/wallarm-tarantool
для операционных систем CentOS
Чтобы открыть файл для редактирования, используйте команду:
sudo vim /etc/default/wallarm-tarantool
sudo vim /etc/default/wallarm-tarantool
sudo vim /etc/sysconfig/wallarm-tarantool
sudo vim /etc/sysconfig/wallarm-tarantool
Оперативная память¶
Модуль постаналитики использует находящееся в памяти хранилище Tarantool. Рекомендуемое количество памяти для Tarantool в боевой среде: 75% от общей памяти виртуальной машины. Для тестирования ноды вы можете выделить меньшее количество памяти (например, 25% от общего объема).
Размер памяти для Tarantool необходимо передать в ГБ в директиве SLAB_ALLOC_ARENA
в конфигурационном файле /etc/default/wallarm-tarantool
или /etc/sysconfig/wallarm-tarantool
. Значение может быть целым или дробным (разделитель целой и дробной части — точка). Например:
SLAB_ALLOC_ARENA=0.5
SLAB_ALLOC_ARENA=24
Подробные рекомендации по выделению памяти для Tarantool описаны в инструкции.
Адрес сервера постаналитики¶
Чтобы настроить адрес сервера постаналитики, необходимо:
-
Открыть для редактирования конфигурационный файл Tarantool:
sudo vim /etc/default/wallarm-tarantool
sudo vim /etc/default/wallarm-tarantool
sudo vim /etc/sysconfig/wallarm-tarantool
sudo vim /etc/sysconfig/wallarm-tarantool
-
Снять комментарии с переменных
HOST
иPORT
и указать следующие значения для переменных:# address and port for bind HOST='0.0.0.0' PORT=3313
-
Если конфигурационный файл Tarantool настроен принимать соединения на адресах, отличных от
0.0.0.0
или127.0.0.1
, указать эти адреса в конфигурационном файле/etc/wallarm/node.yaml
:hostname: <name of the Вебмониторэкс postanalytics node> uuid: <UUID of postanalytics node> secret: <secret key of postanalytics node> tarantool: host: '<IP address of Tarantool>' port: 3313
-
Указать адрес отдельного сервера постаналитики на сервере с установленными пакетами NGINX‑Вебмониторэкс, как описано в инструкции для подходящей формы установки:
5. Перезапустите сервисы Вебмониторэкс¶
Чтобы применить заданные настройки к модулю постаналитики и к модулю NGINX‑Вебмониторэкс, необходимо:
-
Перезапустить сервис
wallarm-tarantool
на сервере с модулем постаналитики:sudo systemctl restart wallarm-tarantool
sudo systemctl restart wallarm-tarantool
sudo systemctl restart wallarm-tarantool
sudo systemctl restart wallarm-tarantool
-
Перезапустить сервис NGINX на сервере с модулем NGINX‑Вебмониторэкс:
sudo systemctl restart nginx
sudo service nginx restart
sudo systemctl restart nginx
sudo systemctl restart nginx
6. Проверьте взаимодействие модуля NGINX‑Вебмониторэкс и модуля постаналитики¶
Чтобы проверить взаимодействие модулей Вебмониторэкс, установленных на разных серверах, вы можете отправить на адрес защищаемого приложения тестовую атаку:
curl http://localhost/etc/passwd
Если модуль NGINX‑Вебмониторэкс и модуль постаналитики настроены корректно, атака выгрузится в Вычислительный кластер Вебмониторэкс и отобразится в Консоли управления Вебмониторэкс → секция События:
Если атака не выгрузилась в Вычислительный кластер, проверьте наличие ошибок в работе сервисов:
-
Убедитесь, что сервис модуля постаналитики
wallarm-tarantool
находится в статусеactive
sudo systemctl status wallarm-tarantool
-
Проанализируйте логи модуля постаналитики
sudo cat /var/log/wallarm/tarantool.log
Если в логах есть запись, подобная
SystemError binary: failed to bind: Cannot assign requested address
, убедитесь, что сервер принимает соединение по указанному адресу и порту. -
На сервере с модулем NGINX‑Вебмониторэкс проанализируйте логи NGINX:
sudo cat /var/log/nginx/error.log
Если в логах есть запись, подобная
[error] wallarm: <address> connect() failed
, убедитесь, что на сервере с модулем NGINX‑Вебмониторэкс указан верный адрес сервера с модулем постаналитики и сервер с модулем постаналитики принимает соединение по указанному адресу и порту. -
На сервере с модулем NGINX‑Вебмониторэкс: выполните команду для получения статистики по обработанным запросам и убедитесь, что значение
tnt_errors
равно 0curl http://127.0.0.8/wallarm-status
Описание всех параметров, которые возвращает сервис статистики →
Защита модуля постаналитики¶
Защита постаналитики
Мы настоятельно рекомендуем защитить установленный модуль постаналитики файерволом. В противном случае есть риск несанкционированного подключения к сервису, что может привести к получению:
- Информации об обработанных запросах
- Возможности выполнения произвольного Lua-кода и команд операционной системы
Обратите внимание, что если модуль постаналитики устанавливается на одном сервере с модулем NGINX‑Вебмониторэкс, то такого риска нет, так как модуль постаналитики подключается к порту 3313.
Настройки файервола для отдельно установленного модуля постаналитики:
- Разрешите прохождение HTTPS‑трафика к API-серверу Вебмониторэкс (
api.wallarm.ru
) в обоих направлениях, чтобы модуль постаналитики мог взаимодействовать с этим сервером. - Ограничьте доступ к порту
3313
Tarantool по протоколам TCP и UDP, разрешив соединения только с IP‑адресов нод Вебмониторэкс.