Руководство по использованию Nemesida WAF в виде Docker-контейнеров.

Если ранее использовался образ, загруженный не из Docker-репозитория, рекомендуется его удалить.

Развертывание Docker-контейнера Nemesida WAF

Для развертывания контейнера Nemesida WAF необходимо выполнить следующие действия:

Nemesida WAFNemesida WAF Free

При развертывании Docker-контейнера предоставляется выбор версии динамического модуля Nemesida WAF. На текущий момент доступны образы с версией Nginx 1.18 и 1.20. В качестве примера развертывание Docker-контейнера будет производиться для версии 1.20.

1. Загрузите образ, содержащий динамический модуль Nemesida WAF и Nemesida AI:

# docker pull nemesida/nwaf-dyn-1.20

2. Создайте каталог для конфигурационных файлов Nemesida WAF:

# mkdir /opt/nwaf/waf-config

3. В каталоге конфигурационных файлов создайте файл first-launch:

# touch /opt/nwaf/waf-config/first-launch

4. Запустите контейнер с образом Nemesida WAF, используя команду:

# iptables -t filter -N DOCKER
# docker run --rm -d -v /opt/nwaf/waf-config:/nginx.configs -p 80:80 nemesida/nwaf-dyn-1.20

Контейнер самостоятельно завершит работу, создав в каталоге конфигурационных файлов базовый набор файлов конфигурации.

5. Отредактируйте конфигурационные файлы согласно инструкции на странице Nemesida WAF и Nemesida AI.

6. Запустите контейнер с образом Nemesida WAF, используя команду:

# iptables -t filter -N DOCKER
# docker run --rm -d -v /opt/nwaf/waf-config:/nginx.configs -p 80:80 nemesida/nwaf-dyn-1.20

где:

  • --rm — удаление контейнера после завершения работы;
  • -d — запуск контейнера в фоновом режиме;
  • -v /opt/nwaf/waf-config:/nginx.configs — монтирование каталога с конфигурационными файлами внутрь контейнера.

При развертывании Docker-контейнера предоставляется выбор версии динамического модуля Nemesida WAF. На текущий момент доступны образы с версией Nginx 1.18 и 1.20. В качестве примера развертывание Docker-контейнера будет производиться для версии 1.20.

1. Загрузите образ, содержащий динамический модуль Nemesida WAF:

# docker pull nemesida/nwaf-dyn-free-1.20

2. Создайте каталог для конфигурационных файлов Nemesida WAF:

# mkdir /opt/nwaf/waf-config

3. В каталоге конфигурационных файлов создайте файл first-launch:

# touch /opt/nwaf/waf-config/first-launch

4. Запустите контейнер с образом Nemesida WAF, используя команду:

# iptables -t filter -N DOCKER
# docker run --rm -d -v /opt/nwaf/waf-config:/nginx.configs -p 80:80 nemesida/nwaf-dyn-free-1.20

Контейнер самостоятельно завершит работу, создав в каталоге конфигурационных файлов базовый набор файлов конфигурации.

5. Отредактируйте конфигурационные файлы согласно инструкции на странице Nemesida WAF.

6. Запустите контейнер с образом Nemesida WAF, используя команду:

# iptables -t filter -N DOCKER
# docker run --rm -d -v /opt/nwaf/waf-config:/nginx.configs -p 80:80 nemesida/nwaf-dyn-free-1.20

где:

  • --rm — удаление контейнера после завершения работы;
  • -d — запуск контейнера в фоновом режиме;
  • -v /opt/nwaf/waf-config:/nginx.configs — монтирование каталога с конфигурационными файлами внутрь контейнера.

Обновление образа Nemesida WAF
Nemesida WAFNemesida WAF Free

1. Перед обновлением образа Nemesida WAF проверьте, запущен ли контейнер. Для этого необходимо посмотреть ID контейнера (cтолбец CONTAINER ID), используя команду:

# docker ps -a

2. Если контейнер запущен, остановите его, используя команду:

# docker stop /ID контейнера/

3. При остановленном контейнере удалите образ:

# docker image rm nemesida/nwaf-dyn-1.20

4. Загрузите образ, содержащий динамический модуль Nemesida WAF и Nemesida AI:

# docker pull nemesida/nwaf-dyn-1.20

5. Запустите контейнер с образом Nemesida WAF, используя команду:

# iptables -t filter -N DOCKER
# docker run --rm -d -v /opt/nwaf/waf-config:/nginx.configs -p 80:80 nemesida/nwaf-dyn-1.20

После обновления предыдущие версии конфигурационных файлов будут размещены в подкаталоге old.

