Отдельная установка модуля постаналитики¶
Обработка запросов в модуле Вебмониторэкс делится на две фазы:
-
Первичная обработка в модуле NGINX-Вебмониторэкс (нодой Вебмониторэкс). Не требует большого объема оперативной памяти, может быть размещена на текущих frontend-серверах без изменения требований.
-
Статистический анализ обработанных запросов в модуле постаналитики. Требует значительного объема памяти, что может потребовать внесения изменений в конфигурацию существующих серверов либо выполнение постаналитики на другом сервере.
В зависимости от архитектуры системы, модуль NGINX-Вебмониторэкс и модуль постаналитики могут быть установлены на один сервер или на разные серверы.
Данная инструкция описывает способ установки модуля постаналитики на отдельный сервер.
Требования¶
-
Модуль NGINX-Вебмониторэкс, установленный для NGINX stable из репозитория NGINX, NGINX из репозитория Debian/CentOS или NGINX Plus
-
Доступ к аккаунту с ролью Администратор или Деплой и отключенной двухфакторной аутентификацией в Консоли управления Вебмониторэкс
-
SELinux, отключенный или настроенный по инструкции
-
Выполнение команд от имени суперпользователя (например,
root
) -
Возможность обращаться к
https://repo.webmonitorx.ru
для загрузки пакетов. Убедитесь, что доступ не ограничен настройками файервола -
Доступ к
https://api.wallarm.ru:444
для работы с Вычислительным кластером Вебмониторэкс. Если доступ к Вебмониторэкс API возможен только через прокси‑сервер, используйте инструкцию для настройки - Установленный текстовый редактор vim, nano или другой. В инструкции используется редактор vim
Установка¶
1. Добавьте репозитории Вебмониторэкс¶
Модуль постаналитики, как и другие модули Вебмониторэкс, устанавливается и обновляется из репозиториев Вебмониторэкс. Для добавления репозиториев используйте команды для вашей платформы:
sudo apt install dirmngr
curl -fsSL https://repo.webmonitorx.ru/wallarm.gpg | sudo apt-key add -
sh -c "echo 'deb http://repo.webmonitorx.ru/debian/wallarm-node stretch/2.18/' | sudo tee /etc/apt/sources.list.d/wallarm.list"
sudo apt update
sudo apt install dirmngr
curl -fsSL https://repo.webmonitorx.ru/wallarm.gpg | sudo apt-key add -
sh -c "echo 'deb http://repo.webmonitorx.ru/debian/wallarm-node stretch/2.18/' | sudo tee /etc/apt/sources.list.d/wallarm.list"
sh -c "echo 'deb http://repo.webmonitorx.ru/debian/wallarm-node stretch-backports/2.18/' | sudo tee --append /etc/apt/sources.list.d/wallarm.list"
# for correct Вебмониторэкс node operation, uncomment the following line in /etc/apt/sources.list`:
# deb http://deb.debian.org/debian stretch-backports main contrib non-free
sudo apt update
sudo apt install dirmngr
curl -fsSL https://repo.webmonitorx.ru/wallarm.gpg | sudo apt-key add -
sh -c "echo 'deb http://repo.webmonitorx.ru/debian/wallarm-node buster/2.18/' | sudo tee /etc/apt/sources.list.d/wallarm.list"
sudo apt update
curl -fsSL https://repo.webmonitorx.ru/wallarm.gpg | sudo apt-key add -
sh -c "echo 'deb http://repo.webmonitorx.ru/ubuntu/wallarm-node xenial/2.18/' | sudo tee /etc/apt/sources.list.d/wallarm.list"
sudo apt update
curl -fsSL https://repo.webmonitorx.ru/wallarm.gpg | sudo apt-key add -
sh -c "echo 'deb http://repo.webmonitorx.ru/ubuntu/wallarm-node bionic/2.18/' | sudo tee /etc/apt/sources.list.d/wallarm.list"
sudo apt update
curl -fsSL https://repo.webmonitorx.ru/wallarm.gpg | sudo apt-key add -
sh -c "echo 'deb http://repo.webmonitorx.ru/ubuntu/wallarm-node focal/2.18/' | sudo tee /etc/apt/sources.list.d/wallarm.list"
sudo apt update
sudo yum install -y epel-release
sudo rpm -i https://repo.webmonitorx.ru/centos/wallarm-node/7/2.18/x86_64/Packages/wallarm-node-repo-1-6.el7.noarch.rpm
sudo yum install -y epel-release
sudo rpm -i https://repo.webmonitorx.ru/centos/wallarm-node/8/2.18/x86_64/Packages/wallarm-node-repo-1-6.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
3. Подключите модуль постаналитики к Вычислительному кластеру Вебмониторэкс¶
В процессе работы модуль постаналитики взаимодействует с Вычислительным кластером Вебмониторэкс. Чтобы обеспечить взаимодействие с Вычислительным кластером, необходимо создать отдельную ноду Вебмониторэкс для модуля постаналитики. Нода будет получать правила обработки трафика из Вычислительного кластера и выгружать данные об атаках в Вычислительный кластер.
Чтобы создать ноду и подключить модуль постаналитики к Вычислительному кластеру, выполните следующие действия:
-
Убедитесь, что роль вашего пользователя в Консоли управления Вебмониторэкс — Администратор или Деплой и для пользователя отключена двухфакторная аутентификация.
Для этого перейдите к списку пользователей в Консоли управления и проверьте столбцы Роль и Auth:
-
В системе с установленными пакетами модуля постаналитики запустите скрипт
addnode
:sudo /usr/share/wallarm-common/addnode -H api.wallarm.ru --no-sync
-
Введите email и пароль от вашего аккаунта Вебмониторэкс.
-
Введите имя ноды для модуля постаналитики или нажмите Enter, чтобы использовать имя, сгенерированное автоматически.
Вы сможете изменить заданное имя позже в Консоли управления Вебмониторэкс → Ноды.
-
Перейдите в Консоль управления Вебмониторэкс → секция Ноды и убедитесь, что в списке появилась созданная нода.
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
Оперативная память¶
Модуль постаналитики использует находящееся в памяти хранилище 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
-
Снять комментарии с переменных
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
-
Перезапустить сервис NGINX на сервере с модулем NGINX‑Вебмониторэкс:
sudo systemctl restart nginx
sudo service nginx restart
sudo systemctl restart nginx
6. Проверьте взаимодействие модуля NGINX‑Вебмониторэкс и модуля постаналитики¶
Чтобы проверить взаимодействие модулей Вебмониторэкс, установленных на разных серверах, вы можете отправить на адрес защищаемого приложения тестовую атаку:
curl http://localhost/?id='or+1=1--a-<script>prompt(1)</script>'
Если модуль 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:444
в обоих направлениях, чтобы модуль постаналитики мог взаимодействовать с этим сервером. - Ограничьте доступ к порту
3313
Tarantool по протоколам TCP и UDP, разрешив соединения только с IP‑адресов нод Вебмониторэкс.