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

Обновление NGINX-модулей Вебмониторэкс

Инструкция описывает способ обновления NGINX‑модулей Вебмониторэкс версии 3.4 и 3.2 до версии 3.6. Используйте этот способ, если нода установлена по следующим инструкциям:

Для обновления модулей версии 2.18 и ниже используйте отдельную инструкцию.

Порядок обновления

  • Если модули WAF‑ноды и постаналитики установлены на одном сервере, выполните шаги ниже.

  • Если модули WAF‑ноды и постаналитики установлены на разных серверах, сначала обновите модуль постаналитики, затем выполните шаги ниже для модуля WAF‑ноды.

Шаг 1: Обновите NGINX до последней стабильной версии

Обновите NGINX до последней стабильной версии, используя подходящую инструкцию:

DEB-дистрибутивы:

sudo apt update
sudo apt install nginx

RPM-дистрибутивы:

sudo yum update
sudo yum install nginx

Если NGINX установлен из репозитория Debian/CentOS, пропустите этот шаг. Версия NGINX будет обновлена позже вместе с модулями Вебмониторэкс.

Если в вашей инфраструктуре необходимо использовать другую версию NGINX, пожалуйста, напишите в техническую поддержку Вебмониторэкс для сборки модуля WAF для кастомной версии NGINX.

Шаг 2: Подключите новый репозиторий Вебмониторэкс WAF

Отключите предыдущий репозиторий Вебмониторэкс WAF и подключите новый, используя команды для подходящей платформы.

CentOS

sudo yum remove wallarm-node-repo
sudo yum clean all
sudo rpm -i https://repo.webmonitorx.ru/centos/wallarm-node/6/3.6/x86_64/Packages/wallarm-node-repo-1-6.el6.noarch.rpm
sudo yum remove wallarm-node-repo
sudo yum clean all
sudo rpm -i https://repo.webmonitorx.ru/centos/wallarm-node/7/3.6/x86_64/Packages/wallarm-node-repo-1-6.el7.noarch.rpm

Поддержка CentOS 8.x прекращена

Поддержка CentOS 8.x прекращена. Вы можете установить ноду 3.6 на альтернативную операционную систему AlmaLinux, Rocky Linux или Oracle Linux 8.x:

Debian и Ubuntu

  1. Откройте для редактирования файл /etc/apt/sources.list.d/wallarm.list:

    sudo vim /etc/apt/sources.list.d/wallarm.list
    
  2. Закомментируйте или удалите предыдущий адрес репозитория.

  3. Добавьте новый адрес репозитория:

    deb http://repo.webmonitorx.ru/debian/wallarm-node stretch/3.6/
    
    deb http://repo.webmonitorx.ru/debian/wallarm-node stretch/3.6/
    deb http://repo.webmonitorx.ru/debian/wallarm-node stretch-backports/3.6/
    
    deb http://repo.webmonitorx.ru/debian/wallarm-node buster/3.6/
    
    deb http://repo.webmonitorx.ru/ubuntu/wallarm-node bionic/3.6/
    
    deb http://repo.webmonitorx.ru/ubuntu/wallarm-node focal/3.6/
    

Шаг 3: Обновите пакеты Вебмониторэкс WAF

WAF‑нода и постаналитика на одном сервере

Выполните команду для обновления модулей WAF‑ноды и постаналитики:

sudo apt update
sudo apt dist-upgrade

Ошибка вида "signatures couldn't be verified"

Если срок добавленных GPG-ключей истек, при обновлении пакетов возникнет ошибка вида:

W: GPG error: http://repo.webmonitorx.ru/ubuntu/wallarm-node focal/3.6/ Release:The following
signatures couldn't be verified because the public key is not available: NO_PUBKEY 1111FQQW999
E: The repository 'http://repo.webmonitorx.ru/ubuntu/wallarm-node focal/3.6/ Release' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Чтобы исправить ошибку, необходимо импортировать новые ключи для пакетов Вебмониторэкс и затем обновить пакеты. Используйте следующие команды:

curl -fsSL https://repo.webmonitorx.ru/wallarm.gpg | sudo apt-key add -
sudo apt update
sudo apt dist-upgrade
sudo apt update
sudo apt dist-upgrade

Ошибка вида "signatures couldn't be verified"

Если срок добавленных GPG-ключей истек, при обновлении пакетов возникнет ошибка вида:

W: GPG error: http://repo.webmonitorx.ru/ubuntu/wallarm-node focal/3.6/ Release:The following
signatures couldn't be verified because the public key is not available: NO_PUBKEY 1111FQQW999
E: The repository 'http://repo.webmonitorx.ru/ubuntu/wallarm-node focal/3.6/ Release' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Чтобы исправить ошибку, необходимо импортировать новые ключи для пакетов Вебмониторэкс и затем обновить пакеты. Используйте следующие команды:

curl -fsSL https://repo.webmonitorx.ru/wallarm.gpg | sudo apt-key add -
sudo apt update
sudo apt dist-upgrade
sudo yum update

WAF‑нода и постаналитика на разных серверах

Порядок обновления модулей

