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

Резервное копирование и восстановление

Сохранение и восстановление баз данных, файлов и секретов сервера командой scansuite.

Данные сервера хранятся в трёх местах: базы данных ScanSuite и DefectDojo, файлы, которые сохранили сканирования, и секреты установки — .env и каталог key/ с лицензией и ключами шифрования. Команда ./scansuite в каталоге /opt/scansuite сохраняет и восстанавливает всё это:

КомандаЧто делает
./scansuite --backup-db [zip]Сохраняет базы данных ScanSuite и DefectDojo в один zip-архив.
./scansuite --restore-db <zip>Заменяет базы данных теми, что лежат в резервной копии.
./scansuite --backup-secrets [zip]Сохраняет .env и key/ в zip-архив, защищённый паролем.
./scansuite --restore-secrets <zip>Возвращает .env и key/ на место. Спрашивает пароль.

Те же команды можно записать как ./scansuite backup db, restore db, backup secrets и restore secrets.

Резервная копия — это один zip-архив в каталоге /opt/scansuite/backups/. В его имени стоят дата и время, а читать его может только владелец. Чтобы сохранить копию в другом месте, укажите после команды файл или каталог. Существующий файл никогда не перезаписывается.

Копируйте резервные копии с сервера. Копия, которая лежит только на том диске, который она защищает, пропадёт вместе с ним.

Резервная копия баз данных

Терминал
cd /opt/scansuite && ./scansuite --backup-db

Обе базы сохраняются, пока ScanSuite продолжает работать, а команда выводит путь к архиву. Состав архива меняют три параметра:

ПараметрЧто делает
--with-filesДобавляет файлы, на которые ссылаются базы: отчёты и другие файлы сканирований, а также загруженные в DefectDojo файлы. На время копирования хранилище файлов останавливается, а для архива нужно столько свободного места, сколько занимают сами файлы.
--encryptЗащищает архив сгенерированным паролем, как и резервную копию секретов. Пароль выводится один раз.
--no-dojoНе включает в архив базу DefectDojo.

Без --with-files восстановление вернёт все сканирования и уязвимости, но не файлы отчётов, которые были сохранены вместе с ними.

Пример задания cron для ночной резервной копии на подключённый диск (редактор открывается командой sudo crontab -e):

crontab
0 2 * * * cd /opt/scansuite && ./scansuite --backup-db /mnt/backup > /var/log/scansuite-backup.log 2>&1

Восстановление баз данных

Терминал
cd /opt/scansuite && ./scansuite --restore-db backups/scansuite-teams-db-20261011-132415.zip

Команда сначала читает архив целиком и только потом что-либо меняет. Затем она:

  • отказывается от копии, которую здесь восстановить нельзя: от копии другой редакции, от копии, сделанной более новым релизом (сначала обновите ScanSuite), и от копии из более новой версии PostgreSQL;
  • сообщает, что будет заменено, и спрашивает подтверждение, если не указан --yes;
  • сохраняет базы в их нынешнем виде в backups/before-restore-<дата>.zip, если не указан --no-safety-backup;
  • останавливает ScanSuite, заменяет каждую базу и возвращает сохранённые файлы, если они есть в копии;
  • приводит копию, сделанную более ранним релизом, к текущему релизу и снова запускает ScanSuite и DefectDojo.

Пока команда работает, ScanSuite несколько минут недоступен. Если какой-то шаг завершился ошибкой, в сообщении указаны архив before-restore и команда, которая его восстанавливает.

Восстановление заменяет базы данных. Сканирования, уязвимости, учётные записи и настройки, появившиеся после создания копии, будут потеряны.

Резервная копия секретов

Терминал
cd /opt/scansuite && ./scansuite --backup-secrets

В архив попадают .env и всё содержимое key/: файл лицензии и scansuite-secrets.env с ключами, которыми зашифрованы сохранённые учётные данные интеграций, единого входа и ИИ. Архив открывается только паролем, который генерируется именно для него:

Вывод
[+] Secrets saved to /opt/scansuite/backups/scansuite-teams-secrets-20261011-132509.zip
[!] The file opens only with this password. It is shown once and stored nowhere:

    <32 символа>

[*] Keep it apart from the file.

Запишите пароль сразу, как только он показан: на сервере он не сохраняется, и вывести его повторно нельзя. Делайте новую копию секретов каждый раз, когда меняется .env или лицензия.

Резервная копия баз данных полна только вместе с копией секретов той же установки. Если восстановить базу с другими ключами шифрования, сохранённые учётные данные расшифровать не получится.

Восстановление секретов

Терминал
cd /opt/scansuite && ./scansuite --restore-secrets backups/scansuite-teams-secrets-20261011-132509.zip

Команда спрашивает пароль и проверяет его до того, как что-либо изменить. Затем она сохраняет нынешние .env и key/ в каталоге .replaced-<дата>/, возвращает сохранённые файлы с их владельцами и правами и перезапускает сервисы, чтобы они получили восстановленные настройки. С параметром --no-restart перезапуск остаётся за вами.

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

Перенос на новый сервер

  1. 01
    Сделайте копии на старом сервере

    Сохраните базы данных вместе с файлами и секреты. Скопируйте оба архива на новый сервер и запишите пароли.

    Терминал
    ./scansuite --backup-db --with-files && ./scansuite --backup-secrets
  2. 02
    Установите ScanSuite на новом сервере

    Обычная установка с вашей лицензией.

  3. 03
    Восстановите секреты

    Сначала секреты, чтобы базы восстанавливались с теми ключами, которыми они зашифрованы.

    Терминал
    cd /opt/scansuite && ./scansuite --restore-secrets <zip>
  4. 04
    Восстановите базы данных
    Терминал
    ./scansuite --restore-db <zip>

Шаги установки описаны в разделе Установка ScanSuite Teams.

Как защищены архивы

Защита паролем — стандартная для формата zip, поэтому с паролем архив откроет любая программа для zip. Она не даёт прочитать файл мимоходом, но слабее современного шифрования, поэтому храните защищённый архив так же бережно, как любой другой секрет.

Установка в Google Cloud или Microsoft Azure хранит данные в управляемых сервисах, у которых есть собственные резервные копии: см. Установка в Google Cloud и Установка в Microsoft Azure.

Проверено: 2026-10-11