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

Установка в Яндекс.Облаке

Инструкция описывает настройку виртуальной машины с нодой Вебмониторэкс в Яндекс.Облаке.

Поддерживаемое Вычислительный кластер Вебмониторэкс

Установка ноды в Яндекс.Облаке доступна только пользователям RU-Вычислительного кластера Вебмониторэкс.

Требования

Для работы с Яндекс.Облаком

  • Доступ к консоли управления Яндекс.Облаком

  • Платежный аккаунт на странице биллинга в статусе ACTIVE или TRIAL_ACTIVE

  • Созданный каталог. По умолчанию создается каталог default, для настройки нового каталога используйте инструкцию

  • Пара SSH‑ключей типа rsa с 2048 битами. Для создания пары ключей используйте инструкцию

Для работы с Вебмониторэкс

  • Доступ к аккаунту с ролью Администратор и отключенная двухфакторная аутентификация в Консоли управления Вебмониторэкс для RU‑Вычислительного кластера

  • Доступ виртуальной машины к Вебмониторэкс API по адресу api.wallarm.ru:444. Убедитесь, что доступ не ограничен файерволом

  • Выполнение команд от имени суперпользователя (например, root)

Установка

1. Создайте виртуальную машину с нодой Вебмониторэкс

Если вы используете несколько нод Вебмониторэкс

Все ноды Вебмониторэкс, установленные в вашей инфраструктуре, должны иметь одинаковые версии.

Перед установкой дополнительной ноды убедитесь, что ее версия совпадает с версией уже установленных модулей. Если версии модулей устарели или начинают устаревать (3.6 и ниже), рекомендуем обновить все модули до последней версии.

Чтобы получить текущую версию, подключитесь к существующему инстансу и выполните команду:

apt list wallarm-node
  1. Войдите в консоль управления и выберите каталог, в котором будет создана виртуальная машина.

  2. Выберите Compute Cloud в списке сервисов.

  3. Нажмите кнопку Создать ВМ.

  4. Выберите Вебмониторэкс из списка образов в блоке Образы из Cloud Marketplace.

  5. Настройте остальные параметры виртуальной машины, следуя инструкции.

Пример настроек ВМ

2. Подключитесь к виртуальной машине с нодой

  1. Убедитесь, что виртуальная машина находится в статусе RUNNING:

    ВМ в статусе RUNNING

  2. Подключитесь к виртуальной машине по протоколу SSH, используя инструкцию.

3. Подключите ноду к Вычислительному кластеру Вебмониторэкс

Подключите ноду к Вычислительному кластеру Вебмониторэкс по токену ноды или по логину и паролю администратора в Консоли управления Вебмониторэкс.

По токену ноды

  1. Перейдите в Консоль управления Вебмониторэкс → секция Ноды и создайте Облачную ноду.

  2. Откройте карточку созданной ноды и скопируйте Токен ноды.

  3. На виртуальной машине с нодой Вебмониторэкс запустите скрипт addcloudnode:

    sudo /usr/share/wallarm-common/addcloudnode -H api.wallarm.ru
    
  4. Вставьте скопированный токен ноды.

Нода будет синхронизироваться с Вычислительным кластером Вебмониторэкс каждые 2‑4 минуты в соответствии с конфигурацией синхронизации по умолчанию. Подробнее о настройке синхронизации ноды с Вычислительным кластером Вебмониторэкс →

По логину и паролю администратора

  1. На виртуальной машине с нодой Вебмониторэкс запустите скрипт addnode:

    sudo /usr/share/wallarm-common/addnode -H api.wallarm.ru
    
  2. Введите логин и пароль от аккаунта администратора в Консоли управления Вебмониторэкс.

  3. Введите имя новой ноды или нажмите 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:

  1. Откройте файл /etc/nginx/conf.d/wallarm.conf:

    sudo vim /etc/nginx/conf.d/wallarm.conf
    
  2. Закомментируйте строку wallarm_mode monitoring;.

  3. Откройте файл /etc/nginx/nginx.conf:

    sudo vim /etc/nginx/nginx.conf
    
  4. Добавьте в блок 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% от общей памяти виртуальной машины. Чтобы изменить значение:

  1. Откройте для редактирования конфигурационный файл Tarantool:

    sudo vim /etc/default/wallarm-tarantool
    
  2. Укажите размер выделенной памяти в директиве SLAB_ALLOC_ARENA в ГБ. Значение может быть целым или дробным (разделитель целой и дробной части — точка).

    В боевой среде мы рекомендуем выделять для модуля постаналитики 75% от общей памяти виртуальной машины. Для тестирования ноды вы можете выделить меньшее количество памяти (например, 25% от общего объема).

    Например:

    SLAB_ALLOC_ARENA=0.5
    
    SLAB_ALLOC_ARENA=24
    
  3. Чтобы применить изменения, перезапустите Tarantool:

    sudo systemctl restart wallarm-tarantool
    

Другие настройки

Чтобы обновить другие настройки NGINX и модулей Вебмониторэкс, используйте документацию NGINX и список доступных директив Вебмониторэкс.

5. Перезапустите NGINX

Чтобы применить изменения, перезапустите NGINX:

sudo systemctl restart nginx

6. Протестируйте работу Вебмониторэкс

  1. Отправьте тестовый запрос с атаками SQLI и XSS на внешний IP‑адрес:

    curl http://84.201.148.210/?id='or+1=1--a-<script>prompt(1)</script>'
    
  2. Перейдите в Консоль управления Вебмониторэкс → секция События и убедитесь, что атаки появились в списке.

    Атаки в интерфейсе

Дополнительные настройки

Нода Вебмониторэкс со стандартными настройками развернута в Яндекс.Облаке. Чтобы кастомизировать настройки ноды, вы можете использовать доступные директивы.

Частые настройки: