Установка через Docker Compose¶
Для развертывания через Docker Compose требуется Docker версии не менее 23.0.
Варианты конфигурации¶
- Конфигурация с использованием файла
.env. - Конфигурация с использованием механизма секретов.
Создание группы и добавление пользователя¶
-
Создайте группу
docker. -
Добавьте своего пользователя в группу
docker. -
Чтобы изменения вступили в силу, выполните следующую команду:
Примечание
Выполняйте команды из последующих шагов с помощью добавленного в группу пользователя.
Загрузка дистрибутива¶
В настоящий момент дистрибутив предоставляется по запросу.
Запуск¶
-
При первом использовании распакуйте архив с дистрибутивом.
В архиве находится два варианта конфигурации Docker Compose. Первый вариант использует файл
.envдля хранения чувствительных данных (пароли для баз данных, ключи доступов к S3-совместимому хранилищу, и т.д.). Второй вариант использует встроенный в Docker механизм секретов. -
Откройте терминал и перейдите в директорию
solidpoint-compose, полученную в результате распаковки.Все последующие примеры команд в настоящей инструкции выполняются относительно этой директории.
-
Введите ваш секретный токен доступа, отредактировав значение переменной окружения
TOKENв файле.env, например: -
Настройте необходимые права доступа для локально монтированных директорий так, чтобы они были доступны для записи:
-
Для запуска сервисов с конфигурацией, использующей файл
.env, выполните команду:Для запуска сервисов с конфигурацией, использующей механизм секретов, выполните команду:
Панель управления по умолчанию доступна по адресу http://localhost.
При использовании первого варианта конфигурации изменить адрес и порт можно в файле docker-compose.yml, в секции services.dashboard.ports. При использовании второго варианта конфигурации аналогичные изменения могут быть сделаны в файле docker-compose-with-secrets.yml.
Настройка¶
Настроить переменные окружения можно в файле .env при использовании первого варианта конфигурации, или в файле secrets.env при использовании второго варианта конфигурации.
| Имя переменной | Значение по умолчанию | Описание |
|---|---|---|
FUCHSIAD_POSTGRES_SERVER_URL |
fuchsiad-database:5432 |
Адрес сервера базы данных для сервиса сканирования fuchsiad в формате host:port |
FUCHSIAD_POSTGRES_DB |
fuchsia |
Имя базы данных PostgreSQL для сервиса сканирования fuchsiad |
FUCHSIAD_POSTGRES_USER |
fuchsia |
Имя пользователя PostgreSQL для сервиса сканирования fuchsiad |
FUCHSIAD_POSTGRES_PASSWORD |
*** | Пароль базы данных PostgreSQL для сервиса сканирования fuchsiad (используется только в первом варианте конфигурации) |
FUCHSIAD_POSTGRES_PASSWORD_FILE |
/tmp/secrets/fuchsiad_db_password |
Путь к файлу (внутри контейнера), где будет храниться пароль базы данных PostgreSQL для сервиса сканирования fuchsiad (используется только во втором варианте конфигурации) |
FUCHSIAD_POSTGRES_SSL_MODE |
disable |
Регулирует использование протокола SSL для соединения с базой данных PostgreSQL для сервиса сканирования fuchsiad |
FUCHSIAD_SOCKET_PORT |
7075 |
Адрес TCP-порта сервиса сканирования fuchsiad |
FUCHSIAD_SOCKET_ADDR |
fuchsiad |
Адрес, по которому другие контейнеры могут взаимодействовать с fuchsiad |
FUCHSIAD_CONFIG_DIR |
/etc/fuchsia |
Директория, содержащая конфигурационные файлы сервиса сканирования fuchsiad |
FUCHSIAD_OMIT_JOB_LOGS |
false |
Если имеет значение true, то записи журнала задач сервиса сканирования не передаются на стандартные потоки вывода или ошибок (только сохраняются в S3-совместимое хранилище) |
FUCHSIAD_LOGS_FILE |
Не задано | Если значение задано, то записи журнала сервиса сканирования дублируются в указанный файл |
FUCHSIAD_CREDENTIALS_FILE |
Не задано | Если значение задано, то файл используется как дополнение к конфигурации сервиса сканирования fuchsiad. Необходимо для хранения чувствительной информации отдельно от основной конфиграционной директории, заданной переменной окружения FUCHSIAD_CONFIG_DIR (например, в директории только для чтения) |
BACKEND_POSTGRES_SERVER_URL |
backend-database:5432 |
Адрес сервера базы данных для бэкенда в формате host:port |
BACKEND_POSTGRES_DB |
backend |
Имя базы данных PostgreSQL для серверной части |
BACKEND_POSTGRES_USER |
backend |
Имя пользователя PostgreSQL для серверной части |
BACKEND_POSTGRES_PASSWORD |
*** | Пароль базы данных PostgreSQL для серверной части (используется только в первом варианте конфигурации) |
BACKEND_POSTGRES_PASSWORD_FILE |
/tmp/secrets/backend_db_password |
Путь к файлу (внутри контейнера), где будет храниться пароль базы данных PostgreSQL для серверной части (используется только во втором варианте конфигурации) |
BACKEND_POSTGRES_SSL_MODE |
disable |
Регулирует использование протокола SSL для соединения с базой данных PostgreSQL для серверной части |
BACKEND_STATE_DIRECTORY |
/var/lib/fuchsia/backend |
Директория, в которой хранится состояние серверной части |
BACKEND_LISTEN_PORT |
8085 |
Адрес TCP-порта серверной части |
BACKEND_ADDR |
backend |
Адрес, по которому другие контейнеры могут взаимодействовать с серверной частью |
BACKEND_LOGS_FILE |
Не задано | Если значение задано, то записи журнала серверной части дублируются в указанный файл |
BACKEND_DATABASE_URI_FILE |
Не задано | Если значение задано, то строка подключения к PostgreSQL считывается из файла, путь к которому указан в данной переменной, а не из переменной окружения |
S3_SERVER_URL |
http://minio:9000 |
Адрес сервера S3-совместимого хранилища в формате schema://host:port |
S3_ROOT_USER |
fuchsia |
Ключ доступа пользователя root к S3-совместимому хранилищу (используется только в первом варианте конфигурации) |
S3_ROOT_USER_FILE |
/tmp/secrets/s3_root_user |
Путь к файлу (внутри контейнера), где будет храниться ключ доступа пользователя root к S3-совместимому хранилищу (используется только во втором варианте конфигурации) |
S3_ROOT_PASSWORD |
*** | Пароль пользователя root к S3-совместимому хранилищу (используется только в первом варианте конфигурации) |
S3_ROOT_PASSWORD_FILE |
/tmp/secrets/s3_root_password |
Путь к файлу (внутри контейнера), где будет храниться пароль пользователя root к S3-совместимому хранилищу (используется только во втором варианте конфигурации) |
S3_NO_CHECK_CERT |
true |
Регулирует игнорирование самозаверенных серверных сертификатов при использовании протоколов SSL/TLS |
INTERACTSH_DOMAIN |
Не задано | Домен сконфигурированного interactsh-сервера. Оставьте пустым для использования внутреннего заранее сконфигурированного interactsh-сервера |
INTERACTSH_TOKEN |
Не задано | Аутентификационный токен interactsh-сервера. • Если настроена аутентификация персонального заранее сконфигурированного interactsh-сервера, укажите его аутентификационный токен; • Если аутентификация не настроена или используется внутренний interactsh-сервер, оставьте пустым |
CHANNEL |
stable |
Указание канала репозитория deb-пакетов |
TOKEN |
Не задано | Токен для доступа к репозиторию deb-пакетов |
TZ |
Europe/Moscow |
Задаёт временную зону |
Примечание
Дальнейшие команды указаны для первого варианта дистрибутива. Для их переиспользования со вторым вариантом к команде docker compose необходимо добавить флаги -f docker-compose-with-secrets.yml --env-file secrets.env.
Добавление SSL-сертификатов и HTTPS в панель управления¶
-
В файле конфигурации
docker-compose.ymlдля блока настроек панели управления добавьте блокvolumesи в блокеportsукажите маппинг для порта443. -
В директории с файлом конфигурации
docker-compose.ymlсоздайте директорииdashboard/conf.dиdashboard/certs. - В директории
dashboard/certsдобавьте сертификаты вида<cert_name>.crtи<cert_name>.key. -
В директории
dashboard/conf.dсоздайте файлhttps.confсо следующей конфигурацией:
Завершение работы¶
Для завершения работы и очистки томов (флаг -v) выполните команду:
Для удаления неименованных томов выполните команду:
Использование fuchsiactl¶
Предупреждение
Консольный клиент fuchsiactl предназначается для прямого доступа к сервису сканирования fuchsiad.
В будущем он будет заменен новым клиентом solidpoint-cli, который обращается к панели управления.
Консольным клиентом fuchsiactl можно пользоваться, добавив следующий алиас для запуска его внутри контейнера:
После этого можно использовать консольный клиент, например, набрав команду:
Монтирование файлов для сканера¶
Директория fuchsiad/files/ в корне дистрибутива примонтирована внутри контейнера fuchsiad в директорию /files.
Запуск сканирования¶
Использование OpenAPI-спецификации¶
Находясь в корневой директории дистрибутива, переместите файлы OpenAPI-спецификации в директорию fuchsiad/files/, например:
Далее используйте fuchsiactl для запуска сканирования, указывая необходимые файлы относительно директории /files, например:
fuchsiactl scan --url http://example.com --file "openapi-hars-generator:OpenAPISpec@/files/spec.json"
Использование клиентского TLS-сертификата¶
fuchsiactl scan --url https://example.com --file=@proxy:CERT.crt@/files/somecrt.crt --file=@proxy:CERT.key@/files/somecrt.key
Сервис генерации отчётов о сканировании¶
Важно
Сервис генерации отчётов о сканировании рекомендуется запускать в изолированной среде (на отдельной машине), поэтому для службы создания отчётов о проверке используются профили Docker Compose.
Переменные окружения сервиса:
| Имя переменной | Значение по умолчанию | Описание |
|---|---|---|
SCAN_REPORT_GENERATOR_ADDR |
scan-report-generator |
Имя сервиса генерации отчётов, отображаемое во внутренней сети Docker Compose. В процессе развёртывания необходимо изменить на используемый адрес |
SCAN_REPORT_GENERATOR_PORT |
9090 |
Порт машины, на которой развёрнут сервис генерации отчётов. В процессе развёртывания необходимо изменить, если используется порт не по умолчанию |
SCAN_REPORT_GENERATOR_STATE_DIRECTORY |
/var/lib/solidpoint/scan-report-generator/home |
Указывает директорию, в которой хранятся файлы, связанные с отчётами |
SCAN_REPORT_GENERATOR_LOGS_FILE |
Не задано | Если значение задано, то записи журнала сервиса генерации отчётов о сканировании дублируются в указанный файл |
Существует два способа развертывания с помощью Docker Compose:
-
Использование конфигурации Docker Compose для сервиса
scan-report-generatorдля развёртывания на отдельной машине (рекомендуется).Загрузите из хранилища архивов конфигурацию вида
solidpoint-compose-v{RELEASE}.tgz, гдеRELEASE— необходимая версия.На отдельной машине загрузите из хранилища архивов конфигурацию вида
solidpoint-compose-generator-v{RELEASE}.tgz, гдеRELEASE— необходимая версия.
-
Запуск всех сервисов на одной машине (не рекомендуется).
Загрузите из хранилища архивов конфигурацию вида
solidpoint-compose-v{RELEASE}.tgz, гдеRELEASE— необходимая версия.