Перейти к содержанию

Отдельная установка постаналитики

Обработка запросов в WAF‑ноде делится на две фазы:

  • Первичная обработка в модуле NGINX-Wallarm.

  • Постаналитика. Статистический анализ обработанных запросов.

Первичная обработка не требует большого объема оперативной памяти, поэтому может быть размещена на текущих frontend-серверах без изменения требований к ним.

Постаналитика требует значительного объема памяти, что может потребовать внесения изменений в конфигурацию существующих серверов либо выполнение постаналитики на другом сервере. Валарм предусматривает возможность установки модуля постаналитики на отдельной группе серверов.

Для установки модуля постаналитики вам потребуется выполнить следующие
действия:

  1. Добавить репозитории Валарм, из которых вы загрузите пакеты.

  2. Установить пакеты Валарм.

  3. Настроить модуль постаналитики.

  4. Подключить модуль постаналитики к облаку Валарм.

  5. Изменить адреса Tarantool для модулей аналитики.

Необходимые условия

  • Перед установкой отключите или настройте SELinux, если он установлен в операционной системе.
  • Убедитесь, что вы выполняете все команды, приведенные ниже, от имени суперпользователя (например, root).

1. Добавьте репозитории Валарм

Установка и обновление модуля постаналитики происходит из репозиториев Валарм.

В зависимости от вашей операционной системы, выполните одну из следующих команд:

sudo apt install dirmngr
curl -fsSL https://repo.wallarm.com/wallarm.gpg | sudo apt-key add -
echo 'Acquire::Check-Valid-Until "false";' | sudo tee /etc/apt/apt.conf.d/ignore-release-date
echo 'deb http://archive.debian.org/debian jessie-backports/ main' | sudo tee /etc/apt/sources.list.d/jessie-backports.list
echo 'deb http://repo.wallarm.com/debian/wallarm-node jessie/' | sudo tee /etc/apt/sources.list.d/wallarm.list
echo 'deb http://repo.wallarm.com/debian/wallarm-node jessie-backports/' | sudo tee --append /etc/apt/sources.list.d/wallarm.list
sudo apt update
sudo apt install dirmngr
curl -fsSL https://repo.wallarm.com/wallarm.gpg | sudo apt-key add -
sh -c "echo 'deb http://repo.wallarm.com/debian/wallarm-node stretch/2.14/' | sudo tee /etc/apt/sources.list.d/wallarm.list"
sudo apt update
sudo apt install dirmngr
curl -fsSL https://repo.wallarm.com/wallarm.gpg | sudo apt-key add -
sh -c "echo 'deb http://repo.wallarm.com/debian/wallarm-node buster/2.14/' | sudo tee /etc/apt/sources.list.d/wallarm.list"
sudo apt update
curl -fsSL https://repo.wallarm.com/wallarm.gpg | sudo apt-key add -
sh -c "echo 'deb http://repo.wallarm.com/ubuntu/wallarm-node xenial/2.14/' | sudo tee /etc/apt/sources.list.d/wallarm.list"
sudo apt update
curl -fsSL https://repo.wallarm.com/wallarm.gpg | sudo apt-key add -
sh -c "echo 'deb http://repo.wallarm.com/ubuntu/wallarm-node bionic/2.14/' | sudo tee /etc/apt/sources.list.d/wallarm.list"
sudo apt update
sudo yum install --enablerepo=extras -y epel-release centos-release-SCL
sudo rpm -i https://repo.wallarm.com/centos/wallarm-node/6/2.14/x86_64/Packages/wallarm-node-repo-1-5.el6.noarch.rpm
sudo yum install -y epel-release
sudo rpm -i https://repo.wallarm.com/centos/wallarm-node/7/2.14/x86_64/Packages/wallarm-node-repo-1-5.el7.noarch.rpm
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -i https://repo.wallarm.com/centos/wallarm-node/7/2.14/x86_64/Packages/wallarm-node-repo-1-5.el7.noarch.rpm

Доступ к репозиториям

У системы должна быть возможность обратиться к https://repo.wallarm.com для загрузки пакетов. Убедитесь, что доступ не ограничен настройками файервола.

2. Установите пакеты Валарм

Обновите OpenSSL

Перед установкой пакетов Валарм обновите пакет OpenSSL до последней версии, доступной в репозитории вашей операционной системы.

Установите модуль NGINX-Wallarm и необходимые скрипты для взаимодействия с
облаком Валарм.

sudo apt install --no-install-recommends wallarm-node-tarantool
sudo apt install --no-install-recommends wallarm-node-tarantool
sudo apt install --no-install-recommends 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
sudo yum install wallarm-node-tarantool

