Руководство по обновлению | Немезида ВАФ

Руководство по обновлению модулей Немезида ВАФ и вспомогательных компонентов.

Обновление компонентов Немезида ВАФ
Для поддержания работы компонентов Немезида ВАФ в актуальном состоянии рекомендуется своевременно устанавливать обновления. Помимо системного окружения, для работы компонентов требуются вспомогательные pip-зависимости.

Обновление компонентов Немезида ВАФ производится из репозитория установленным в системе пакетным менеджером (apt, yum или другой). Перед обновлением компонентов рекомендуем ознакомиться со списком изменений в соответствующем разделе.

Резервное копирование

Перед обновлением компонентов рекомендуется произвести резервное копирование файлов для следующих компонентов:

  • Для фильтрующей ноды:
    /etc/nginx/nwaf/ca.crt
    /etc/nginx/nwaf/conf/global/nwaf.conf
    /etc/nginx/nwaf/conf/global/search-bots.conf
    /etc/nginx/nwaf/conf/global/db/
    /etc/nginx/nwaf/conf/nginx/
    /etc/nginx/nwaf/conf/openapi/*.json
    /etc/nginx/nwaf/ml/*.json
    
  • Для Nemesida AI MLC
    /opt/mlc/mlc.conf
    /opt/mlc/conf/*.conf
    /opt/mlc/ca.crt
    /opt/mlc/ml/*.json
    /opt/mlc/ml/*.db
    
  • Для Nemesida WAF API
    /var/www/nw-api/settings.py
    
  • Для Личного кабинета
    /var/www/app/cabinet/settings.py
    
  • Для Nemesida WAF Scanner
    /opt/nws/main.conf
    /opt/nws/conf/*.conf
    /opt/nws/sys/ca.crt
    

Обновление ОС и окружения

Debian, UbuntuRHELFreeBSD 12/13
# apt update && apt upgrade -y
# dnf update && dnf upgrade -y
# freebsd-update fetch
# freebsd-update install
# pkg upgrade

Механизм автоматического обновления компонентов Немезида ВАФ отсутствует, поэтому для обновления пакетов необходимо вручную загружать их из репозитория.

Обновление Nginx

Динамический модуль подключается к определенной версии Nginx, поэтому при обновлении веб-сервера до актуальной версии (например, при обновлении версии Nginx c 1.22.1 до 1.26.0) требуется переустановка пакета nwaf-dyn. Для обновления необходимо:

Debian, UbuntuRHELFreeBSD 12/13
  • Удалить пакет nwaf-dyn:

    # apt remove nwaf-dyn-1.22
  • Обновить версию Nginx:

    # apt update
    # apt install nginx
    
  • Установить пакет nwaf-dyn в соответствии с установленной версией Nginx:

    # apt install nwaf-dyn-1.26

где 1.22 — версия пакета, предназначенного для ранее установленного Nginx 1.22, а 1.26 — версия, предназначенная для установленной версии Nginx 1.26.0

  • Удалить пакет nwaf-dyn:

    # dnf remove nwaf-dyn-1.22
  • Обновить версию Nginx:

    # dnf update
    # dnf install nginx
    
  • Установить пакет nwaf-dyn в соответствии с установленной версией Nginx:

    # dnf install nwaf-dyn-1.26

где 1.22 — версия пакета, предназначенного для ранее установленного Nginx 1.22, а 1.26 — версия, предназначенная для установленной версии Nginx 1.26.0

  • Удалить пакет nwaf-dyn:

    # pkg delete nwaf-dyn-1.22
    
  • Обновить версию Nginx:

    # freebsd-update fetch
    # pkg install nginx
    
  • Установить пакет nwaf-dyn в соответствии с установленной версией Nginx:

    # pkg install -y nwaf-dyn-1.26-5.1-1568.pkg
    
  • где 1.26 — версия установленного Nginx, а 5.1-1568 — версия пакета nwaf-dyn.

Механизм автоматического обновления компонентов Немезида ВАФ отсутствует, поэтому для обновления пакетов необходимо вручную загружать их из репозитория.

где 1.22 — версия пакета, предназначенного для ранее установленного Nginx 1.22, а 1.26 — версия, предназначенная для установленной версии Nginx 1.26.0

Обновление pip-зависимостей

  • Для фильтрующей ноды:

    # /usr/share/nwaf/venv/pip_update.sh
    
  • Для Nemesida AI MLC:

    # /usr/share/nwaf/venv/pip_update.sh
    
  • Для Nemesida WAF API:

    # /var/www/nw-api/pip_update.sh
    
  • Для Личного кабинета:

    # /var/www/app/pip_update.sh
    
  • Для Nemesida WAF Scanner:

    # /opt/nws/pip_update.sh
    

После обновления рекомендуется выполнить перезагрузку сервера и проверить статус работы компонентов:

  • Для фильтрующей ноды:

    # systemctl status nginx nwaf_update mla_main rabbitmq-server memcached api_firewall
    
  • Для Nemesida AI MLC:

    # systemctl status mlc_main rabbitmq-server memcached
    
  • Для Nemesida WAF API:

    # systemctl status nw-api nginx memcached
    
  • Для Личного кабинета:

    # systemctl status cabinet cabinet_ipinfo cabinet_attack_notification cabinet_cleaning_db cabinet_rule_update nginx memcached
    
  • Для Nemesida WAF Scanner:

    # systemctl status nws
    

Исправление ошибок в работе компонентов

В случае возникновения ошибок в работе компонентов рекомендуется произвести возврат к версиям Python3 pip-зависимостей, поставляемых с дистрибутивом, следующим образом:

  • Для Nemesida WAF API:

    /var/www/nw-api/venv/bin/python3 -m pip install --no-cache-dir -r /var/www/nw-api/requirements.txt
    
  • Для Личного кабинета:

    # /var/www/app/venv/bin/python3 -m pip install --no-cache-dir -r /var/www/app/requirements.txt
    
  • Для Nemesida WAF Scanner:

    # /opt/nws/venv/bin/python3 -m pip install --no-cache-dir -r /opt/nws/requirements.txt
    
  • Обновление компонентов Немезида ВАФ на устаревших версиях ОС

    Для некоторых компонентов Немезида ВАФ была завершена поддержка устаревших ОС (Debian 10, Ubuntu 16.04 и т.д.), поэтому актуальные версии пакетов для этих ОС больше недоступны. Мы всегда рекомендуем устанавливать актуальную версию пакетов Немезида ВАФ, для установки которых требуются совместимые ОС. Если Немезида ВАФ установлен на неподдерживаемых версиях ОС, то для обновления выполните следющие шаги:

    Debian, UbuntuRHEL
    1. Выполните резервное копирование файлов для следующих компонентов:

    • Для фильтрующей ноды:
      /etc/nginx/nwaf/ca.crt
      /etc/nginx/nwaf/conf/global/nwaf.conf
      /etc/nginx/nwaf/conf/global/search-bots.conf
      /etc/nginx/nwaf/conf/global/db/
      /etc/nginx/nwaf/conf/nginx/
      /etc/nginx/nwaf/conf/openapi/*.json
      /etc/nginx/nwaf/ml/*.json
      
    • Для Nemesida AI MLC
      /opt/mlc/mlc.conf
      /opt/mlc/conf/*.conf
      /opt/mlc/ca.crt
      /opt/mlc/ml/*.json
      /opt/mlc/ml/*.db
      
    • Для Nemesida WAF API
      /var/www/nw-api/settings.py
      
    • Для Личного кабинета
      /var/www/app/cabinet/settings.py
      
    • Для Nemesida WAF Scanner
      /opt/nws/main.conf
      /opt/nws/conf/*.conf
      /opt/nws/sys/ca.crt
      

    2. Удалите установленный пакет Немезида ВАФ и директорию виртуального окружения (если используется):

    • Для фильтрующей ноды:
      # apt remove nwaf-dyn-1.2x
      # rm -rf /usr/share/nwaf/venv/
      

      где 1.2x — версия установленного пакета.

    • Для Nemesida AI MLC
      # apt remove nwaf-mlc
      # rm -rf /usr/share/nwaf/venv/
      
    • Для Nemesida WAF API
      # apt remove nwaf-api
      # rm -rf /var/www/nw-api/venv
      
    • Для Личного кабинета
      # apt remove nwaf-cabinet
      # rm -rf /var/www/app/venv
      
    • Для Nemesida WAF Scanner
      # apt remove nwaf-scanner
      # rm -rf /opt/nws/venv/
      

    3. Очистите содержимое файла /etc/apt/sources.list.d/NemesidaWAF.list c информацией о репозиториях Немезида ВАФ;

    4. Выполните полное обновление системы в соответствие с инструкцией по обновлению ОС и окружения;

    5. Добавьте информацию о репозитории Немезида ВАФ в соотстветствие с версией ОС;

    6. Установите необходимый пакет Немезида ВАФ в соответствие с руководством.

    1. Выполните резервное копирование файлов для следующих компонентов:

    • Для фильтрующей ноды:
      /etc/nginx/nwaf/ca.crt
      /etc/nginx/nwaf/conf/global/nwaf.conf
      /etc/nginx/nwaf/conf/global/search-bots.conf
      /etc/nginx/nwaf/conf/global/db/
      /etc/nginx/nwaf/conf/nginx/
      /etc/nginx/nwaf/conf/openapi/*.json
      /etc/nginx/nwaf/ml/*.json
      
    • Для Nemesida AI MLC
      /opt/mlc/mlc.conf
      /opt/mlc/conf/*.conf
      /opt/mlc/ca.crt
      /opt/mlc/ml/*.json
      /opt/mlc/ml/*.db
      
    • Для Nemesida WAF API
      /var/www/nw-api/settings.py
      
    • Для Личного кабинета
      /var/www/app/cabinet/settings.py
      
    • Для Nemesida WAF Scanner
      /opt/nws/main.conf
      /opt/nws/conf/*.conf
      /opt/nws/sys/ca.crt
      

    2. Удалите установленный пакет Немезида ВАФ и директорию виртуального окружения (если используется):

    • Для фильтрующей ноды:
      # dnf remove nwaf-dyn-1.2x
      # rm -rf /usr/share/nwaf/venv/
      

      где 1.2x — версия установленного пакета.

    • Для Nemesida AI MLC
      # dnf remove nwaf-mlc
      # rm -rf /usr/share/nwaf/venv/
      
    • Для Nemesida WAF API
      # dnf remove nwaf-api
      # rm -rf /var/www/nw-api/venv
      
    • Для Личного кабинета
      # dnf remove nwaf-cabinet
      # rm -rf /var/www/app/venv
      
    • Для Nemesida WAF Scanner
      # dnf remove nwaf-scanner
      # rm -rf /opt/nws/venv/
      

    3. Очистите содержимое файла /etc/yum.repos.d/NemesidaWAF.list c информацией о репозиториях Немезида ВАФ;

    4. Выполните полное обновление системы в соответствие с инструкцией по обновлению ОС и окружения;

    5. Добавьте информацию о репозитории Немезида ВАФ в соответствие с версией ОС;

    6. Установите необходимый пакет Немезида ВАФ в соответствие с руководством.