Установка Меганоды Вебмониторэкс¶
Меганода Вебмониторэкс – универсальный установщик, который предназначен для оптимизации и стандартизации процесса установки динамического модуля в различных средах. Установщик автоматически определяет версии вашей операционной системы и NGINX/Angie и устанавливает все необходимые зависимости.
По сравнению с отдельными пакетами Linux, предлагаемыми Вебмониторэкс для NGINX, NGINX c дистрибутивом и Angie, универсальный установщик упрощает процесс, автоматически выполняя следующие действия:
-
Проверка вашей ОС и версии NGINX/Angie/Angie PRO.
-
Подключение установленного модуля Вебмониторэкс к вашему NGINX/Angie/Angie PRO.
-
Подключение фильтрующей ноды к Вычислительному кластеру Вебмониторэкс с использованием предоставленного токена.
Сценарии использования¶
Среди всех поддерживаемых вариантов развертывания Вебмониторэкс это решение рекомендуется в следующих случаях:
-
Ваша инфраструктура основана на «голом железе» или виртуальных машинах без использования методов на основе контейнеров. Обычно этими настройками управляют с помощью инструментов «Инфраструктура как код» (IaC), таких как Ansible или SaltStack.
-
Ваши сервисы построены на базе NGINX/Angie. Вебмониторэкс может расширить свои функциональные возможности с помощью универсального установщика.
Требования¶
-
Доступ к аккаунту с ролью Администратор МЭ в Консоли управления Вебмониторэкс.
-
Выполнение команд от имени суперпользователя (например,
root). -
Доступ к
https://meganode.webmonitorx.ru/для загрузки универсального установщика Вебмониторэкс. Убедитесь, что доступ не заблокирован брандмауэром. -
Доступ к
https://api.webmonitorx.ruдля работы с Вычислительным кластером Вебмониторэкс API. Если доступ Вебмониторэкс API возможен только через прокси-сервер, воспользуйтесь инструкцией для настройки. -
Доступ к хранилищу cloud.ru (
*.obs.ru-moscow-1.hc.sbercloud.ru), чтобы обеспечить корректную блокировку IP‑адресов, зарегистрированных в странах, регионах или дата-центрах из белого, черного и серого списков IP.Необходимо обеспечить доступ к
*.obs.ru-moscow-1.hc.sbercloud.ruпо порту443. -
Установленный текстовый редактор vim, nano или другой.
Поддерживаемые операционные системы¶
- Debian 11, 12, 13
- Ubuntu LTS 18.04, 20.04, 22.04, 24.04
- CentOS 7, 8 Stream, 9 Stream
- Alma/Rocky Linux 9
- RHEL 8, 9, 10
- Oracle Linux 8.x, 9.x
- РЕД ОС
- Альт Сервер 10, 11
- SuSe Linux
- Astra Linux
- Другие (список постоянно расширяется, вы можете связаться со службой поддержки Вебмониторэкс, чтобы проверить, есть ли в списке ваша ОС)
Варианты установки¶
Обработка запросов в модуле Вебмониторэкс делится на две фазы:
-
Первичная обработка в модуле NGINX-Вебмониторэкс (нодой Вебмониторэкс). Не требует большого объема оперативной памяти, может быть размещена на текущих frontend-серверах без изменения требований.
-
Статистический анализ обработанных запросов в модуле постаналитики. Требует значительного объема памяти, что может потребовать внесения изменений в конфигурацию существующих серверов либо выполнение постаналитики на другом сервере.
В зависимости от архитектуры системы, модуль NGINX-Вебмониторэкс и модуль постаналитики могут быть установлены на один сервер или на разные серверы.
Если требуется разместить постаналитику на отдельном сервере, используйте инструкцию Установка Меганоды с раздельным сервером постаналитики. Это необязательный сценарий. Ниже описана установка фильтрации и постаналитики на одном сервере. Параметры filtering и postanalytics для нее не нужны.
Команды установки для разных вариантов описаны в соответствующих шагах.
Установка¶
1. Установите NGINX/Angie и зависимости¶
Установите последнюю версию NGINX или Angie:
-
NGINX
stable— возможны следующие способы установки из репозитория NGINX:-
Установка из готового пакета
sudo apt install curl gnupg2 ca-certificates lsb-release echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/debian `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null sudo apt update sudo apt install nginxsudo apt update sudo apt install -y curl gnupg ca-certificates lsb-release ubuntu-keyring curl -fsSL https://nginx.org/keys/nginx_signing.key \ | sudo gpg --dearmor -o /usr/share/keyrings/nginx-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list sudo apt update sudo apt install nginxa. Если для CentOS 7.x у вас уже подключен репозиторий EPEL, отключите установку NGINX stable из репозитория EPEL. Для этого добавьте выражение
exclude=nginx*в файл/etc/yum.repos.d/epel.repo.Пример файла после добавления выражения
exclude=nginx*:[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 exclude=nginx* [epel-debuginfo] name=Extra Packages for Enterprise Linux 7 - $basearch - Debug #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1 [epel-source] name=Extra Packages for Enterprise Linux 7 - $basearch - Source #baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1b. Установите NGINX stable из официального репозитория:
echo -e '\n[nginx-stable] \nname=nginx stable repo \nbaseurl=http://nginx.org/packages/centos/$releasever/$basearch/ \ngpgcheck=1 \nenabled=1 \ngpgkey=https://nginx.org/keys/nginx_signing.key \nmodule_hotfixes=true' | sudo tee /etc/yum.repos.d/nginx.repo sudo yum install nginx -
Компиляция и установка с аналогичными опциями из исходного кода из ветки
stableрепозитория NGINX
Более подробная информация об установке доступна в официальной документации NGINX.
-
-
Distribution-Provided NGINX — для установки используйте следующие команды:
sudo apt update
sudo apt -y install --no-install-recommends nginx
sudo yum -y update
sudo yum install -y nginx
sudo yum -y update
sudo yum install -y nginx
-
Angie PRO — как установить, смотрите в документации Angie PRO.
-
Angie — как установить, смотрите в документации Angie.
2. Загрузите Меганоду Вебмониторэкс¶
Используйте следующие команды, чтобы загрузить Меганоду для вашей системы:
export WMX_NODE_RELEASE="5.0"
export WMX_NODE_REVISION="36"
export WMX_NODE_FULL="${WMX_NODE_RELEASE}.${WMX_NODE_REVISION}"
curl -O "https://meganode.webmonitorx.ru/${WMX_NODE_RELEASE}/wnode-portable-bundle-${WMX_NODE_FULL}.x86_64.sh"
3. Подготовьте токен Вебмониторэкс¶
Для установки ноды вам понадобится токен Вебмониторэкс соответствующего типа.
Чтобы подготовить токен:
- Откройте Консоль управления Вебмониторэкс → Ноды.
- Перейдите в Консоль управления → Ноды, создайте ноду и скопируйте сгенерированный токен.
Обратите внимание
Скопировать токен повторно не получится: для восстановления потребуется пересоздать ноду либо извлечь токен из файла node.yaml.
- Откройте Консоль управления Вебмониторэкс → Настройки → API токены.
- Найдите или создайте API токен с правами на создание Ноды.
- Скопируйте токен.
4. Запустите скрипт¶
Используйте токен для запуска скрипта:
sudo sh "wnode-portable-bundle-${WMX_NODE_FULL}.x86_64.sh" -- -b -t "WALLARM_API_TOKEN"
Если для установки требуется прокси, используйте команду запуска через прокси.
Запуск, если /tmp смонтирован с noexec:
Начиная с Меганоды 5.0.33, установщик работает и при /tmp, смонтированном с noexec (например, в Astra Linux 1.8 с настройками по умолчанию): для распаковки используются /var/tmp или /opt.
При необходимости явно укажите каталог распаковки через переменную TMPDIR. В нём должен быть разрешён запуск программ и доступно не меньше 256 МБ свободного места:
sudo mkdir -p /opt/wnode-tmp
sudo env TMPDIR=/opt/wnode-tmp sh "wnode-portable-bundle-${WMX_NODE_FULL}.x86_64.sh" -- -b -t "WALLARM_API_TOKEN"
Временные файлы установщик удалит сам, пустой каталог /opt/wnode-tmp после установки можно удалить.
5. Включите ноду Вебмониторэкс для анализа трафика¶
По умолчанию развернутая нода Вебмониторэкс не анализирует входящий трафик.
В зависимости от выбранного подхода к развертыванию Вебмониторэкс (проксированный или зеркалированный) настройте Вебмониторэкс либо на прокси-трафик, либо на обработку зеркала трафика.
Выполните следующую настройку в файле конфигурации NGINX/Angie на устройстве с установленной нодой:
- Установите IP-адрес, на который Вебмониторэкс будет проксировать легитимный трафик. Это может быть IP-адрес экземпляра приложения, балансировщика нагрузки, DNS-имя и т. д., в зависимости от вашей архитектуры.
Для этого отредактируйте значениеproxy_pass, например. Вебмониторэкс должен отправлять легитимные запросы на адресhttp://10.80.0.5:
server {
listen 80;
listen [::]:80 ipv6only=on;
...
location / {
proxy_pass http://10.80.0.5;
...
}
}
- Чтобы нода Вебмониторэкс могла анализировать входящий трафик, установите директиву
wallarm_modeна мониторинг:
server {
listen 80;
listen [::]:80 ipv6only=on;
wallarm_mode monitoring;
...
}
Режим мониторинга рекомендуется использовать для первого развертывания и тестирования решения. Вебмониторэкс также обеспечивает разные режимы блокировки.
Пример
upstream backend {
server backend1.example.com; # Ваш бэкенд
}
server {
listen 443 ssl;
server_name ваш_домен.ru; # Замените "ваш_домен.ru" на ваш домен
wallarm_mode monitoring; # Режим работы Вебмониторэкс
ssl_certificate /путь/к/вашему/сертификату.crt;
ssl_certificate_key /путь/к/вашему/ключу.key;
location / {
proxy_pass https://backend; # Проксирование на конечный ресурс по HTTPS
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
- Чтобы нода Вебмониторэкс принимала зеркалированный трафик, установите в
serverNGINX следующую конфигурацию:
wallarm_force server_addr $http_x_server_addr;
wallarm_force server_port $http_x_server_port;
# Change 222.222.222.22 to the address of the mirroring server
set_real_ip_from 222.222.222.22;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
wallarm_force response_status 0;
wallarm_force response_time 0;
wallarm_force response_size 0;
- Директивы
set_real_ip_fromиreal_ip_headerнеобходимы для того, чтобы Консоль управления Вебмониторэкс отображала IP-адреса злоумышленников. - Директивы
wallarm_force_response_*необходимы для отключения анализа всех запросов, кроме копий, полученных из зеркалированного трафика.
- Чтобы нода Вебмониторэкс могла анализировать зеркалируемый трафик, установите директивы
wallarm_modeдляmonitoring:
server {
listen 80;
listen [::]:80 ipv6only=on;
wallarm_mode monitoring;
...
}
Поскольку вредоносные запросы невозможно заблокировать, единственный режим, который принимает Вебмониторэкс, — это мониторинг. Для встроенного развертывания также существуют режимы безопасной блокировки и блокировки, но даже если вы установите для директивы wallarm_mode значение, отличное от мониторинга, узел продолжает отслеживать трафик и записывать только вредоносный трафик (кроме выключенного режима).
6. Перезапустите NGINX/Angie¶
Используйте следующие команды для NGINX/Angie, чтобы перезапустить, активировать автостарт при перезагрузке сервера и проверить статус:
sudo systemctl restart nginx
sudo systemctl enable nginx
sudo systemctl status nginx
sudo systemctl restart angie
sudo systemctl enable angie
sudo systemctl status angie
Сервер NGINX/Angie должен корректно перезапуститься и находиться в состоянии active.
7. Настройте отправку трафика на ноду Вебмониторэкс¶
Обновите цели вашего балансировщика нагрузки, чтобы отправлять трафик на ноду Вебмониторэкс. Подробную информацию см. в документации к вашему балансировщику нагрузки.
Настройте свой веб-сервер или прокси-сервер (например, NGINX) для зеркалирования входящего трафика на ноду Вебмониторэкс. Для получения подробной информации о настройке мы рекомендуем обратиться к документации вашего веб-сервера или прокси-сервера.
Обратите внимание
Для корректной работы необходимо добавить IP-адрес ноды в белый список доступа по IP.
Проверка работы Меганоды¶
-
Отправьте тестовый запрос с атакой Path Traversal на адрес защищенного ресурса:
curl http://localhost/etc/passwd -
Перейдите в Консоль управления Вебмониторэкс → раздел События и убедитесь, что атака появилась в списке.
Настройки после установки¶
Эти настройки зависят от инфраструктуры и не являются обязательными шагами базовой установки.
Запуск через прокси¶
Если доступ к API возможен только через прокси, используйте эту команду на шаге запуска установщика:
sudo https_proxy=http://<ПРОКСИ_СЕРВЕР> sh "wnode-portable-bundle-${WMX_NODE_FULL}.x86_64.sh" -- -b -t "WALLARM_API_TOKEN"
Сохранение настроек памяти и прокси в env.list¶
Чтобы при обновлении Вебмониторэкс сохранить настройки выделенной памяти под Tarantool, необходимо создать файл /etc/wallarm-override/env.list.
-
Внутри файла укажите размер памяти в ГБ, создав атрибут
SLAB_ALLOC_ARENA.
Значение может быть целым или дробным (разделитель целой и дробной части — точка).
Например:SLAB_ALLOC_ARENA=10.4. -
Также в файле можно указать используемый proxy-сервер для обновления Меганоды и связи с вычислительным кластером, создав атрибут
https_proxy.Пример файла env.list
SLAB_ALLOC_ARENA=0.2 https_proxy=http://<адрес_прокси_сервера>
Значение no_proxy¶
Присвойте переменной no_proxy значение в виде массива IP‑адресов и/или доменов, к которым нужно обращаться без использования прокси:
-
127.0.0.1,127.0.0.8,127.0.0.9иlocalhostдля корректной работы WAF‑ноды Вебмониторэкс -
дополнительные адреса в формате
"<res_1>,<res_2>,<res_3>,<res_4>,...", где<res_1>,<res_2>,<res_3>и<res_4>— IP‑адреса и/или доменыПример файла /etc/wallarm-override/env.list
Пример файла
/etc/wallarm-override/env.listниже описывает следующую конфигурацию:- HTTPS‑ и HTTP‑запросы проксируются на хост
1.2.3.4с портом1234, используя для авторизации на прокси‑сервере имя пользователяadminи пароль01234 - Для запросов к
127.0.0.1,127.0.0.8,127.0.0.9иlocalhostпроксирование отключено
https_proxy=http://admin:01234@1.2.3.4:1234 http_proxy=http://admin:01234@1.2.3.4:1234 no_proxy=127.0.0.1,127.0.0.8,127.0.0.9,localhost - HTTPS‑ и HTTP‑запросы проксируются на хост
Дополнительные настройки ноды¶
Динамический модуль Вебмониторэкс со стандартными настройками установлен на NGINX/Angie. Чтобы кастомизировать настройки Вебмониторэкс, используйте доступные директивы.
Частые настройки:
-
Использование балансировщика или прокси‑сервера перед нодой Вебмониторэкс
-
Ограничение времени обработки единичного запроса в директиве
wallarm_process_time_limit -
Ограничение времени ожидания ответа сервера в директиве NGINX
proxy_read_timeout -
Ограничение максимального размера запроса в директиве NGINX
client_max_body_size
Параметры запуска¶
Как только вы загрузите универсальный скрипт, вы сможете получить помощь по нему:
sudo sh ./wnode-portable-bundle-5.0.36.x86_64.sh -- -h
Что возвращает:
...
Usage: setup.sh [options]... [arguments]... [filtering/postanalytics]
OPTION DESCRIPTION
-b, --batch Batch mode, non-interactive installation.
-t, --token TOKEN Node token, used only in batch mode.
-c, --cloud CLOUD WMX Cloud, default is WMX, used only in batch mode.
-H, --host HOST WMX API address, for example: api.webmonitorx.ru, used only in batch mode.
-P, --port PORT WMX API port, for example, 443.
-l, --labels LABELS WMX application labels.
-n, --name NODNAME WMX node instance prefix name.
-A, --ca-file CERT_AUTHORITY
File contains Cloud certificate authority.
--no-ssl Disable SSL for WMX API access.
--no-verify Disable SSL certificates verification.
--no-sync Disable initial sync of customruleset and proton.db files.
--no-sync-acl Disable initial sync of ip-lists and ip-lists-source(mmdb) files.
--no-export-env Disable initial export of installed component versions to WMX Cloud.
-f, --force Forcefully replaces the existing WMX Node instance with a new one, persisting Node name.
--skip-registration Skip node registration process during installation.
--skip-nginx Proceed installation even if angie/nginx is not installed.
--skip-nginx-conf Skip angie/nginx configuration process during installation.
--nginx-conf-file NGX_CFILE
Manually specified angie/nginx config file.
--nginx-bin-file NGX_BFILE
Manually specified angie/nginx binary file.
--skip-systemd Skip systemd unit configuration process during installation.
--trace-setup Trace setup script execution.
-h, --help Show this help message.
--version Show script version.
-i, --info Show available modules.
Чтобы воспользоваться запуском без подсказок:
sudo sh ./wnode-portable-bundle-5.0.36.x86_64.sh -- -b
Обратите внимание:
-
Опция
--batchвключает пакетный (неинтерактивный) режим. В этом режиме, если вы не используете дополнительные параметры, нода устанавливается сразу после запуска скрипта, не требуя от пользователя дополнительного взаимодействия или ввода данных. Пакетный режим:- Требуется
--token. - Позволяет изменять поведение скрипта с помощью дополнительных опций.
- Требуется
-
Переключатель
filtering/postanalyticsпозволяет установить модуль постаналитики отдельно. Если переключатель не используется, то фильтрационная и постаналитическая часть устанавливаются целиком.
История версий Меганоды Вебмониторэкс →
Обновление Меганоды →
Обновление пакетных версий ноды на Меганоду →

