Развёртывание

Параметры настройки и сервисы

Команда scansuite, .env, сервисы, автозапуск и сброс баз данных.

Команда scansuite

Установкой управляют одной командой ./scansuite в каталоге /opt/scansuite. Если запустить её без аргументов, она выведет список подкоманд:

КомандаЧто делает
./scansuite install <код>Устанавливает ScanSuite на сервер или чинит установку. Код — шесть символов в конце имени файла лицензии. Повторный запуск безопасен.
./scansuite update [<код>]Скачивает текущий релиз и применяет его. Если код не указан, он берётся из файла лицензии.
./scansuite start [воркеры]Запускает сервисы и ждёт, пока все они будут готовы. Число воркеров для параллельных сканирований — от 1 до 100, по умолчанию 2.
./scansuite stopОстанавливает все сервисы.
./scansuite restart [--hard]Применяет изменения настроек: пересоздаёт только те сервисы, конфигурация которых изменилась. С --hard сначала останавливает и удаляет все контейнеры.
./scansuite statusПоказывает, что запущено и на что стоит обратить внимание.
./scansuite logs [сервис]Выводит последние 200 строк журнала одного сервиса или всех сразу.
./scansuite doctorПроверяет сервер и установку, см. ниже.
./scansuite versionПоказывает релиз, лицензию и образы, которые фактически запущены.
./scansuite reset db|dojo [--yes]Очищает базу ScanSuite или DefectDojo, чтобы начать заново. Без --yes спрашивает подтверждение.
./scansuite dojo passwordПоказывает или меняет пароль администратора DefectDojo.
./scansuite offline save|load <каталог>Переносит образы на сервер без доступа к реестру.
./scansuite --backup-db | --restore-db <zip>Сохраняет базы данных ScanSuite и DefectDojo в zip-архив или заменяет их теми, что лежат в резервной копии.
./scansuite --backup-secrets | --restore-secrets <zip>Сохраняет .env и key/ в zip-архив, защищённый паролем, или возвращает их на место.
./scansuite uninstall [--purge] [--yes]Останавливает ScanSuite и убирает его из автозапуска. С --purge удаляет и данные.

Командам резервного копирования посвящён отдельный раздел: Резервное копирование и восстановление.

Обновление

Обновление — это одна команда:

Терминал
cd /opt/scansuite && ./scansuite update

Она сохраняет копию .env в .env.bak-<дата>, приводит файлы установки к текущему релизу, загружает образы по вашей лицензии, обновляет сервис автозапуска, обновляет базу данных и пересоздаёт только те сервисы, которые изменились. Если вы правили файлы, входящие в релиз, их копии сохраняются в каталоге .replaced-<дата>.

Пример задания cron для еженедельного обновления (редактор открывается командой sudo crontab -e):

crontab
0 3 * * 4 cd /opt/scansuite && ./scansuite update --yes > /var/log/scansuite-update.log 2>&1

Обновляйте ScanSuite только командой ./scansuite update. Обычный git pull обновит файлы, но не загрузит новые образы и не обновит базу данных.

Какие компоненты устанавливать

По умолчанию ставится только платформа — приложение и DefectDojo, без контейнеров внешних сканеров. Нужные сканеры добавляют параметрами install и update. Выбор сохраняется в .env, и следующие обновления и запуски его придерживаются:

bash
./scansuite update --all-scanners   # все сканеры
./scansuite update --static-only    # только сканеры статического анализа
./scansuite update --dynamic-only   # только сканеры динамического анализа и инфраструктуры
./scansuite update --no-scanners    # без внешних сканеров (по умолчанию)
./scansuite update --no-dojo        # остановить DefectDojo, его данные сохранятся
./scansuite update --with-dojo      # вернуть DefectDojo

Число воркеров не сохраняется: после перезапуска или перезагрузки сервера их снова будет два. Чтобы запустить больше, укажите число явно: ./scansuite start 4.

