Установка Меганоды Вебмониторэкс¶
Меганода Вебмониторэкс – универсальный установщик, который предназначен для оптимизации и стандартизации процесса установки динамического модуля в различных средах. Установщик автоматически определяет версии вашей операционной системы и NGINX/Angie и устанавливает все необходимые зависимости.
По сравнению с отдельными пакетами Linux, предлагаемыми Вебмониторэкс для NGINX, NGINX Plus, NGINX c дистрибутивом и Angie, универсальный установщик упрощает процесс, автоматически выполняя следующие действия:
-
Проверка вашей ОС и версии NGINX/Angie/Angie PRO.
-
Подключение установленного модуля Вебмониторэкс к вашему NGINX/Angie/Angie PRO.
-
Подключение фильтрующей ноды к Вычислительному кластеру Вебмониторэкс с использованием предоставленного токена.
Сценарии использования¶
Среди всех поддерживаемых вариантов развертывания Вебмониторэкс это решение рекомендуется в следующих случаях:
-
Ваша инфраструктура основана на «голом железе» или виртуальных машинах без использования методов на основе контейнеров. Обычно этими настройками управляют с помощью инструментов «Инфраструктура как код» (IaC), таких как Ansible или SaltStack.
-
Ваши сервисы построены на базе NGINX/Angie. Вебмониторэкс может расширить свои функциональные возможности с помощью универсального установщика.
Требования¶
-
Доступ к аккаунту с ролью Администратор в Консоли управления Вебмониторэкс.
-
Выполнение команд от имени суперпользователя (например,
root
). -
Доступ к
https://meganode.webmonitorx.ru/
для загрузки универсального установщика Вебмониторэкс. Убедитесь, что доступ не заблокирован брандмауэром. -
Доступ к
https://api.wallarm.ru
иhttps://api.webmonitorx.ru
для работы с Вычислительным кластером Вебмониторэкс API. Если доступ Вебмониторэкс API возможен только через прокси-сервер, воспользуйтесь инструкцией для настройки. -
Для обработки запросов и постаналитики на разных серверах: модуль постаналитики, установленный на отдельный сервер по инструкции.
-
Доступ к хранилищу Яндекс S3 (
https://storage.yandexcloud.net
), чтобы обеспечить корректную блокировку IP‑адресов, зарегистрированных в странах, регионах или дата-центрах из белого, черного и серого списков IP.Необходимо обеспечить доступ к
https://storage.yandexcloud.net
или нескольким диапазонам IP‑адресов: диапазон 1 и диапазон 2. -
Установленный текстовый редактор vim, nano или другой.
Поддерживаемые операционные системы¶
- Debian 10, 11 and 12.x
- Ubuntu LTS 18.04, 20.04, 22.04
- CentOS 7, 8 Stream, 9 Stream
- Alma/Rocky Linux 9
- RHEL 8.x
- Oracle Linux 8.x
- РЕД ОС
- Альт Сервер 10
- SuSe Linux
- Другие (список постоянно расширяется, вы можете связаться со службой поддержки Вебмониторэкс, чтобы проверить, есть ли в списке ваша ОС)
Варианты установки¶
Обработка запросов в модуле Вебмониторэкс делится на две фазы:
-
Первичная обработка в модуле NGINX-Вебмониторэкс (нодой Вебмониторэкс). Не требует большого объема оперативной памяти, может быть размещена на текущих frontend-серверах без изменения требований.
-
Статистический анализ обработанных запросов в модуле постаналитики. Требует значительного объема памяти, что может потребовать внесения изменений в конфигурацию существующих серверов либо выполнение постаналитики на другом сервере.
В зависимости от архитектуры системы, модуль NGINX-Вебмониторэкс и модуль постаналитики могут быть установлены на один сервер или на разные серверы.
Команды установки для разных вариантов описаны в соответствующих шагах.
Установка¶
1. Установите NGINX/Angie и зависимости.¶
Установите последнюю версию NGINX или Angie:
-
NGINX
stable
— как установить, смотрите в документации NGINX. -
NGINX Plus — как установить, смотрите в документации NGINX.
-
Distribution-Provided NGINX
stable
— для установки используйте следующие команды:
sudo apt install curl gnupg2 ca-certificates lsb-release
echo "deb 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 apt-key add -
sudo apt update
sudo apt install nginx
sudo apt install curl gnupg2 ca-certificates lsb-release
echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
sudo apt update
sudo apt install nginx
- Если для 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=1
-
Angie PRO — как установить, смотрите в документации Angie PRO.
-
Angie — как установить, смотрите в документации Angie.
2. Подготовьте токен Вебмониторэкс¶
Для установки ноды вам понадобится токен Вебмониторэкс соответствующего типа. Чтобы подготовить токен:
- Откройте Консоль управления Вебмониторэкс → Ноды.
- Выполните одно из следующих действий:
- Создайте ноду Вебмониторэкс и скопируйте сгенерированный токен.
- Используйте существующую группу ноды — скопировать токен с помощью меню ноды → Копировать токен.
- Откройте Консоль управления Вебмониторэкс → Настройки → API токены.
- Найдите или создайте API токен с
Деплой
. - Скопируйте токен.
3. Загрузите меганоду Вебмониторэкс¶
Используйте следующие команды, чтобы загрузить WMX Meganode для вашей системы:
export WMX_NODE_RELEASE="4.6"
export WMX_NODE_REVISION="30"
export WMX_NODE_FULL="${WMX_NODE_RELEASE}.${WMX_NODE_REVISION}"
curl -O "https://meganode.webmonitorx.ru/${WMX_NODE_RELEASE}/wallarm-${WMX_NODE_FULL}.x86_64.sh"
4. Запустите скрипт¶
Используйте токен ноды для запуска скрипта:
sudo sh "wallarm-${WMX_NODE_FULL}.x86_64.sh" -- -b -c RU -t "WMX Node token"
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;
...
}
Режим мониторинга рекомендуется использовать для первого развертывания и тестирования решения. Вебмониторэкс также обеспечивает разные режимы блокировки.
- Чтобы нода Вебмониторэкс принимала зеркалированный трафик, установите в
server
NGINX следующую конфигурацию:
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 restart angie
7. Настройте отправку трафика на ноду Вебмониторэкс¶
Обновите цели вашего балансировщика нагрузки, чтобы отправлять трафик на ноду Вебмониторэкс. Подробную информацию см. в документации к вашему балансировщику нагрузки.
Настройте свой веб-сервер или прокси-сервер (например, NGINX) для зеркалирования входящего трафика на ноду Вебмониторэкс. Для получения подробной информации о настройке мы рекомендуем обратиться к документации вашего веб-сервера или прокси-сервера.
8. Протестируйте работу Вебмониторэкс¶
-
Отправьте тестовый запрос с атакой Path Traversal на адрес защищенного ресурса:
curl http://localhost/etc/passwd
-
Перейдите в Консоль управления Вебмониторэкс → раздел События и убедитесь, что атака появилась в списке.
Настройка¶
Динамический модуль Вебмониторэкс со стандартными настройками установлен на NGINX/Angie. Чтобы кастомизировать настройки Вебмониторэкс, используйте доступные директивы.
Частые настройки:
-
Использование балансировщика или прокси‑сервера перед нодой Вебмониторэкс
-
Ограничение времени обработки единичного запроса в директиве
wallarm_process_time_limit
-
Ограничение времени ожидания ответа сервера в директиве NGINX
proxy_read_timeout
-
Ограничение максимального размера запроса в директиве NGINX
client_max_body_size
Параметры запуска¶
Как только вы загрузите универсальный скрипт, вы сможете получить помощь по нему:
sudo sh ./wallarm-4.6.30.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, only used in a batch mode.
-P, --port PORT Wallarm API pot, for example, 443.
--no-ssl Disable SSL for Wallarm API access.
--no-verify Disable SSL certificates verification.
-f, --force If there is a node with the same name, create a new instance.
--skip-registration Skip node registration process during installation.
--skip-nginx Skip nginx configuration process during installation.
--skip-systemd Skip systemd unit configuration process during installation.
-h, --help Show this help message.
--version Show script version.
Обратите внимание:
-
Опция
--batch
включает пакетный (неинтерактивный) режим. В этом режиме, если вы не используете дополнительные параметры, нода устанавливается сразу после запуска скрипта, не требуя от пользователя дополнительного взаимодействия или ввода данных. Пакетный режим:- Требуется
--token
. - Позволяет изменять поведение скрипта с помощью дополнительных опций.
- Требуется
-
Переключатель
filtering/postanalytics
позволяет установить модуль постаналитики отдельно. Если переключатель не используется, то фильтрационная и постаналитическая часть устанавливаются целиком.