3. Настройте модуль постаналитики

Укажите объем оперативной памяти для Tarantool

Количество памяти влияет на качество работы статистических алгоритмов.
Рекомендуемое значение — 75% от общей памяти сервера. Например, если у сервера

32 ГБ памяти, оптимально выделить под хранилище 24 ГБ.

Откройте конфигурационный файл Tarantool:

vim /etc/default/wallarm-tarantool
vim /etc/default/wallarm-tarantool
vim /etc/default/wallarm-tarantool
vim /etc/default/wallarm-tarantool
vim /etc/default/wallarm-tarantool
vim /etc/sysconfig/wallarm-tarantool
vim /etc/sysconfig/wallarm-tarantool
vim /etc/sysconfig/wallarm-tarantool

Укажите размер выделяемой памяти в конфигурационном файле Tarantool директивой
SLAB_ALLOC_ARENA.

Например:

SLAB_ALLOC_ARENA=24

Настройте адреса сервера постаналитики

Раскоментируйте переменные HOST и PORT и установите им следующие значения:

# address and port for bind
HOST='0.0.0.0'
PORT=3313

Перезапустите Tarantool

sudo systemctl restart wallarm-tarantool
sudo systemctl restart wallarm-tarantool
sudo systemctl restart wallarm-tarantool
sudo systemctl restart wallarm-tarantool
sudo systemctl restart wallarm-tarantool
sudo service wallarm-tarantool restart
sudo systemctl restart wallarm-tarantool
sudo systemctl restart wallarm-tarantool

Проверьте статус Tarantool

Чтобы убедиться в том, что модуль постаналитики установился корректно и успешно запущен, введите следующую команду:

sudo systemctl status wallarm-tarantool
sudo systemctl status wallarm-tarantool
sudo systemctl status wallarm-tarantool
sudo systemctl status wallarm-tarantool
sudo systemctl status wallarm-tarantool
sudo service wallarm-tarantool status
sudo systemctl status wallarm-tarantool
sudo systemctl status wallarm-tarantool

Статус модуля должен быть active:

Статус wallarm-tarantool

4. Подключите модуль постаналитики к облаку Валарм

Обеспечьте доступ к облаку, чтобы подсистема постаналитики могла обновлять правила обработки, выгружать метрики и данные об атаках.

sudo /usr/share/wallarm-common/addnode --no-sync
sudo /usr/share/wallarm-common/addnode -H api.wallarm.ru --no-sync

Во время старта скрипт запросит логин и пароль. Введите данные, которые вы используете для входа в Личный кабинет в EU‑облаке или в RU‑облаке.

Ваша учетная запись должна иметь привилегии на подключение новой WAF‑ноды. Если таких привилегий нет, скрипт сообщит об ошибке.

Учетные записи со включенной двухфакторной аутентификацией не поддерживаются. В этом случае скрипт сообщит об ошибке.

Info

Для взаимодействия с облаком у сервера должен быть открыт доступ к:

  • https://api.wallarm.com:444 для работы с EU‑облаком
  • https://api.wallarm.ru:444 для работы с RU‑облаком

В случае проблем убедитесь, что он не ограничен файерволом.

5. Измените адреса Tarantool для модулей аналитики

Если конфигурационный файл Tarantool настроен принимать соединения на адресах, отличных от 0.0.0.0 или 127.0.0.1, то необходимо указать эти адреса в /etc/wallarm/node.yaml:

hostname: <node hostname>
uuid: <node uuid>
secret: <node secret>
tarantool:
   host: <IP address of Tarantool host>
   port: 3313

Установка завершена

На этом установка постаналитики завершена.

Защита постаналитики

Мы настоятельно рекомендуем защитить установленный модуль постаналитики файерволом. В противном случае есть риск несанкционированного подключения к сервису, что может привести к получению:

  • информации об обработанных запросах;
  • возможности выполнения произвольного Lua-кода и команд операционной системы.

Обратите внимание, что если модуль постаналитики устанавливается на одном сервере с модулем Валарм, то такого риска нет, так как модуль постаналитики подключается к порту 3313.

Настройки файервола для отдельно установленного модуля постаналитики:

  • Разрешите прохождение HTTPS‑трафика к API-серверам Валарм (api.wallarm.com:444 для EU‑облака или api.wallarm.ru для RU‑облака) в обоих направлениях, чтобы модуль постаналитики мог взаимодействовать с этими серверами.
  • Ограничьте доступ к порту 3313 Tarantool по протоколам TCP и UDP, разрешив соединения только с IP‑адресов WAF‑нод Валарм.