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

Конфигурация синхронизации ноды Вебмониторэкс с Вычислительным кластером Вебмониторэкс

WAF‑нода регулярно синхронизируется с Вычислительным кластером Вебмониторэкс, чтобы:

  • Получить обновления правил обработки трафика (ЛОМ)

  • Получить обновления proton.db

  • Отправить данные об обнаруженных атаках и уязвимостях

  • Отправить метрики по обработанному трафику

Данная инструкция описывает переменные, которые используются для настройки синхронизации WAF‑ноды с Вычислительным кластером Вебмониторэкс, и способ изменения значений этих переменных.

Набор переменных и способ их настройки зависит от типа установленной WAF‑ноды:

  • Облачная WAF‑нода (создается с помощью скрипта addcloudnode)

  • Локальная WAF‑нода (создается с помощью скрипта addnode)

Синхронизация облачной WAF‑ноды с Вычислительным кластером Вебмониторэкс

Настройки для синхронизации облачной WAF‑ноды с Вычислительным кластером Вебмониторэкс задаются в файле /etc/wallarm/syncnode через переменные окружения. Файл создается после запуска скрипта addcloudnode. По умолчанию в файл записывается значение токена облачной WAF‑ноды (переменная WALLARM_API_TOKEN).

Сервис wallarm-synccloud применяет новые значения переменных, заданные в файле /etc/wallarm/syncnode, к процессу синхронизации и запускает синхронизацию с новой конфигурацией.

Доступные переменные окружения

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

/usr/share/wallarm-common/synccloud  --help
Переменная Описание
WALLARM_API_HOST Эндпоинт Вебмониторэкс API. Должен иметь значение api.wallarm.ru.
По умолчанию: api.wallarm.com.
Переменная должна быть обязательно записана в файле /etc/wallarm/syncnode.
WALLARM_API_PORT Порт для доступа к Вебмониторэкс API. По умолчанию: 444.
WALLARM_API_TOKEN Токен облачной WAF‑ноды для доступа к Вебмониторэкс API.
WALLARM_API_CA_VERIFY Флаг для включения/отключения проверки подлинности сертификатов серверов Вебмониторэкс API. Принимает значения:
  • true, yes и 1 для включения проверки подлинности сертификатов
  • Любое другое значение для отключения проверки подлинности сертификатов
По умолчанию: yes.
WALLARM_API_CA_PATH Путь до файла сертификата центра сертификации Вебмониторэкс API.
WALLARM_SYNCNODE Флаг для включения/отключения синхронизации WAF‑ноды с Вычислительным кластером. При включенной синхронизации данные, необходимые для работы WAF‑ноды (например, файл ЛОМ), периодически скачиваются из Вычислительного кластера. Если синхронизация отключена, данные для работы WAF‑ноды не будут скачиваться. Принимает значения:
  • true, yes и 1 для включения синхронизации
  • Любое другое значение для отключения синхронизации
По умолчанию: yes.
WALLARM_SYNCNODE_INTERVAL Интервал синхронизации WAF‑ноды с Вычислительным кластером в секундах. Значение не может быть меньше значения по умолчанию. По умолчанию: 120.
WALLARM_SYNCNODE_RAND_DELAY Допустимая задержка синхронизации WAF‑ноды с Вычислительным кластером в секундах. По умолчанию: 120.
WALLARM_SYNCNODE_TIMEOUT Максимальная допустимая продолжительность синхронизации WAF‑ноды с Вычислительным кластером в секундах. Это ограничение позволяет прекратить синхронизацию при возникновении зависания во время скачивания файлов ноды. Например, такое зависание может произойти из‑за перебоев в работе сети. По умолчанию: 900.
WALLARM_SYNCNODE_OWNER
WALLARM_SYNCNODE_GROUP
WALLARM_SYNCNODE_MODE
Смотрите Настройка прав доступа к файлам ноды.

Изменение параметров синхронизации

Чтобы изменить параметры синхронизации облачной WAF‑ноды с Вычислительным кластером:

  1. Откройте файл /etc/wallarm/syncnode и добавьте в него переменные окружения с необходимыми значениями.

    Пример файла /etc/wallarm/syncnode:

    WALLARM_API_TOKEN=K85iHWi0SXRxJTb+xxxxxxxxxxxxxxxxxxxxfiwo9twr9I5/+sjZ9v2UlRRgwwMD
    WALLARM_SYNCNODE_INTERVAL=800
    WALLARM_SYNCNODE_TIMEOUT=600
    
  2. Перезапустите сервис синхронизации WAF‑ноды с Вычислительным кластером, чтобы применить обновленные настройки:

    sudo /bin/systemctl restart wallarm-synccloud
    

    Запущенный сервис сохранит обновленные значения переменных окружения в качестве новых значений параметров синхронизации. После исполнения файла /etc/wallarm/syncnode, WAF‑нода будет синхронизироваться с Вычислительным кластером Вебмониторэкс в соответствии с новой конфигурацией.

Синхронизация локальной WAF‑ноды с Вычислительным кластером Вебмониторэкс

Настройки для синхронизации локальной WAF‑ноды с Вычислительным кластером Вебмониторэкс задаются следующим образом:

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

В файле node.yaml задаются следующие параметры для доступа локальной WAF‑ноды к Вычислительному кластеру:

