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

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

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

Данная инструкция описывает переменные, которые используются для настройки синхронизации 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. По умолчанию: 443.
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. По умолчанию: 443.
api.ca_verify Флаг для включения/отключения проверки подлинности сертификатов серверов Вебмониторэкс API. Принимает значения:
  • true для включения проверки подлинности сертификатов
  • false для отключения проверки подлинности сертификатов
По умолчанию: yes.
api.local_host Локальный IP-адрес сетевого интерфейса, через который отправляются запросы к Вебмониторэкс API. Данная настройка обязательна, если сетевой интерфейс, который используется по умолчанию, не разрешает доступ к Вебмониторэкс API (например, закрыт доступ к сети Интернет).
api.local_port Порт сетевого интерфейса, через который отправляются запросы к Вебмониторэкс API. Данная настройка обязательна, если сетевой интерфейс, который используется по умолчанию, не разрешает доступ к Вебмониторэкс API (например, закрыт доступ к сети Интернет).
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: 443
      ca_verify: true
    
    syncnode:
      owner: root
      group: wallarm
      mode: 0640
    
  2. Перезапустите сервис NGINX, чтобы применить обновленные настройки:

    sudo systemctl restart nginx
    
    sudo service nginx restart
    
    sudo systemctl restart nginx
    
    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 имеют права на чтение файлов ноды.