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

Установка WMX Meganode

Меганода Вебмониторэкс – универсальный установщик, который предназначен для оптимизации и стандартизации процесса установки динамического модуля в различных средах. Установщик автоматически определяет версии вашей операционной системы и NGINX/Angie и устанавливает все необходимые зависимости.

По сравнению с отдельными пакетами Linux, предлагаемыми Вебмониторэкс для NGINX, NGINX Plus, NGINX c дистрибутивом и Angie, универсальный установщик упрощает процесс, автоматически выполняя следующие действия:

  1. Проверка вашей ОС и версии NGINX/Angie/Angie PRO.

  2. Подключение установленного модуля Вебмониторэкс к вашему NGINX/Angie/Angie PRO.

  3. Подключение фильтрующей ноды к Вычислительному кластеру Вебмониторэкс с использованием предоставленного токена.

Сценарии использования

Среди всех поддерживаемых вариантов развертывания Вебмониторэкс это решение рекомендуется в следующих случаях:

  • Ваша инфраструктура основана на «голом железе» или виртуальных машинах без использования методов на основе контейнеров. Обычно этими настройками управляют с помощью инструментов «Инфраструктура как код» (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
  • Другие (список постоянно расширяется, вы можете связаться со службой поддержки Вебмониторэкс, чтобы проверить, есть ли в списке ваша ОС)

Варианты установки

Обработка запросов в модуле Вебмониторэкс делится на две фазы:

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

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

В зависимости от архитектуры системы, модуль 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
  1. Если для 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

2. Подготовьте токен Вебмониторэкс

Для установки ноды вам понадобится токен Вебмониторэкс соответствующего типа. Чтобы подготовить токен:

  1. Откройте Консоль управления Вебмониторэкс → Ноды.
  2. Выполните одно из следующих действий:
    • Создайте ноду Вебмониторэкс и скопируйте сгенерированный токен.
    • Используйте существующую группу ноды — скопировать токен с помощью меню ноды → Копировать токен.
  1. Откройте Консоль управления Вебмониторэкс → Настройки → API токены.
  2. Найдите или создайте API токен с Деплой.
  3. Скопируйте токен.

3. Загрузите меганоду Вебмониторэкс

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

export WMX_NODE_RELEASE="4.6"
export WMX_NODE_REVISION="25"
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 на устройстве с установленной нодой:

  1. Установите 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; 
                ...
        }
}
  1. Чтобы нода Вебмониторэкс могла анализировать входящий трафик, установите директиву wallarm_mode на мониторинг:

server {
        listen 80;
        listen [::]:80 ipv6only=on;
        wallarm_mode monitoring;

        ...
}

Режим мониторинга рекомендуется использовать для первого развертывания и тестирования решения. Вебмониторэкс также обеспечивает разные режимы блокировки.

  1. Чтобы нода Вебмониторэкс принимала зеркалированный трафик, установите в 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_* необходимы для отключения анализа всех запросов, кроме копий, полученных из зеркалированного трафика.
  1. Чтобы нода Вебмониторэкс могла анализировать зеркалируемый трафик, установите директивы 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. Протестируйте работу Вебмониторэкс

  1. Отправьте тестовый запрос с атакой Path Traversal на адрес защищенного ресурса:

    curl http://localhost/etc/passwd
    
  2. Перейдите в Консоль управления Вебмониторэкс → раздел События и убедитесь, что атака появилась в списке.

    Атаки в интерфейсе

Настройка

Динамический модуль Вебмониторэкс со стандартными настройками установлен на NGINX/Angie. Чтобы кастомизировать настройки Вебмониторэкс, используйте доступные директивы.

Частые настройки:

Параметры запуска

Как только вы загрузите универсальный скрипт, вы сможете получить помощь по нему:

sudo sh ./wallarm-4.6.25.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 позволяет установить модуль постаналитики отдельно. Если переключатель не используется, то фильтрационная и постаналитическая часть устанавливаются целиком.