Обновление 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 Plus.
Если 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
-
Откройте для редактирования файл
/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/
Шаг 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‑ноды.
-
Обновите пакеты постаналитики по инструкции.
-
Обновите пакеты 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: Переименуйте параметры ноды¶
В новой версии ноды Вебмониторэкс изменились названия некоторых параметров. Если в текущей конфигурации ноды эти параметры заданы явно, рекомендуем их переименовать.
Изменились названия следующих параметров:
-
wallarm_instance
→wallarm_application
-
wallarm_local_trainingset_path
→wallarm_custom_ruleset_path
-
wallarm_global_trainingset_path
→wallarm_protondb_path
Параметры с устаревшими названиями временно поддерживаются, но в будущих релизах их поддержка прекратится полностью. Логика параметров не изменилась.
Шаг 6: Перенесите настройки обнаружения 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.Если заданы директивы и правило, поведение ноды будет соответствовать правилу.
Шаг 7: Перезапустите NGINX¶
sudo systemctl restart nginx
sudo service nginx restart
sudo systemctl restart nginx
Шаг 8: Протестируйте работу Вебмониторэкс¶
-
Отправьте тестовый запрос с атаками SQLI и XSS на адрес защищенного ресурса:
curl http://localhost/?id='or+1=1--a-<script>prompt(1)</script>'
-
Перейдите в Консоль управления Вебмониторэкс → секция События и убедитесь, что атаки появились в списке.
Настройка¶
Модули Вебмониторэкс WAF обновлены до версии 3.6. Настройки Вебмониторэкс WAF из предыдущей версии применятся к новой версии автоматически. Чтобы применить дополнительные настройки, используйте доступные директивы.
Частые настройки:
-
Использование балансировщика или прокси‑сервера перед нодой Вебмониторэкс
-
Ограничение времени обработки единичного запроса в директиве
wallarm_process_time_limit
-
Ограничение времени ожидания ответа сервера в директиве NGINX
proxy_read_timeout
-
Ограничение максимального размера запроса в директиве NGINX
client_max_body_size