Конфигурация синхронизации ноды Вебмониторэкс с Вычислительным кластером Вебмониторэкс¶
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.webmonitorx.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_OWNERWALLARM_SYNCNODE_GROUPWALLARM_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.webmonitorx.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.ownersyncnode.groupsyncnode.mode | Смотрите Настройка прав доступа к файлам ноды. |
Чтобы изменить и применить настройки синхронизации локальной WAF‑ноды с Вычислительным кластером:
-
Откройте файл
node.yamlи добавьте в него параметры из таблицы выше с необходимыми значениями.Пример файла
node.yaml:hostname: example-node-name uuid: ea1xa0xe-xxxx-42a0-xxxx-b1b446xxxxxx secret: b827axxxxxxxxxxxcbe45c855c71389a2a5564920xxxxxxxxxxxxxxxxxxc4613260 api: host: api.webmonitorx.ru port: 444 ca_verify: true syncnode: owner: root group: wallarm mode: 0640 -
Перезапустите сервис NGINX, чтобы применить обновленные настройки:
sudo systemctl restart nginxsudo service nginx restartsudo systemctl restart nginxsudo 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:rootgroup:wallarmmode:0640
Обратите внимание, что задавать права явно нужно только в том случае, если автоматически они определились неверно. После редактирования прав напрямую через параметры/переменные окружения в конфигурационных файлах убедитесь, что сервисы wallarm-worker и nginx имеют права на чтение файлов ноды.