Параметры настройки и сервисы
Команда 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):
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, и следующие обновления и запуски его придерживаются:
./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.

| Параметр | Назначение |
|---|---|
| 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 запускается вместе с сервером:
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:
./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