1. Перед обновлением образа Nemesida WAF проверьте, запущен ли контейнер. Для этого необходимо посмотреть ID контейнера (cтолбец CONTAINER ID), используя команду:

# docker ps -a

2. Если контейнер запущен, остановите его, используя команду:

# docker stop /ID контейнера/

3. При остановленном контейнере удалите образ:

# docker image rm nemesida/nwaf-dyn-free-1.20

4. Загрузите образ, содержащий динамический модуль Nemesida WAF:

# docker pull nemesida/nwaf-dyn-free-1.20

5. Запустите контейнер с образом Nemesida WAF, используя команду:

# iptables -t filter -N DOCKER
# docker run --rm -d -v /opt/nwaf/waf-config:/nginx.configs -p 80:80 nemesida/nwaf-dyn-free-1.20

После обновления предыдущие версии конфигурационных файлов будут размещены в подкаталоге old.

Развертывание Docker-контейнера Nemesida WAF API и Личный кабинет Nemesida WAF
Для развертывания контейнера Nemesida WAF API и Личный кабинет Nemesida WAF необходимо выполнить следующие действия:

1. Загрузите образ, содержащий модули Nemesida WAF API и Личный кабинет Nemesida WAF:

# docker pull nemesida/nwaf-api-cabinet

2. Создайте два каталога:

  • Для конфигурационных файлов (например, api-cab-config):
    # mkdir /opt/nwaf/api-cab-config
  • Для базы данных (например, api-cab-base):
    # mkdir /opt/nwaf/api-cab-base

3. В каталоге конфигурационных файлов создайте файл first-launch:

# touch /opt/nwaf/api-cab-config/first-launch

4. Запустите контейнер с образом Nemesida WAF API и Личный кабинет Nemesida WAF, используя команды:

# iptables -t filter -N DOCKER
# docker run --rm -d -v /opt/nwaf/api-cab-config:/nwaf-api -v /opt/nwaf/api-cab-base:/var/lib/postgresql -p 8080:8080 -p 8090:80 nemesida/nwaf-api-cabinet

где:

  • --rm — удаление контейнера после завершения работы;
  • -d — запуск контейнера в фоновом режиме;
  • -v /opt/nwaf/api-cab-config:/nwaf-api — монтирование каталога с конфигурационными файлами внутрь контейнера;
  • -v /opt/nwaf/api-cab-base:/var/lib/postgresql — монтирование каталога с базой данных внутрь контейнера;
  • -p 8080:8080 — проброс порта 8080 контейнера на внешний порт 8080;
  • -p 8090:80 — проброс порта 80 контейнера на внешний порт 8090.

Посмотреть ID контейнера (cтолбец CONTAINER ID) можно командой:

# docker ps -a

5. Разрешите доступ на чтение для всех для каталога api-cab-config:

# chmod -R 0555 /opt/nwaf/api-cab-config

6. Запустите команду миграции и создания учётной записи администратора и следуйте указаниям скрипта:

# docker exec -ti /ID контейнера/ bash -c "bash /opt/migrate.sh"

Остановить контейнер можно командой:

# docker stop /ID контейнера/

7. Внесите изменения в конфигурационные файлы согласно инструкциям на страницах документации Nemesida WAF API и Личный кабинет Nemesida WAF.

8. Для запуска контейнера выполните следующие команды:

# iptables -t filter -N DOCKER
# docker run --rm -d -v /opt/nwaf/api-cab-config:/nwaf-api -v /opt/nwaf/api-cab-base:/var/lib/postgresql -p 8080:8080 -p 8090:80 nemesida/nwaf-api-cabinet

где:

  • --rm — удаление контейнера после завершения работы;
  • -d — запуск контейнера в фоновом режиме;
  • -v /opt/nwaf/api-cab-config:/nwaf-api — монтирование каталога с конфигурационными файлами внутрь контейнера;
  • -v /opt/nwaf/api-cab-base:/var/lib/postgresql — монтирование каталога с базой данных внутрь контейнера;
  • -p 8080:8080 — проброс порта 8080 контейнера на внешний порт 8080;
  • -p 8090:80 — проброс порта 80 контейнера на внешний порт 8090.

Обновление образов Nemesida WAF API и Личный кабинет Nemesida WAF
1. Перед обновлением образов Nemesida WAF API и Личный кабинет Nemesida WAF проверьте, запущен ли контейнер. Для этого необходимо посмотреть ID контейнера (cтолбец CONTAINER ID), используя команду:

# docker ps -a

2. Если контейнер запущен, остановите его, используя команду:

