Конфигурация синхронизации ноды Вебмониторэкс с Вычислительным кластером Вебмониторэкс¶
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. Принимает значения:
yes . |
WALLARM_API_CA_PATH | Путь до файла сертификата центра сертификации Вебмониторэкс API. |
WALLARM_SYNCNODE | Флаг для включения/отключения синхронизации WAF‑ноды с Вычислительным кластером. При включенной синхронизации данные, необходимые для работы WAF‑ноды (например, файл ЛОМ), периодически скачиваются из Вычислительного кластера. Если синхронизация отключена, данные для работы WAF‑ноды не будут скачиваться. Принимает значения:
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‑ноды с Вычислительным кластером:
-
Откройте файл
/etc/wallarm/syncnode
и добавьте в него переменные окружения с необходимыми значениями.Пример файла
/etc/wallarm/syncnode
:WALLARM_API_TOKEN=K85iHWi0SXRxJTb+xxxxxxxxxxxxxxxxxxxxfiwo9twr9I5/+sjZ9v2UlRRgwwMD WALLARM_SYNCNODE_INTERVAL=800 WALLARM_SYNCNODE_TIMEOUT=600
-
Перезапустите сервис синхронизации WAF‑ноды с Вычислительным кластером, чтобы применить обновленные настройки:
sudo /bin/systemctl restart wallarm-synccloud
Запущенный сервис сохранит обновленные значения переменных окружения в качестве новых значений параметров синхронизации. После исполнения файла
/etc/wallarm/syncnode
, WAF‑нода будет синхронизироваться с Вычислительным кластером Вебмониторэкс в соответствии с новой конфигурацией.
Синхронизация локальной WAF‑ноды с Вычислительным кластером Вебмониторэкс¶
Настройки для синхронизации локальной WAF‑ноды с Вычислительным кластером Вебмониторэкс задаются следующим образом:
-
Параметры для доступа к Вычислительному кластеру — в файле
node.yaml
. Файл создается после запуска скриптаaddnode
. По умолчанию в файл записываются название, UUID WAF‑ноды и значение секретного ключа для доступа к Вебмониторэкс API.По умолчанию файл расположен по пути
/etc/wallarm/node.yaml
, путь может быть изменен через директивуwallarm_api_conf
. -
Интервал синхронизации с Вычислительным кластером — через переменную окружения
WALLARM_SYNCNODE_INTERVAL
. Переменная задается в файле/etc/environment
. Значение переменной по умолчанию —120
секунд.
Параметры для доступа к Вычислительному кластеру¶
В файле 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. Принимает значения:
yes . |
api.local_host | Локальный IP-адрес сетевого интерфейса, через который отправляются запросы к Вебмониторэкс API. Данная настройка обязательна, если сетевой интерфейс, который используется по умолчанию, не разрешает доступ к Вебмониторэкс API (например, закрыт доступ к сети Интернет). |
api.local_port | Порт сетевого интерфейса, через который отправляются запросы к Вебмониторэкс API. Данная настройка обязательна, если сетевой интерфейс, который используется по умолчанию, не разрешает доступ к Вебмониторэкс API (например, закрыт доступ к сети Интернет). |
syncnode.owner syncnode.group syncnode.mode | Смотрите Настройка прав доступа к файлам ноды. |
Чтобы изменить и применить настройки синхронизации локальной WAF‑ноды с Вычислительным кластером:
-
Откройте файл
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
-
Перезапустите сервис 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‑ноды с Вычислительным кластером Вебмониторэкс:
-
Откройте файл с системными переменными окружения
/etc/environment
. -
Добавьте в файл
/etc/environment
переменную окруженияWALLARM_SYNCNODE_INTERVAL
со значением в секундах. Значение не может быть меньше значения по умолчанию (120
секунд). Например:WALLARM_SYNCNODE_INTERVAL=800
-
Сохраните изменения в файле
/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 |
Алгоритм определяет права доступа к файлам, выполняя следующие шаги (переходит к следующему шагу, только если предыдущий шаг не дал результат):
-
Права, явно заданные через параметры/переменные окружения в конфигурационных файлах:
- Переменные окружения
WALLARM_SYNCNODE_(OWNER,GROUP,MODE)
в файле/etc/wallarm/syncnode
.
-
Параметры
syncnode.(TYPE).(user,group,mode)
в файлеnode.yaml
.(TYPE)
позволяет назначить права для конкретного файла. Возможные значения:proton.db
илиlom
.Значение
lom
Обратите внимание, что значение
lom
указывает на файл индивидуального набора правил/etc/wallarm/custom_ruleset
. -
Параметры
syncnode.(user,group,mode)
в файлеnode.yaml
.
- Переменные окружения
-
Для вариантов установки с 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
. - Кастомные сборки модулей под клиентов задают группу, которую передал сам клиент.
- Модули для NGINX с nginx.org задают для
-
Значения по умолчанию:
owner
:root
group
:wallarm
mode
:0640
Обратите внимание, что задавать права явно нужно только в том случае, если автоматически они определились неверно. После редактирования прав напрямую через параметры/переменные окружения в конфигурационных файлах убедитесь, что сервисы wallarm-worker
и nginx
имеют права на чтение файлов ноды.