Обновление NGINX-модулей Вебмониторэкс 2.18 и ниже¶
Инструкция описывает способ обновления NGINX‑модулей Вебмониторэкс версии 2.18 и ниже до версии 3.6. Используйте этот способ, если нода установлена по следующим инструкциям:
Нода версии 3.6 и ниже больше не поддерживается
Обратите внимание, что нода версии 3.6 и ниже больше не поддерживается, поэтому мы рекомендуем обновить модули.
В последней версии ноды значительно упрощена настройка ноды и повышено качество фильтрации трафика. Некоторые настройки ноды 3.6 несовместимы с новой версией ноды. Перед обновлением компонентов внимательно изучите набор изменений и рекомендации по обновлению.
Порядок обновления¶
-
Если модули WAF‑ноды и постаналитики установлены на одном сервере, выполните шаги ниже.
-
Если модули WAF‑ноды и постаналитики установлены на разных серверах, сначала обновите модуль постаналитики, затем выполните шаги ниже для модуля WAF‑ноды.
Шаг 1: Сообщите об обновлении в техническую поддержку Вебмониторэкс¶
Сообщите технической поддержке Вебмониторэкс об обновлении и оставьте запрос на включение новой логики списков IP-адресов для вашего аккаунта. Когда новая логика будет включена, убедитесь, что в Консоли управления Вебмониторэкс доступна секция Списки IP.
Шаг 2: Отключите модуль активной проверки атак (для ноды 2.16 и ниже)¶
Если вы обновляете ноду версии 2.16 и ниже, отключите активную проверку атак в Консоли управления Вебмониторэкс → Сканер → Настройки.
При обновлении нод 2.16 и ниже работа модуля может привести к ложным срабатываниям. Отключение модуля на время обновления нод позволит минимизировать этот риск.
Шаг 3: Обновите NGINX до последней стабильной версии¶
Обновите NGINX до последней стабильной версии, используя подходящую инструкцию:
DEB-дистрибутивы:
sudo apt update
sudo apt install nginx
RPM-дистрибутивы:
sudo yum update
sudo yum install nginx
Используйте официальную инструкцию NGINX Plus.
Если NGINX установлен из репозитория Debian/CentOS, пропустите этот шаг. Версия NGINX будет обновлена позже вместе с модулями Вебмониторэкс.
Если в вашей инфраструктуре необходимо использовать другую версию NGINX, пожалуйста, напишите в техническую поддержку Вебмониторэкс для сборки модуля WAF для кастомной версии NGINX.
Шаг 4: Подключите новый репозиторий Вебмониторэкс 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
-
Откройте для редактирования файл
/etc/apt/sources.list.d/wallarm.list
:sudo vim /etc/apt/sources.list.d/wallarm.list
-
Закомментируйте или удалите предыдущий адрес репозитория.
-
Добавьте новый адрес репозитория:
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/
Шаг 5: Перенесите настройки белых и черных списков с предыдущей версии WAF-ноды на новую¶
Перенесите настройки белых и черных списков с предыдущей версии WAF-ноды на новую.
Шаг 6: Обновите пакеты Вебмониторэкс 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
-
Если менеджер пакетов запросит подтверждение на перезапись конфигурационного файла
/etc/cron.d/wallarm-node-nginx
:- Убедитесь, что миграция списков IP‑адресов выполнена.
-
Введите
Y
для подтверждения перезаписи файла.Запрос появится, если вы изменяли конфигурационный файл
/etc/cron.d/wallarm-node-nginx
в предыдущих версиях. В версиях 3.x изменилась логика работы списков IP‑адресов, поэтому содержимое конфигурационного файла/etc/cron.d/wallarm-node-nginx
было обновлено. Для корректной работы черных списков IP‑адресов в новой версии необходимо использовать обновленный конфигурационный файл.По умолчанию менеджер пакетов использует опцию
N
, но для корректной работы черного списка IP‑адресов необходимо отправить опциюY
.
WAF‑нода и постаналитика на разных серверах¶
Порядок обновления модулей
Если 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
-
Если менеджер пакетов запросит подтверждение на перезапись конфигурационного файла
/etc/cron.d/wallarm-node-nginx
:- Убедитесь, что миграция списков IP‑адресов выполнена.
-
Введите
Y
для подтверждения перезаписи файла.Запрос появится, если вы изменяли конфигурационный файл
/etc/cron.d/wallarm-node-nginx
в предыдущих версиях. В версиях 3.x изменилась логика работы списков IP‑адресов, поэтому содержимое конфигурационного файла/etc/cron.d/wallarm-node-nginx
было обновлено. Для корректной работы черных списков IP‑адресов в новой версии необходимо использовать обновленный конфигурационный файл.По умолчанию менеджер пакетов использует опцию
N
, но для корректной работы черного списка IP‑адресов необходимо отправить опциюY
.
Шаг 7: Обновите страницу блокировки Вебмониторэкс¶
В новой версии ноды изменилась страница блокировки Вебмониторэкс, &/usr/share/nginx/html/wallarm_blocked.html
. После обновления пакетов, по этому пути будет доступна новая версия страницы.
Теперь на странице по умолчанию не заданы логотип и почта. Если вы используете страницу &/usr/share/nginx/html/wallarm_blocked.html
, скопируйте и отредактируйте ее по инструкции.
Шаг 8: Переименуйте параметры ноды¶
В новой версии ноды Вебмониторэкс изменились названия некоторых параметров. Если в текущей конфигурации ноды эти параметры заданы явно, рекомендуем их переименовать.
Изменились названия следующих параметров:
-
wallarm_instance
→wallarm_application
-
wallarm_local_trainingset_path
→wallarm_custom_ruleset_path
-
wallarm_global_trainingset_path
→wallarm_protondb_path
Параметры с устаревшими названиями временно поддерживаются, но в будущих релизах их поддержка прекратится полностью. Логика параметров не изменилась.
Шаг 9: Перенесите настройки обнаружения overlimit_res
из директив в правило¶
Начиная с релиза версии 3.6, можно настраивать обнаружение атак типа overlimit_res
с помощью специального правила в Консоли управления.
Ранее настройка выполнялась с помощью директив NGINX wallarm_process_time_limit
и wallarm_process_time_limit_block
. Теперь перечисленные директивы считаются устаревшими. Полная поддержка параметров прекратится в будущих релизах.
Если вы задавали собственные настройки для обнаружения overlimit_res
, рекомендуется перенести их в правило заранее:
-
Перейдите в Консоль управления Вебмониторэкс → Правила и откройте форму создания правила Настроить обработку атак типа overlimit_res.
-
Перенесите в правило настройки, заданные в директивах 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, перенаправит запрос в оригинальном виде на адрес приложения. Атаки, отправленные в обработанной и необработанной частях запроса, могут быть реализованы.
- В режиме блокировки — заблокирует запрос.
- Условие правила должно соответствовать блоку NGINX, в котором заданы директивы
-
Удалите директивы
wallarm_process_time_limit
иwallarm_process_time_limit_block
из конфигурационного файла NGINX.Если заданы директивы и правило, поведение ноды будет соответствовать правилу.
Шаг 10: Адаптируйте настройку режимов фильтрации трафика¶
-
Убедитесь, что ожидаемое поведение следующих настроек соответствует изменениям в логике работы режимов
off
иmonitoring
: -
Если ожидаемое поведение не соответствует изменениям в логике работы режимов
off
иmonitoring
, адаптируйте настройку режимов фильтрации.
Шаг 11: Обновите содержимое файла wallarm-status.conf
¶
Измените содержимое файла /etc/nginx/conf.d/wallarm-status.conf
до следующего вида:
server {
listen 127.0.0.8:80;
server_name localhost;
allow 127.0.0.0/8; # Доступ открыт только для loopback-адресов сервера с WAF‑нодой
deny all;
wallarm_mode off;
disable_acl "on"; # Проверка источников запросов отключена, IP-адреса из черного списка могут обратиться к сервису wallarm-status. https://docs.webmonitorx.ru/admin-ru/configure-parameters-ru/#disable_acl
access_log off;
location ~/wallarm-status$ {
wallarm_status on;
}
}
Подробнее о настройке сервиса статистики
Шаг 12: Перезапустите NGINX¶
sudo systemctl restart nginx
sudo service nginx restart
sudo systemctl restart nginx
Шаг 13: Протестируйте работу Вебмониторэкс¶
-
Отправьте тестовый запрос с атаками SQLI и XSS на адрес защищенного ресурса:
curl http://localhost/?id='or+1=1--a-<script>prompt(1)</script>'
-
Перейдите в Консоль управления Вебмониторэкс → секция События и убедитесь, что атаки появились в списке.
Шаг 14: Включите модуль активной проверки атак (при обновлении ноды 2.16 и ниже)¶
Ознакомьтесь с рекомендациями по настройке модуля активной проверки атак и заново включите модуль, если требуется.
После обновления ноды и повторного включения модуля, убедитесь, что работа модуля не приводит к ложным срабатываниям. При обнаружении ложных срабатываний, пожалуйста, обратитесь в техническую поддержку Вебмониторэкс.
Настройка¶
Модули Вебмониторэкс WAF обновлены до версии 3.6. Остальные настройки Вебмониторэкс WAF из предыдущей версии применятся к новой версии автоматически. Чтобы применить дополнительные настройки, используйте доступные директивы.
Частые настройки:
-
Использование балансировщика или прокси‑сервера перед нодой Вебмониторэкс
-
Ограничение времени обработки единичного запроса в директиве
wallarm_process_time_limit
-
Ограничение времени ожидания ответа сервера в директиве NGINX
proxy_read_timeout
-
Ограничение максимального размера запроса в директиве NGINX
client_max_body_size