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

Запуск Docker‑образа на основе Envoy

Обзор образа

Инструкция описывает шаги для запуска Docker‑образа Вебмониторэкс на основе Envoy 1.18.4. Образ содержит все системы, необходимые для корректной работы продукта:

  • Сервисы прокси-сервера Envoy с встроенным модулем Вебмониторэкс

  • Модули Tarantool для постаналитики

  • Другие сервисы и скрипты

Модуль Вебмониторэкс реализован в виде HTTP‑фильтра Envoy для проксирования запросов.

Поддерживаемые параметры конфигурации

Большинство директив для настройки ноды на основе NGINX не поддерживаются при настройке ноды на основе Envoy. Список параметров для настройки ноды на основе Envoy →

Если вы используете несколько нод Вебмониторэкс

Все ноды Вебмониторэкс, установленные в вашей инфраструктуре, должны иметь одинаковые версии.

Перед установкой дополнительной ноды убедитесь, что ее версия совпадает с версией уже установленных модулей. Если версии модулей устарели или начинают устаревать (3.6 и ниже), рекомендуем обновить все модули до последней версии.

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

yum list wallarm-node

Требования

  • Доступ к аккаунту с ролью Администратор в Консоли управления Вебмониторэкс

  • Доступ виртуальной машины к Вебмониторэкс API по адресу api.wallarm.ru. Убедитесь, что доступ не ограничен файерволом

Варианты запуска контейнера

Параметры ноды Вебмониторэкс могут быть переданы в Docker‑контейнер следующими способами:

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

  • В примонтированном конфигурационном файле. В контейнер могут быть переданы все доступные параметры ноды.

Запуск контейнера с переменными окружения

Для запуска образа:

  1. Перейдите в Консоль управления → Ноды и создайте ноду.

    Создание ноды Вебмониторэкс

  2. Скопируйте сгенерированный токен.

  3. Запустите контейнер с созданной нодой:

    docker run -d -e WALLARM_API_TOKEN='XXXXXXX' -e ENVOY_BACKEND='example.com' -e WALLARM_API_HOST='api.wallarm.ru' -p 80:80 wallarm/envoy:4.4.0-1
    

Вы можете передать в контейнер следующие базовые настройки Вебмониторэкс через опцию -e:

Переменная окружения Описание Обязательная?
WALLARM_API_TOKEN Токен ноды Вебмониторэкс.

Предыдущие переменные для настройки доступа к Вычислительному кластеру Вебмониторэкс

Для деплоя ноды версии 3.6 и ниже использовались переменные DEPLOY_USER и DEPLOY_PASSWORD. Начиная с версии 4.0, рекомендуется использовать WALLARM_API_TOKEN. Подробнее о миграции на новую версию

Да
ENVOY_BACKEND Домен или IP‑адрес ресурса, который необходимо защитить с помощью Вебмониторэкс. Да
WALLARM_API_HOST Адрес Вебмониторэкс API. Должен быть api.wallarm.ru.
По умолчанию: api.wallarm.com.
Нет
WALLARM_MODE Режим работы ноды Вебмониторэкс:
  • block, чтобы блокировать вредоносные запросы
  • safe_blocking, чтобы блокировать только те вредоносные запросы, которые отправлены с IP‑адресов из серого списка
  • monitoring, чтобы анализировать, но не блокировать запросы
  • off, чтобы не обрабатывать входящий трафик
По умолчанию: monitoring.
Подробное описание режимов работы
Нет
TARANTOOL_MEMORY_GB Размер оперативной памяти для Tarantool в гигабайтах. Значение может быть целым или дробным (разделитель целой и дробной части — точка). По умолчанию: 0.2 гигабайта. Нет

Команда выполнит следующие действия:

  • Создаст файл envoy.yaml с минимальными настройками Envoy в директории контейнера /etc/envoy.

  • Создаст файлы с параметрами для доступа к Вычислительному кластеру Вебмониторэкс в директории контейнера /etc/wallarm:

    • node.yaml с UUID ноды Вебмониторэкс и секретным ключом
    • private.key с закрытым ключом Вебмониторэкс
  • Защитит ресурс http://ENVOY_BACKEND:80

Запуск контейнера с примонтированным конфигурационным файлом

Вы можете примонтировать в контейнер готовый файл envoy.yaml через опцию -v. Файл должен содержать следующие настройки:

Для запуска образа:

  1. Перейдите в Консоль управления → Ноды и создайте ноду.

    Создание ноды Вебмониторэкс

  2. Скопируйте сгенерированный токен.

  3. Запустите контейнер с созданной нодой:

    docker run -d -e WALLARM_API_TOKEN='XXXXXXX' -e WALLARM_API_HOST='api.wallarm.ru' -v /configs/envoy.yaml:/etc/envoy/envoy.yaml -p 80:80 wallarm/envoy:4.4.0-1
    
    • Через опции -e необходимо передать обязательные переменные окружения:
    Переменная окружения Описание Обязательная?
    WALLARM_API_TOKEN Токен ноды Вебмониторэкс.

    Предыдущие переменные для настройки доступа к Вычислительному кластеру Вебмониторэкс

    Для деплоя ноды версии 3.6 и ниже использовались переменные DEPLOY_USER и DEPLOY_PASSWORD. Начиная с версии 4.0, рекомендуется использовать WALLARM_API_TOKEN. Подробнее о миграции на новую версию

    Да
    WALLARM_API_HOST Адрес Вебмониторэкс API. Должен быть api.wallarm.ru.
    По умолчанию: api.wallarm.com.
    Нет
    • Через опцию -v директория с файлом envoy.yaml монтируется в директорию контейнера /etc/envoy.

Команда выполнит следующие действия:

  • Примонтирует файл envoy.yaml в директорию контейнера /etc/envoy.

  • Создаст файлы с параметрами для доступа к Вычислительному кластеру Вебмониторэкс в директории контейнера /etc/wallarm:

    • node.yaml с UUID ноды Вебмониторэкс и секретным ключом
    • private.key с закрытым ключом Вебмониторэкс
  • Защитит ресурс, заданный в примонтированном конфигурационном файле.

Настройка ротации логов (опционально)

Ротация лог‑файлов настроена и включена по умолчанию. При необходимости вы можете изменить настройки ротации в директории /etc/logrotate.d контейнера с нодой Вебмониторэкс.

Тестирование работы Вебмониторэкс

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

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

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