# docker stop /ID контейнера/

3. При остановленном контейнере удалите образ:

# docker image rm nemesida/nwaf-api-cabinet

4. Загрузите образ, содержащий модули Nemesida WAF API и Личный кабинет Nemesida WAF:

# docker pull nemesida/nwaf-api-cabinet

5. Запустите контейнер с образом Nemesida WAF API и Личный кабинет Nemesida WAF, используя команду:

# iptables -t filter -N DOCKER
# docker run --rm -d -v /opt/nwaf/api-cab-config:/nwaf-api -v /opt/nwaf/api-cab-base:/var/lib/postgresql -p 8080:8080 -p 8090:80 nemesida/nwaf-api-cabinet

Развертывание Docker-контейнера Nemesida WAF Signtest
Для развертывания контейнера Nemesida WAF Signtest необходимо выполнить следующие действия:

1. Загрузите образ, содержащий модуль Nemesida WAF Signtest:

# docker pull nemesida/nwaf-st

2. Создайте два каталога:

  • Для конфигурационных файлов (например, nwaf-signtest-config):
    # mkdir /opt/nwaf/nwaf-signtest-config
  • Для базы данных (например, nwaf-signtest-base):
    # mkdir /opt/nwaf/nwaf-signtest-base

3. В каталоге конфигурационных файлов создайте файл first-launch:

# touch /opt/nwaf/nwaf-signtest-config/first-launch

4. Запустите контейнер с образом Nemesida WAF Signtest, используя команды:

# iptables -t filter -N DOCKER
# docker run --rm -d -v /opt/nwaf/nwaf-signtest-config:/nwaf-signtest -v /opt/nwaf/nwaf-signtest-base:/var/lib/postgresql -p 8081:8088 -p 82:80 nemesida/nwaf-st

где:

  • --rm — удаление контейнера после завершения работы;
  • -d — запуск контейнера в фоновом режиме;
  • -v /opt/nwaf/nwaf-signtest-config:/nwaf-signtest — монтирование каталога с конфигурационными файлами внутрь контейнера;
  • -v /opt/nwaf/nwaf-signtest-base:/var/lib/postgresql — монтирование каталога с базой данных внутрь контейнера;
  • -p 8081:8088 — проброс порта 8088 контейнера на внешний порт 8081;
  • -p 82:80 — проброс порта 80 контейнера на внешний порт 82.

Посмотреть ID контейнера (cтолбец CONTAINER ID) можно командой:

# docker ps -a

5. Разрешите доступ на чтение для всех для каталога nwaf-signtest-config:

# chmod -R 0555 /opt/nwaf/nwaf-signtest-config

6. Запустите команду миграции и создания учётной записи администратора и следуйте указаниям скрипта:

# docker exec -ti /ID контейнера/ bash -c "bash /opt/migrate.sh"

Остановить контейнер можно командой:

# docker stop /ID контейнера/

7. Внесите изменения в конфигурационный файл согласно инструкции на странице документации Nemesida WAF Signtest.

8. Для запуска контейнера выполните следующие команды:

# iptables -t filter -N DOCKER
# docker run --rm -d -v /opt/nwaf/nwaf-signtest-config:/nwaf-signtest -v /opt/nwaf/nwaf-signtest-base:/var/lib/postgresql -p 8081:8088 -p 82:80 nemesida/nwaf-st

где:

  • --rm — удаление контейнера после завершения работы;
  • -d — запуск контейнера в фоновом режиме;
  • -v /opt/nwaf/nwaf-signtest-config:/nwaf-signtest — монтирование каталога с конфигурационными файлами внутрь контейнера;
  • -v /opt/nwaf/nwaf-signtest-base:/var/lib/postgresql — монтирование каталога с базой данных внутрь контейнера;
  • -p 8081:8088 — проброс порта 8088 контейнера на внешний порт 8081;
  • -p 82:80 — проброс порта 80 контейнера на внешний порт 82.

Обновление образа Nemesida WAF Signtest
1. Перед обновлением образа Nemesida WAF Signtest проверьте, запущен ли контейнер. Для этого необходимо посмотреть ID контейнера (cтолбец CONTAINER ID), используя команду:

# docker ps -a

2. Если контейнер запущен, остановите его, используя команду:

# docker stop /ID контейнера/

3. При остановленном контейнере удалите образ:

# docker image rm nemesida/nwaf-st

4. Загрузите образ, содержащий модуль Nemesida WAF Signtest:

# docker pull nemesida/nwaf-st

5. Запустите контейнер с образом Nemesida WAF Signtest, используя команду:

# iptables -t filter -N DOCKER
# docker run --rm -d -v /opt/nwaf/nwaf-signtest-config:/nwaf-signtest -v /opt/nwaf/nwaf-signtest-base:/var/lib/postgresql -p 8081:8088 -p 82:80 nemesida/nwaf-st

Развертывание Docker-контейнера Nemesida WAF Scanner
Для развертывания контейнера Nemesida WAF Scanner необходимо выполнить следующие действия:

1. Загрузите образ, содержащий модуль Nemesida WAF Scanner:

# docker pull nemesida/nwaf-scanner

2. Создайте каталог для конфигурационных файлов Nemesida WAF Scanner:

# mkdir /opt/nwaf/nwaf-scanner

3. В каталоге конфигурационных файлов создайте файл first-launch:

# touch /opt/nwaf/nwaf-scanner/first-launch

4. Запустите контейнер с образом Nemesida WAF Scanner, используя команды:

# iptables -t filter -N DOCKER
# docker run --rm -d -v /opt/nwaf/nwaf-scanner/:/nwaf-scanner nemesida/nwaf-scanner

где:

  • --rm — удаление контейнера после завершения работы;
  • -d — запуск контейнера в фоновом режиме;
  • -v /opt/nwaf/nwaf-scanner:/nwaf-scanner — монтирование каталога с конфигурационными файлами внутрь контейнера.

Посмотреть ID контейнера (cтолбец CONTAINER ID) можно командой:

# docker ps -a

Остановить контейнер можно командой:

# docker stop /ID контейнера/

5. Внесите изменения в конфигурационные файлы согласно инструкции на странице документации Nemesida WAF Scanner.

6. Внесите изменения в конфигурационные файлы подключения к БД модулей Nemesida WAF API и Личный кабинет Nemesida WAF для взаимодействия с Nemesida WAF Scanner:

  • В файле /opt/nwaf/api-cab-config/postgresql/main/postgresql.conf:
    listen_addresses = '*'
  • В файле /opt/nwaf/api-cab-config/postgresql/main/pg_hba.conf:
    host    all             all             0.0.0.0/0            md5

7. Для запуска контейнеров с модулями Nemesida WAF API, Личный кабинет Nemesida WAF и Nemesida WAF Scanner выполните следующие команды:

# iptables -t filter -N DOCKER
# docker run --rm -d -v /opt/nwaf/api-cab-config:/nwaf-api -v /opt/nwaf/api-cab-base:/var/lib/postgresql -p 8080:8080 -p 8090:80 -p 5432:5432 nemesida/nwaf-api-cabinet

где:

  • --rm — удаление контейнера после завершения работы;
  • -d — запуск контейнера в фоновом режиме;
  • -v /opt/nwaf/api-cab-config:/nwaf-api — монтирование каталога с конфигурационными файлами внутрь контейнера;
  • -v /opt/nwaf/api-cab-base:/var/lib/postgresql — монтирование каталога с базой данных внутрь контейнера;
  • -p 8080:8080 — проброс порта 8080 контейнера на внешний порт 8080;
  • -p 8090:80 — проброс порта 80 контейнера на внешний порт 8090;
  • -p 5432:5432 — проброс порта БД 5432 контейнера на внешний порт 5432.
# docker run --rm -d -v /opt/nwaf/nwaf-scanner/:/nwaf-scanner nemesida/nwaf-scanner

где:

  • --rm — удаление контейнера после завершения работы;
  • -d — запуск контейнера в фоновом режиме;
  • -v /opt/nwaf/nwaf-scanner:/nwaf-scanner — монтирование каталога с конфигурационными файлами внутрь контейнера.

8. Для запуска процесса сканирования выполните команду:

docker exec -ti /ID контейнера/ bash -c "/usr/bin/nws"

Обновление образа Nemesida WAF Scanner
1. Перед обновлением образа Nemesida WAF Scanner проверьте, запущен ли контейнер. Для этого необходимо посмотреть ID контейнера (cтолбец CONTAINER ID), используя команду:

# docker ps -a

2. Если контейнер запущен, остановите его, используя команду:

# docker stop /ID контейнера/

3. При остановленном контейнере удалите образ:

# docker image rm nemesida/nwaf-scanner

4. Загрузите образ, содержащий модуль Nemesida WAF Scanner:

# docker pull nemesida/nwaf-scanner

5. Запустите контейнер с образом Nemesida WAF Scanner, используя команду:

# iptables -t filter -N DOCKER
# docker run --rm -d -v /opt/nwaf/nwaf-scanner/:/nwaf-scanner nemesida/nwaf-scanner