Руководство по использованию Немезида ВАФ в виде Docker-контейнеров.
- Фильтрующая нода
- Nemesida AI MLC
- Nemesida WAF WEB
- Nemesida WAF Scanner
- Docker Compose
Для запуска контейнера с фильтрующей нодой необходимо выполнить следующие действия:
На текущий момент доступен образ с последней стабильной версией Nginx.
1. Загрузите образ, содержащий динамический модуль и Nemesida AI MLA:
# docker pull nemesida/nwaf-dyn
2. Создайте каталог для конфигурационных файлов динамического модуля:
# mkdir -p /opt/nwaf/waf-config
3. В каталоге конфигурационных файлов создайте файл first-launch
:
# touch /opt/nwaf/waf-config/first-launch
4. Запустите контейнер с образом динамического модуля, используя команду:
# iptables -t filter -N DOCKER # docker run --rm -d -v /opt/nwaf/waf-config:/nginx.configs -p 80:80 -p 5672:5672 nemesida/nwaf-dyn
Контейнер самостоятельно завершит работу, создав в каталоге конфигурационных файлов базовый набор файлов конфигурации.
5. Отредактируйте конфигурационные файлы согласно инструкции.
6. Запустите контейнер с образом динамического модуля, используя команду:
# iptables -t filter -N DOCKER # docker run --rm -d -v /opt/nwaf/waf-config:/nginx.configs -p 80:80 -p 5672:5672 nemesida/nwaf-dyn
где:
--rm
— удаление контейнера после завершения работы;-d
— запуск контейнера в фоновом режиме;-v /opt/nwaf/waf-config:/nginx.configs
— монтирование каталога с конфигурационными файлами внутрь контейнера.
На текущий момент доступен образ с последней стабильной версией Nginx.
1. Загрузите образ, содержащий динамический модуль:
# docker pull nemesida/nwaf-dyn-ce
2. Создайте каталог для конфигурационных файлов динамического модуля:
# mkdir -p /opt/nwaf/waf-config
3. В каталоге конфигурационных файлов создайте файл first-launch
:
# touch /opt/nwaf/waf-config/first-launch
4. Запустите контейнер с образом динамического модуля, используя команду:
# iptables -t filter -N DOCKER # docker run --rm -d -v /opt/nwaf/waf-config:/nginx.configs -p 80:80 -p 5672:5672 nemesida/nwaf-dyn-ce
Контейнер самостоятельно завершит работу, создав в каталоге конфигурационных файлов базовый набор файлов конфигурации.
5. Отредактируйте конфигурационные файлы согласно инструкции.
6. Запустите контейнер с образом динамического модуля, используя команду:
# iptables -t filter -N DOCKER # docker run --rm -d -v /opt/nwaf/waf-config:/nginx.configs -p 80:80 -p 5672:5672 nemesida/nwaf-dyn-ce
где:
--rm
— удаление контейнера после завершения работы;-d
— запуск контейнера в фоновом режиме;-v /opt/nwaf/waf-config:/nginx.configs
— монтирование каталога с конфигурационными файлами внутрь контейнера.
1. Перед обновлением образа с фильтрующей нодой проверьте, запущен ли контейнер. Для этого необходимо посмотреть ID контейнера (cтолбец CONTAINER ID), используя команду:
# docker ps -a
2. Если контейнер запущен, остановите его, используя команду:
# docker stop /ID контейнера/
3. При остановленном контейнере удалите образ:
# docker image rm nemesida/nwaf-dyn
4. Загрузите образ, содержащий динамический модуль и Nemesida AI MLA:
# docker pull nemesida/nwaf-dyn
5. Запустите контейнер с образом динамического модуля, используя команду:
# iptables -t filter -N DOCKER # docker run --rm -d -v /opt/nwaf/waf-config:/nginx.configs -p 80:80 -p 5672:5672 nemesida/nwaf-dyn
После обновления предыдущие версии конфигурационных файлов будут размещены в подкаталоге old
.
1. Перед обновлением образа с фильтрующей нодой проверьте, запущен ли контейнер. Для этого необходимо посмотреть ID контейнера (cтолбец CONTAINER ID), используя команду:
# docker ps -a
2. Если контейнер запущен, остановите его, используя команду:
# docker stop /ID контейнера/
3. При остановленном контейнере удалите образ:
# docker image rm nemesida/nwaf-dyn-ce
4. Загрузите образ, содержащий динамический модуль:
# docker pull nemesida/nwaf-dyn-ce
5. Запустите контейнер с образом динамического модуля, используя команду:
# iptables -t filter -N DOCKER # docker run --rm -d -v /opt/nwaf/waf-config:/nginx.configs -p 80:80 -p 5672:5672 nemesida/nwaf-dyn-ce
После обновления предыдущие версии конфигурационных файлов будут размещены в подкаталоге old
.
Используется только в коммерческой версии Немезида ВАФ.
Для запуска контейнера Nemesida AI MLC необходимо выполнить следующие действия:
1. Загрузите образ, содержащий модуль Nemesida AI MLC:
# docker pull nemesida/nwaf-mlc
2. Создайте каталог для конфигурационных файлов Nemesida AI MLC:
# mkdir -p /opt/nwaf/mlc-config
3. В каталоге конфигурационных файлов создайте файл first-launch
:
# touch /opt/nwaf/mlc-config/first-launch
4. Запустите контейнер с образом Nemesida AI MLC, используя команду:
# iptables -t filter -N DOCKER # docker run --rm -d -v /opt/nwaf/mlc-config:/nwaf_mlc.configs nemesida/nwaf-mlc
Контейнер самостоятельно завершит работу, создав в каталоге конфигурационных файлов базовый набор файлов конфигурации.
5. Отредактируйте конфигурационные файлы согласно инструкции.
Значения для параметра
rmq_host
хранятся в файле конфигурации контейнера с динамическим модулем/opt/nwaf/waf-config/rabbitmq_password
.
6. Запустите контейнер с образом динамического модуля, используя команду:
# iptables -t filter -N DOCKER # docker run --rm -d -v /opt/nwaf/mlc-config:/nwaf_mlc.configs nemesida/nwaf-mlc
где:
--rm
— удаление контейнера после завершения работы;-d
— запуск контейнера в фоновом режиме;-v /opt/nwaf/mlc-config:/nwaf_mlc.configs nemesida/nwaf-mlc
— монтирование каталога с конфигурационными файлами внутрь контейнера.
1. Перед обновлением образа Nemesida AI MLC проверьте, запущен ли контейнер. Для этого необходимо посмотреть ID контейнера (cтолбец CONTAINER ID), используя команду:
# docker ps -a
2. Если контейнер запущен, остановите его, используя команду:
# docker stop /ID контейнера/
3. При остановленном контейнере удалите образ:
# docker image rm nemesida/nwaf-mlc
4. Загрузите образ, содержащий модуль Nemesida AI MLC:
# docker pull nemesida/nwaf-mlc
5. Запустите контейнер с образом динамического модуля, используя команду:
# iptables -t filter -N DOCKER # docker run --rm -d -v /opt/nwaf/mlc-config:/nwaf_mlc.configs nemesida/nwaf-mlc
После обновления предыдущие версии конфигурационных файлов будут размещены в подкаталоге old
.
Для запуска контейнера с Nemesida WAF API и Личным кабинетом необходимо выполнить следующие действия:Предназначен для всех тарифов.
# docker pull nemesida/nwaf-web
2. Создайте два каталога:
- Для конфигурационных файлов (например,
api-cab-config
):# mkdir -p /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 WEB, используя команды:
# 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-web
5. Разрешите доступ на чтение для всех для каталога api-cab-config
:
# chmod -R 0555 /opt/nwaf/api-cab-config
Посмотреть ID контейнера (cтолбец CONTAINER ID) можно командой:
# docker ps -a
6. Запустите команду миграции и создания учётной записи администратора и следуйте указаниям скрипта:
# docker exec -ti /ID контейнера/ bash -c "bash /opt/migrate.sh"
7. Остановите контейнер командой:
# docker stop /ID контейнера/
8. Внесите изменения в конфигурационные файлы согласно инструкциям из руководства Nemesida WAF API и Личный кабинет.
9. Запустите контейнер с образом Nemesida WAF WEB, используя команды:
# 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-web
где:
--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
.
1. Загрузите образ, содержащий модули Nemesida WAF WEB:
# docker pull nemesida/nwaf-web-pg
2. Создайте каталог для конфигурационных файлов:
# mkdir -p /opt/nwaf/api-cab-config
3. В каталоге конфигурационных файлов создайте файл first-launch
:
# touch /opt/nwaf/api-cab-config/first-launch
4. Запустите контейнер с образом Nemesida WAF WEB, используя команды:
# iptables -t filter -N DOCKER # docker run --rm -d -v /opt/nwaf/api-cab-config:/nwaf-api -p 8080:8080 -p 8090:80 nemesida/nwaf-web-pg
Контейнер самостоятельно завершит работу, создав в каталоге конфигурационных файлов базовый набор файлов конфигурации.
5. Создайте БД, пользователя и пароль для подключения модулей Nemesida WAF API и Личный кабинет:
# su - postgres -c "psql -c \"CREATE DATABASE waf;\"" # su - postgres -c "psql -c \"CREATE ROLE nw_api PASSWORD 'YOUR_PASSWORD';\"" # su - postgres -c "psql -c \"GRANT ALL ON DATABASE waf to nw_api;\"" # su - postgres -c "psql -c \"ALTER ROLE nw_api WITH LOGIN;\"" # su - postgres -c "psql -c \"CREATE DATABASE cabinet;\"" # su - postgres -c "psql -c \"CREATE ROLE nw_cabinet PASSWORD 'YOUR_PASSWORD';\"" # su - postgres -c "psql -c \"GRANT ALL ON DATABASE cabinet to nw_cabinet;\"" # su - postgres -c "psql -c \"ALTER ROLE nw_cabinet WITH LOGIN;\""
6. Разрешите внешние подключения к БД, внеся изменения в файл pg_hba.conf
:
# IPv4 local connections: host all all 0.0.0.0/0 md5
7. Разрешите доступ на чтение для всех для каталога api-cab-config
:
# chmod -R 0555 /opt/nwaf/api-cab-config
8. Внесите изменения в конфигурационные файлы согласно инструкциям из руководства Nemesida WAF API и Личный кабинет.
9. Запустите контейнер с образом Nemesida WAF WEB, используя команды:
# iptables -t filter -N DOCKER # docker run --rm -d -v /opt/nwaf/api-cab-config:/nwaf-api -p 8080:8080 -p 8090:80 nemesida/nwaf-web-pg
Посмотреть ID контейнера (cтолбец CONTAINER ID) можно командой:
# docker ps -a
10. Запустите команду миграции и создания учётной записи администратора и следуйте указаниям скрипта:
# docker exec -ti /ID контейнера/ bash -c "bash /opt/migrate.sh"
11. Остановите контейнер командой:
# docker stop /ID контейнера/
12. Запустите контейнер с образом Nemesida WAF WEB, используя команды:
# iptables -t filter -N DOCKER # docker run --rm -d -v /opt/nwaf/api-cab-config:/nwaf-api -p 8080:8080 -p 8090:80 nemesida/nwaf-web-pg
где:
--rm
— удаление контейнера после завершения работы;-d
— запуск контейнера в фоновом режиме;-v /opt/nwaf/api-cab-config:/nwaf-api
— монтирование каталога с конфигурационными файлами внутрь контейнера;-p 8080:8080
— проброс порта8080
контейнера на внешний порт8080
;-p 8090:80
— проброс порта80
контейнера на внешний порт8090
.
При обращении к веб-интерфейсу модуля Личный кабинет необходимо добавить порт
8090
. Например:http://cabinet.example.com:8090/waf/personal
# docker ps -a
Если контейнер запущен, остановите его, используя команду:
# docker stop /ID контейнера/
1. При остановленном контейнере удалите образ:
# docker image rm nemesida/nwaf-web
2. Загрузите образ Nemesida WAF WEB:
# docker pull nemesida/nwaf-web
3. Запустите контейнер с образом Nemesida WAF WEB, используя команду:
# 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-web
# docker image rm nemesida/nwaf-web-pg
2. Загрузите образ Nemesida WAF WEB:
# docker pull nemesida/nwaf-web-pg
3. Запустите контейнер с образом Nemesida WAF WEB, используя команду:
# iptables -t filter -N DOCKER # docker run --rm -d -v /opt/nwaf/api-cab-config:/nwaf-api -p 8080:8080 -p 8090:80 nemesida/nwaf-web-pg
Для запуска контейнера Nemesida WAF Scanner необходимо выполнить следующие действия:Предназначен для тарифа Enterprise.
Для корректной работы модуля Nemesida WAF Scanner необходимо предоставить доступ к веб-приложению в обход Немезида ВАФ.
1. Загрузите образ, содержащий модуль Nemesida WAF Scanner:
# docker pull nemesida/nwaf-scanner
2. Создайте каталог для конфигурационных файлов Nemesida WAF Scanner:
# mkdir -p /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
— монтирование каталога с конфигурационными файлами внутрь контейнера.
Контейнер самостоятельно завершит работу, создав в каталоге конфигурационных файлов базовый набор файлов конфигурации.
5. Внесите изменения в конфигурационные файлы согласно инструкции.
Посмотреть ID контейнера (cтолбец CONTAINER ID) можно командой:
# docker ps -a
6. Остановите контейнер Nemesida WAF WEB командой:
# docker stop /ID контейнера/
7. Внесите изменения в конфигурационные файлы подключения к БД модулей Nemesida WAF API и Личный кабинет для взаимодействия с 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
8. Для запуска контейнеров с образами Nemesida WAF WEB и 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-web
где:
--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
— монтирование каталога с конфигурационными файлами внутрь контейнера.
9. Для запуска процесса сканирования выполните команду:
docker exec -ti /ID контейнера/ bash -c "/usr/bin/nws"
# 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
1. Установитe Docker Compose;
2. Загрузите файл docker-compose.yml с параметрами запуска;
3. Создайте каталоги для конфигурационных файлов Nemesida WAF относительно загруженного docker-compose.yml
:
# mkdir -p /opt/nwaf/{waf-config,mlc-config,api-cab-config,api-cab-base}
4. В каталогах конфигурационных файлов создайте файл first-launch
:
# touch /opt/nwaf/{waf-config,mlc-config,api-cab-config}/first-launch
5. Запустите Docker Compose, используя команды:
# iptables -t filter -N DOCKER # docker-compose up --build -d
6. Для каталога nwaf-api-cab-config
разрешите доступ на чтение для всех:
# chmod -R 0555 /opt/nwaf/api-cab-config
7. Выполните миграции и создайте пользователя для модуля Личный кабинет:
# docker-compose exec nwaf-web "/bin/bash" "/opt/migrate.sh"
8. Остановите Docker Compose:
# docker-compose down
9. Внесите изменения в конфигурационные файлы согласно инструкции из руководства Nemesida WAF, Nemesida AI MLC, Nemesida WAF API и Личный кабинет;
10. Запустите Docker Compose, используя команды:
# iptables -t filter -N DOCKER # docker-compose up -d