Если WAF‑нода и постаналитика установлены на разных серверах, необходимо обновить пакеты постаналитики перед обновлением пакетов WAF‑ноды.

  1. Обновите пакеты постаналитики по инструкции.

  2. Обновите пакеты WAF‑ноды:

    sudo apt update
    sudo apt dist-upgrade
    

    Ошибка вида "signatures couldn't be verified"

    Если срок добавленных GPG-ключей истек, при обновлении пакетов возникнет ошибка вида:

    W: GPG error: http://repo.webmonitorx.ru/ubuntu/wallarm-node focal/3.6/ Release:The following
    signatures couldn't be verified because the public key is not available: NO_PUBKEY 1111FQQW999
    E: The repository 'http://repo.webmonitorx.ru/ubuntu/wallarm-node focal/3.6/ Release' is not signed.
    N: Updating from such a repository can't be done securely, and is therefore disabled by default.
    N: See apt-secure(8) manpage for repository creation and user configuration details.
    

    Чтобы исправить ошибку, необходимо импортировать новые ключи для пакетов Вебмониторэкс и затем обновить пакеты. Используйте следующие команды:

    curl -fsSL https://repo.webmonitorx.ru/wallarm.gpg | sudo apt-key add -
    sudo apt update
    sudo apt dist-upgrade
    
    sudo apt update
    sudo apt dist-upgrade
    

    Ошибка вида "signatures couldn't be verified"

    Если срок добавленных GPG-ключей истек, при обновлении пакетов возникнет ошибка вида:

    W: GPG error: http://repo.webmonitorx.ru/ubuntu/wallarm-node focal/3.6/ Release:The following
    signatures couldn't be verified because the public key is not available: NO_PUBKEY 1111FQQW999
    E: The repository 'http://repo.webmonitorx.ru/ubuntu/wallarm-node focal/3.6/ Release' is not signed.
    N: Updating from such a repository can't be done securely, and is therefore disabled by default.
    N: See apt-secure(8) manpage for repository creation and user configuration details.
    

    Чтобы исправить ошибку, необходимо импортировать новые ключи для пакетов Вебмониторэкс и затем обновить пакеты. Используйте следующие команды:

    curl -fsSL https://repo.webmonitorx.ru/wallarm.gpg | sudo apt-key add -
    sudo apt update
    sudo apt dist-upgrade
    
    sudo yum update
    

Шаг 4: Обновите страницу блокировки Вебмониторэкс

В новой версии ноды изменился пример страницы блокировки Вебмониторэкс, &/usr/share/nginx/html/wallarm_blocked.html. После обновления пакетов, по этому пути будет доступна новая версия страницы.

Теперь на странице по умолчанию не заданы логотип и почта. Если вы используете страницу &/usr/share/nginx/html/wallarm_blocked.html, скопируйте и отредактируйте ее по инструкции.

Шаг 5: Переименуйте параметры ноды

В новой версии ноды Вебмониторэкс изменились названия некоторых параметров. Если в текущей конфигурации ноды эти параметры заданы явно, рекомендуем их переименовать.

Изменились названия следующих параметров:

Параметры с устаревшими названиями временно поддерживаются, но в будущих релизах их поддержка прекратится полностью. Логика параметров не изменилась.

Шаг 6: Перенесите настройки обнаружения overlimit_res из директив в правило

Начиная с релиза версии 3.6, можно настраивать обнаружение атак типа overlimit_res с помощью специального правила в Консоли управления.

Ранее настройка выполнялась с помощью директив NGINX wallarm_process_time_limit и wallarm_process_time_limit_block. Теперь перечисленные директивы считаются устаревшими. Полная поддержка параметров прекратится в будущих релизах.

Если вы задавали собственные настройки для обнаружения overlimit_res, рекомендуется перенести их в правило заранее:

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

  2. Перенесите в правило настройки, заданные в директивах NGINX:

    • Условие правила должно соответствовать блоку NGINX, в котором заданы директивы wallarm_process_time_limit и wallarm_process_time_limit_block.
    • Лимит времени на обработку нодой одного запроса (в миллисекундах): значение wallarm_process_time_limit.
    • Обработка запроса: рекомендуется Остановить обработку.

      Риск исчерпания памяти на сервере

      Установка высокого лимита и/или обработка запроса после превышения лимита могут привести к исчерпанию памяти на сервере и неконтролируемой по времени обработке запросов.

    • Считать запрос атакой типа overlimit_res: рекомендуется Считать атакой.

      Если wallarm_process_time_limit_block off, Не считать атакой.

    • Директива wallarm_process_time_limit_block не имеет аналога в форме создания правила в явном виде. Если в правиле задано действие Считать атакой, нода пропустит или заблокирует атаку типа overlimit_res в соответствии с общим режимом фильтрации:

      • В режиме мониторинга — перенаправит запрос в оригинальном виде на адрес приложения. Атаки, отправленные в обработанной и необработанной частях запроса, могут быть реализованы.
      • В режиме мягкой блокировки — заблокирует запрос, если он отправлен с IP-адреса из серого списка. Если с другого IP, перенаправит запрос в оригинальном виде на адрес приложения. Атаки, отправленные в обработанной и необработанной частях запроса, могут быть реализованы.
      • В режиме блокировки — заблокирует запрос.
  3. Удалите директивы wallarm_process_time_limit и wallarm_process_time_limit_block из конфигурационного файла NGINX.

    Если заданы директивы и правило, поведение ноды будет соответствовать правилу.

Шаг 7: Перезапустите NGINX

sudo systemctl restart nginx
sudo service nginx restart
sudo systemctl restart nginx

Шаг 8: Протестируйте работу Вебмониторэкс

  1. Отправьте тестовый запрос с атаками SQLI и XSS на адрес защищенного ресурса:

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

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

Настройка

Модули Вебмониторэкс WAF обновлены до версии 3.6. Настройки Вебмониторэкс WAF из предыдущей версии применятся к новой версии автоматически. Чтобы применить дополнительные настройки, используйте доступные директивы.

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