Параметр Описание
hostname Название локальной WAF‑ноды. Параметр должен быть обязательно записан в файле node.yaml.
uuid UUID локальной WAF‑ноды. Параметр должен быть обязательно записан в файле node.yaml.
secret Секретный ключ для доступа к Вебмониторэкс API. Параметр должен быть обязательно записан в файле node.yaml.
api.host Эндпоинт Вебмониторэкс API. Должен иметь значение api.wallarm.ru.
По умолчанию: api.wallarm.com.
api.port Порт для доступа к Вебмониторэкс API. По умолчанию: 444.
api.ca_verify Флаг для включения/отключения проверки подлинности сертификатов серверов Вебмониторэкс API. Принимает значения:
  • true для включения проверки подлинности сертификатов
  • false для отключения проверки подлинности сертификатов
По умолчанию: yes.
syncnode.owner
syncnode.group
syncnode.mode
Смотрите Настройка прав доступа к файлам ноды.

Чтобы изменить и применить настройки синхронизации локальной WAF‑ноды с Вычислительным кластером:

  1. Откройте файл node.yaml и добавьте в него параметры из таблицы выше с необходимыми значениями.

    Пример файла node.yaml:

    hostname: example-node-name
    uuid: ea1xa0xe-xxxx-42a0-xxxx-b1b446xxxxxx
    secret: b827axxxxxxxxxxxcbe45c855c71389a2a5564920xxxxxxxxxxxxxxxxxxc4613260
    
    api:
      host: api.wallarm.ru
      port: 444
      ca_verify: true
    
    syncnode:
      owner: root
      group: wallarm
      mode: 0640
    
  2. Перезапустите сервис NGINX, чтобы применить обновленные настройки:

    sudo systemctl restart nginx
    
    sudo service nginx restart
    
    sudo systemctl restart nginx
    

Интервал синхронизации с Вычислительным кластером

По умолчанию локальная WAF‑ноды синхронизируется с Вычислительным кластером Вебмониторэкс один раз в 120‑240 секунд (2‑4 минуты). Вы можете изменить интервал синхронизации через системную переменную окружения WALLARM_SYNCNODE_INTERVAL.

Чтобы изменить интервал синхронизации локальной WAF‑ноды с Вычислительным кластером Вебмониторэкс:

  1. Откройте файл с системными переменными окружения /etc/environment.

  2. Добавьте в файл /etc/environment переменную окружения WALLARM_SYNCNODE_INTERVAL со значением в секундах. Значение не может быть меньше значения по умолчанию (120 секунд). Например:

    WALLARM_SYNCNODE_INTERVAL=800
    
  3. Сохраните изменения в файле /etc/environment. Новое значение интервала применится автоматически.

Настройка прав доступа к файлам ноды

Сервисы wallarm-worker и nginx обычно автоматически получают права на чтение файлов ноды, таких как proton.db и файл индивидуального набора правил. Если права отсутствуют, отредактируйте настройки доступов вручную в соответствии с логикой, описанной ниже.

Параметры доступа к файлам:

Параметр Описание Переменная окружения в файле /etc/wallarm/syncnode
(облачная нода)
Параметр в файле node.yaml
(локальная нода)
owner Владелец для файлов ноды. WALLARM_SYNCNODE_OWNER syncnode.owner
group Группа для файлов ноды. WALLARM_SYNCNODE_GROUP syncnode.group
mode Права доступа для файлов ноды. WALLARM_SYNCNODE_MODE syncnode.mode

Алгоритм определяет права доступа к файлам, выполняя следующие шаги (переходит к следующему шагу, только если предыдущий шаг не дал результат):

  1. Права, явно заданные через параметры/переменные окружения в конфигурационных файлах:

    1. Переменные окружения WALLARM_SYNCNODE_(OWNER,GROUP,MODE) в файле /etc/wallarm/syncnode.
    1. Параметры syncnode.(TYPE).(user,group,mode) в файле node.yaml.

      (TYPE) позволяет назначить права для конкретного файла. Возможные значения: proton.db или lom.

      Значение lom

      Обратите внимание, что значение lom указывает на файл индивидуального набора правил /etc/wallarm/custom_ruleset.

    2. Параметры syncnode.(user,group,mode) в файле node.yaml.

  2. Для вариантов установки с NGINX – значение nginx_group в файлах /usr/share/wallarm-common/engine/*.

    Каждый пакет /usr/share/wallarm-common/engine/ создает в этой папке файл, содержащий nginx_group=<VALUE>.

    Пакет каждого модуля устанавливает значение для group в зависимости от варианта NGINX, для которого он предназначается:

    • Модули для NGINX с nginx.org задают для group значение nginx.
    • Модули для дистрибутивных NGINX задают для group значение www-data.
    • Кастомные сборки модулей под клиентов задают группу, которую передал сам клиент.
  3. Значения по умолчанию:

    • owner: root
    • group: wallarm
    • mode: 0640

Обратите внимание, что задавать права явно нужно только в том случае, если автоматически они определились неверно. После редактирования прав напрямую через параметры/переменные окружения в конфигурационных файлах убедитесь, что сервисы wallarm-worker и nginx имеют права на чтение файлов ноды.