Файл .env

Настройки конкретного сервера хранятся в файле /opt/scansuite/.env. Установщик создаёт его при первой установке: генерирует пароли, берёт часовой пояс из настроек сервера и записывает выбранный релиз. Файл доступен только владельцу (права 600). Обновления его не перезаписывают, и его обязательно нужно включать в резервные копии. После правки примените изменения командой ./scansuite restart.

Файл .env в каталоге /opt/scansuite
Файл .env после установки (секреты скрыты)
ПараметрНазначение
SCANSUITE_TAGРелиз, установленный на сервере. Его записывают команды install и update, вручную не меняйте.
LOG_FILEФайл журнала ScanSuite, по умолчанию /var/tmp/scansuite.log. Каталог /var/tmp смонтирован в контейнеры web и воркеров; если журнал нужен в другом месте, добавьте монтирование в docker-compose.local.yml.
CELERY_HOST, REDIS_PASSWORDПодключение к Redis.
PS_DATABASE_*Подключение к базе данных PostgreSQL.
STORAGE_URLХранилище файлов сканирований, по умолчанию встроенный сервис seaweedfs.
TZЧасовой пояс для журналов и расписаний.
CSRF_PROTECTIONЗащита форм и запросов браузера от подделки (CSRF). Включите её (true) на любой установке, которую открывают в браузере. На токены API не влияет.
SCANSUITE_SCANNERS, SCANSUITE_DOJOКакие сканеры установлены и включён ли DefectDojo. Их записывают параметры install и update.
COMPOSE_FILE, IMAGE_*Какие файлы Compose и образы использует эта редакция. Установщик переписывает их при каждой установке, обновлении и запуске.
SECRET_KEY, SCANSUITE_WRAPPING_KEYS, SCANSUITE_ACTIVE_WRAPPING_KEYКлючи шифрования сохранённых учётных данных интеграций, единого входа и ИИ. Их источник — файл key/scansuite-secrets.env, при каждом запуске они копируются оттуда в .env. Без них эти учётные данные не расшифровать.

Сервер Nessus в .env больше не настраивается: его подключает администратор системы в разделе Настройки системы → Общие сервисы. Если в старой установке в .env остались NESSUS_URL, NESSUS_USER и NESSUS_PASS, они один раз переносятся в настройки при первом запуске нового релиза и дальше не читаются.

Храните .env и key/scansuite-secrets.env вместе с резервными копиями базы данных: команда ./scansuite --backup-secrets сохраняет оба файла в один zip-архив, защищённый паролем. Пароль базы можно задать заново, а вот без ключей шифрования сохранённые учётные данные не восстановить.

Пароли базы данных и Redis

PostgreSQL и Redis работают в контейнерах установки, доступны только в её собственной сети Docker (по именам postgres и redis) и наружу не публикуются. Оба пароля генерируются при первой установке. Чтобы сменить пароль, измените PS_DATABASE_PASSWORD или REDIS_PASSWORD и перезапустите ScanSuite: Redis запустится с новым паролем, а пароль учётной записи базы данных будет приведён к новому значению до запуска остальных сервисов.

Терминал
cd /opt/scansuite && ./scansuite restart

Используйте только буквы и цифры, как в сгенерированных паролях. Docker Compose считает символ $ в .env началом имени переменной, и такой пароль дойдёт до сервисов искажённым.

Файлы установки

