Установка в Яндекс.Облаке¶
Инструкция описывает настройку виртуальной машины с нодой Вебмониторэкс в Яндекс.Облаке.
Поддерживаемое Вычислительный кластер Вебмониторэкс
Установка ноды в Яндекс.Облаке доступна только пользователям RU-Вычислительного кластера Вебмониторэкс.
Требования¶
Для работы с Яндекс.Облаком¶
-
Доступ к консоли управления Яндекс.Облаком
-
Платежный аккаунт на странице биллинга в статусе
ACTIVE
илиTRIAL_ACTIVE
-
Созданный каталог. По умолчанию создается каталог
default
, для настройки нового каталога используйте инструкцию -
Пара SSH‑ключей типа rsa с 2048 битами. Для создания пары ключей используйте инструкцию
Для работы с Вебмониторэкс¶
-
Доступ к аккаунту с ролью Администратор и отключенная двухфакторная аутентификация в Консоли управления Вебмониторэкс для RU‑Вычислительного кластера
-
Доступ виртуальной машины к Вебмониторэкс API по адресу
api.wallarm.ru:444
. Убедитесь, что доступ не ограничен файерволом -
Выполнение команд от имени суперпользователя (например,
root
)
Установка¶
1. Создайте виртуальную машину с нодой Вебмониторэкс¶
Если вы используете несколько нод Вебмониторэкс
Все ноды Вебмониторэкс, установленные в вашей инфраструктуре, должны иметь одинаковые версии.
Перед установкой дополнительной ноды убедитесь, что ее версия совпадает с версией уже установленных модулей. Если версии модулей устарели или начинают устаревать (3.6
и ниже), рекомендуем обновить все модули до последней версии.
Чтобы получить текущую версию, подключитесь к существующему инстансу и выполните команду:
apt list wallarm-node
-
Войдите в консоль управления и выберите каталог, в котором будет создана виртуальная машина.
-
Выберите Compute Cloud в списке сервисов.
-
Нажмите кнопку Создать ВМ.
-
Выберите Вебмониторэкс из списка образов в блоке Образы из Cloud Marketplace.
-
Настройте остальные параметры виртуальной машины, следуя инструкции.
2. Подключитесь к виртуальной машине с нодой¶
-
Убедитесь, что виртуальная машина находится в статусе
RUNNING
:
-
Подключитесь к виртуальной машине по протоколу SSH, используя инструкцию.
3. Подключите ноду к Вычислительному кластеру Вебмониторэкс¶
Подключите ноду к Вычислительному кластеру Вебмониторэкс по токену ноды или по логину и паролю администратора в Консоли управления Вебмониторэкс.
По токену ноды¶
-
Перейдите в Консоль управления Вебмониторэкс → секция Ноды и создайте Облачную ноду.
-
Откройте карточку созданной ноды и скопируйте Токен ноды.
-
На виртуальной машине с нодой Вебмониторэкс запустите скрипт
addcloudnode
:sudo /usr/share/wallarm-common/addcloudnode -H api.wallarm.ru
-
Вставьте скопированный токен ноды.
Нода будет синхронизироваться с Вычислительным кластером Вебмониторэкс каждые 2‑4 минуты в соответствии с конфигурацией синхронизации по умолчанию. Подробнее о настройке синхронизации ноды с Вычислительным кластером Вебмониторэкс →
По логину и паролю администратора¶
-
На виртуальной машине с нодой Вебмониторэкс запустите скрипт
addnode
:sudo /usr/share/wallarm-common/addnode -H api.wallarm.ru
-
Введите логин и пароль от аккаунта администратора в Консоли управления Вебмониторэкс.
-
Введите имя новой ноды или нажмите Enter, чтобы использовать имя пользователя виртуальной машины.
Вы сможете изменить заданное имя позже в Консоли управления Вебмониторэкс → Ноды.
Нода будет синхронизироваться с Вычислительным кластером Вебмониторэкс каждые 2‑4 минуты в соответствии с конфигурацией синхронизации по умолчанию. Подробнее о настройке синхронизации ноды с Вычислительным кластером Вебмониторэкс →
4. Обновите конфигурацию модулей Вебмониторэкс¶
Основные конфигурационные файлы NGINX и ноды Вебмониторэкс расположены в директориях:
-
/etc/nginx/nginx.conf
с настройками NGINX -
/etc/nginx/conf.d/wallarm.conf
с глобальными настройками ноды ВебмониторэксФайл используется для настроек, которые применяются ко всем доменам. Чтобы применить разные настройки к отдельным группам доменов, используйте файл
nginx.conf
или создайте новые файлы конфигурации для каждой группы доменов (например,example.com.conf
иtest.com.conf
). Более подробная информация о конфигурационных файлах NGINX доступна в официальной документации NGINX. -
/etc/nginx/conf.d/wallarm-status.conf
с настройками мониторинга ноды. Описание конфигурации доступно по ссылке -
/etc/default/wallarm-tarantool
с настройками хранилища Tarantool
Режим фильтрации запросов¶
По умолчанию, нода находится в режиме monitoring
: анализирует все входящие запросы, но не блокирует их, если обнаружит признаки атаки. Мы рекомендуем использовать ноду в режиме monitoring
в течение нескольких дней после установки и затем переключить в режим block
, чтобы начать блокировать атаки. Изучить рекомендации по настройке режима фильтрации запросов →
Для изменения режима анализа запросов на block
:
-
Откройте файл
/etc/nginx/conf.d/wallarm.conf
:sudo vim /etc/nginx/conf.d/wallarm.conf
-
Закомментируйте строку
wallarm_mode monitoring;
. -
Откройте файл
/etc/nginx/nginx.conf
:sudo vim /etc/nginx/nginx.conf
-
Добавьте в блок
http
,server
илиlocation
строкуwallarm_mode block;
.
Пример файла /etc/nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
wallarm_mode block;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Оперативная память¶
Нода Вебмониторэкс использует находящееся в памяти хранилище Tarantool. По умолчанию развернутый образ ноды Вебмониторэкс выделяет под Tarantool 40% от общей памяти виртуальной машины. Чтобы изменить значение:
-
Откройте для редактирования конфигурационный файл Tarantool:
sudo vim /etc/default/wallarm-tarantool
-
Укажите размер выделенной памяти в директиве
SLAB_ALLOC_ARENA
в ГБ. Значение может быть целым или дробным (разделитель целой и дробной части — точка).В боевой среде мы рекомендуем выделять для модуля постаналитики 75% от общей памяти виртуальной машины. Для тестирования ноды вы можете выделить меньшее количество памяти (например, 25% от общего объема).
Например:
SLAB_ALLOC_ARENA=0.5
SLAB_ALLOC_ARENA=24
-
Чтобы применить изменения, перезапустите Tarantool:
sudo systemctl restart wallarm-tarantool
Другие настройки¶
Чтобы обновить другие настройки NGINX и модулей Вебмониторэкс, используйте документацию NGINX и список доступных директив Вебмониторэкс.
5. Перезапустите NGINX¶
Чтобы применить изменения, перезапустите NGINX:
sudo systemctl restart nginx
6. Протестируйте работу Вебмониторэкс¶
-
Отправьте тестовый запрос с атаками SQLI и XSS на внешний IP‑адрес:
curl http://84.201.148.210/?id='or+1=1--a-<script>prompt(1)</script>'
-
Перейдите в Консоль управления Вебмониторэкс → секция События и убедитесь, что атаки появились в списке.
Дополнительные настройки¶
Нода Вебмониторэкс со стандартными настройками развернута в Яндекс.Облаке. Чтобы кастомизировать настройки ноды, вы можете использовать доступные директивы.
Частые настройки:
-
Использование балансировщика или прокси‑сервера перед нодой Вебмониторэкс
-
Добавление адресов сканера Вебмониторэкс в белый список для режима фильтрации
block
-
Ограничение времени обработки единичного запроса в директиве
wallarm_process_time_limit
-
Ограничение времени ожидания ответа сервера в директиве NGINX
proxy_read_timeout
-
Ограничение максимального размера запроса в директиве NGINX
client_max_body_size