ПутьЧто в нём
.envНастройки и пароли этого сервера. В релиз не входит.
key/Файл лицензии и key/scansuite-secrets.env с ключами шифрования (доступен только root). Файл создаётся при первом запуске; храните его вместе с резервными копиями базы — его сохраняет команда ./scansuite --backup-secrets.
backups/Сюда пишут команды ./scansuite --backup-db и --backup-secrets, если не указано другое место. В релиз не входит; обновления каталог не трогают.
docker-compose.ymlОписание сервисов. На сервере его не правят: релиз задаётся параметром SCANSUITE_TAG в .env.
docker-compose.local.ymlВаши изменения для этого сервера, например публикация web на 127.0.0.1:5000 за собственным обратным прокси или дополнительные каталоги. Файл необязательный; обновления его не трогают, и он подключается при каждом запуске.
services/nginx/certs/TLS-сертификат веб-сервера ScanSuite: cert.pem и key.pem. Замените их своими.
defectdojo/certs/Сертификат веб-сервера DefectDojo: nginx.crt и nginx.key.
scanners.d/Образы сканеров, которые загружает этот релиз.
RELEASEКакой это релиз и из чего он собран. Эти сведения выводит ./scansuite version.

ScanSuite поставляется с самоподписанным сертификатом. Пока вы не установите свой, браузеры будут показывать предупреждение.

Сервисы

Установка состоит из контейнеров: nginx (веб-сервер), web (приложение), worker (воркеры сканирований, по умолчанию два), worker_admin (служебные задачи), worker_poc (эксплойты), celery_beat (расписания), postgres, redis, seaweedfs (хранилище файлов) и разовое задание migrate, которое обновляет базу данных. Журнал каждого контейнера ограничен тремя файлами по 20 МБ.

Проверка сервера

Команда ./scansuite doctor проверяет:

  • Docker и плагин Compose, свободное место (20 ГБ для образов и 10 ГБ в /var/tmp), порты 80 и 443 и веб-серверы, которые запускаются на сервере автоматически;
  • синхронизацию времени, если задан сервер NTP;
  • права на .env и отсутствие в нём незаполненных значений, лицензию и срок действия TLS-сертификата;
  • подключение к базе данных с паролем из .env, Redis, задание обновления базы, ответ страницы входа через nginx и недавние ошибки в журналах.

Автозапуск

Установка и обновление регистрируют сервис systemd, поэтому ScanSuite запускается вместе с сервером:

bash
systemctl status scansuite
sudo systemctl disable scansuite     # убрать из автозапуска

Сброс баз данных

./scansuite reset db

Удаляет базу данных ScanSuite: результаты сканирований, уязвимости, команды, учётные записи и настройки приложения. Лицензия, .env, ключи шифрования, сертификаты и файлы в хранилище остаются. Затем ScanSuite перезапускается и выводит адрес страницы https://<хост>/setup: первую команду и её администратора нужно создать заново.

./scansuite reset dojo

Удаляет и заново создаёт базу DefectDojo вместе с новым администратором. Подождите несколько минут и узнайте его пароль командой ./scansuite dojo password.

После сброса DefectDojo получите новый ключ API и заново подключите DefectDojo в ScanSuite, иначе результаты сканирований перестанут выгружаться.

Удаление

./scansuite uninstall останавливает ScanSuite и убирает его из автозапуска. С параметром --purge удаляются и данные ScanSuite: базы данных, Redis и хранилище файлов. Данные DefectDojo и каталог /opt/scansuite при этом остаются.

Перенос образов без доступа к реестру

Если у сервера нет доступа к реестру образов, образы можно подготовить на сервере, где доступ есть. Выполните там первую команду, перенесите каталог на целевой сервер, загрузите образы и установите или обновите ScanSuite с параметром --offline — он не обращается ни к реестру, ни к git:

bash
./scansuite offline save /media/transfer/scansuite-images      # на сервере с доступом к реестру
./scansuite offline load /media/transfer/scansuite-images      # на целевом сервере
./scansuite install <код> --offline                            # или: ./scansuite update --offline

Сохраняется тот же набор образов, что и при обычной установке. При сохранении вычисляются контрольные суммы, при загрузке они проверяются, а --offline остановится и перечислит образы релиза, которых не хватает.

Сертификат ScanSuite описан в разделе Настройка SSL/TLS, сертификат DefectDojo — в разделе Настройка DefectDojo.

Проверено: 2026-09-30