Установка Стингрей
Примечание
Все действия, описанные в данном разделе, необходимо производить от пользователя root.
Подготовка инфраструктуры
-
Необходимо убедиться, что CPU имеет поддержку технологии аппаратной виртуализации (Intel Virtualization Technology (VT, VT-x, vmx) или AMD Virtualization (AMD-V, SVM)), выполнив команды:
sudo apt-get install cpu-checker kvm-ok
cat /proc/cpuinfo| egrep "vmx|svm"
-
Установить требуемые пакеты:
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager
sudo yum install qemu-kvm libvirt libvirt-python3 libguestfs-tools virt-install
-
Установите Docker и Docker-compose, если это не было сделано заранее. Рекомендации по установке можно найти на официальном сайте:
-
Создайте группы и пользователей.
groupadd --system --gid 171 kvm groupadd --gid 1717 emulator useradd --uid 1717 --gid emulator --groups kvm emulator
Если группа kvm уже существует, то вместо первой строки выполнить следующее:
groupmod --gid 171 kvm chgrp kvm /dev/kvm
Установка при наличии доступа к внешнему репозиторию docker-образов YCR
-
Авторизуйте docker на доступ к репозиторию YCR docker-образов:
cat stingray-numeric_id.json | docker login --username json_key --password-stdin cr.yandex
Ключ
stingray-numeric_id.json
для подключения к Yandex Container Registry (YCR) docker-образам компании Стингрей Технолоджиз предоставляется при покупке лицензии Стингрей. -
Загрузите специальный docker-образ для подготовки конфигурационных файлов командой:
docker pull cr.yandex/crp8p3a3l1ri2431n3ce/release/wizard:latest
Примечание
Версия релиза может быть указана двумя способами. Если она указана как
latest
, будет использована версия последнего релиза Стингрей. Пожалуйста, уточняйте эту информацию у вендора или на официальном сайте. Также может быть указана версия конкретного релиза, например 2022.12 или 2023.10. В этом случае команда будет выглядеть следующим образом:docker pull cr.yandex/crp8p3a3l1ri2431n3ce/release/wizard:2023.10
Установка без наличия доступа к внешнему репозиторию docker-образов YCR
-
При отсутствии доступа к внешнему репозиторию docker-образов образы поставляются в виде выгруженных tar-архивов. Для доступа к данным архивам необходимо запросить их у поставщика продукта.
-
После того, как архивы загружены и перенесены на сервер Стингрей, необходимо их импортировать в docker. Для этого выполните следующую команду для всех полученных архивов:
docker load -i <archive_name>.tar
Настройка системы
-
Создайте директорию, где будут располагаться конфигурационные файлы Стингрей, к примеру директорию /opt/stingray.
-
При необходимости использования HTTPS соединения создайте директорию, где будут располагаться файл полной цепочки сертификатов (например,
/opt/certs
) и закрытого ключа, скопируйте файлы сертификата и закрытого ключа и назовите их в соответствии с требованиями:- fullchain.pem — полная цепочка сертификатов;
- privkey.pem — приватный ключ.
-
Запустите docker-контейнер для подготовки конфигурации.
Пример запуска контейнера с двумя подключенными volumes для файлов конфигурации и с сертификатами (при доступе по HTTPS):
docker run -i -t -v /opt/stingray:/opt/docker-files -v /opt/certs:/opt/nginx/certs cr.yandex/crp8p3a3l1ri2431n3ce/release/wizard:latest
Примечание
Версия релиза может быть указана двумя способами. Если она указана как
latest
, будет использована версия последнего релиза Стингрей. Пожалуйста, уточняйте эту информацию у вендора или на официальном сайте. Также может быть указана версия конкретного релиза, например 2022.12 или 2023.10.Пример запуска контейнера с одним volume для файлов конфигурации (при доступе по HTTP):
docker run -i -t -v /opt/stingray:/opt/docker-files cr.yandex/crp8p3a3l1ri2431n3ce/release/wizard:latest
Примечание
Версия релиза может быть указана двумя способами. Если она указана как
latest
, будет использована версия последнего релиза Стингрей. Пожалуйста, уточняйте эту информацию у вендора или на официальном сайте. Также может быть указана версия конкретного релиза, например 2022.12 или 2023.10.
После запуска контейнера в интерактивном режиме необходимо заполнить ряд параметров.
Параметр | Описание | Значение по умолчанию |
---|---|---|
STINGRAY_DOMAIN | Домен, на котором будет располагаться система для корректной настройки маршрутизации и обращения UI к нужному серверу | saas.stingray-mobile.ru |
IP_EXTERNAL | IP сервера, на который устанавливается Стингрей | 0.0.0.0 |
USE_SSL | Параметр, определяющий, будет ли проходить соединение через протокол http или https. При указании «1» приложение конфигурируется для использования 443 порта и проводит настройку для соединения по HTTPS (копируются из второго volume с сертификатами) | 0 |
POSTGRES_USER | Пользователь, с которым будет запущена база данных Postgres | stingray |
POSTGRES_PASSWORD | Пароль пользователя, с которым будет запущена база данных Postgres | P@ssw0rd |
RABBITMQ_DEFAULT_USER | Пользователь, с которым будет запущен брокер RabbitMQ | stingray |
RABBITMQ_DEFAULT_PASS | Пароль пользователя, с которым будет запущен брокер RabbitMQ | P@ssw0rd |
STINGRAY_DEBUG | Запустить сервер с расширенным выводом ошибок | 0 |
STINGRAY_LANGUAGE_CODE | Язык системы по умолчанию. Влияет на язык swagger и язык по умолчанию для вновь создаваемых языков | ru |
STINGRAY_TIME_ZONE | Временная зона для корректного отображения времени | Europe/Moscow |
STINGRAY_ACCESS_TOKEN_LIFETIME | Время жизни access_token в минутах | 60 |
STINGRAY_REFRESH_TOKEN_LIFETIME | Время жизни refresh_token в минутах | 1440 |
STINGRAY_CI_TOKEN_LIFETIME | Время жизни токена для интеграции в CI/CD | 525600 |
STINGRAY_COMPANY_NAME | Название компании | Company Name |
STINGRAY_SUPERUSER_USERNAME | Имя пользователя с ролью Супер администратора | admin |
STINGRAY_SUPERUSER_PASSWORD | Пароль пользователя с ролью Супер администратора | admin |
STINGRAY_CREATE_SAMPLES | Флаг, определяющий, нужно ли создавать сущности по умолчанию, которые задаются далее (проекты/профили, пользователей, сканирующие агенты/компания) | 1 |
STINGRAY_ADMIN_USERNAME | Имя пользователя с ролью Администратора компании | company_admin |
STINGRAY_ADMIN_PASSWORD | Пароль пользователя с ролью Администратора компании | 123 |
STINGRAY_AUDIT_USE | Включение/отключение аудита событий в системе | 1 |
STINGRAY_AUDIT_MAX_LENGTH | Максимальное количество записей в одном файле. После превышения заданного количества к концу файла добавляется постфикс (.1, .2 и т. д.), а новая информация записывается в стандартный файл без постфикса | 1000 |
STINGRAY_AUDIT_FILE_COUNT | Количество файлов, которое будет храниться в системе. При превышении количества файлов старые удаляются | 10 |
STINGRAY_ENGINE_LOG_TO_CONSOLE | Включение/отключение вывода логов агента сканирования в Docker Logs | 1 |
STINGRAY_LDAP_USE | Включение/отключение интеграции с LDAP | 0 |
NEO4J_AUTH | Логин и пароль, с которым будет запущена графовая СУБД Neo4j | neo4j/P0ssw0rd |
STINGRAY_SESSION_COOKIE_AGE | Время жизни сессии пользователя, после авторизации в административной части Стингрей (секунды) | 86400 |
В результате выполнения в директории /opt/stingray будут созданы все необходимые файлы для запуска.
Список контейнеров
Имя контейнера | Описание |
---|---|
stingray-nginx | Входная точка для обращений к backend и UI. Выполняет функции reverse-proxy |
stingray-backend | Backend приложения, отвечает за основную логику обработки пользовательских запросов и выдачу результатов |
stingray-rabbitmq | Менеджер очередей сканирования, управляет очередью сканирования |
stingray-postgres | База данных |
stingray-ui | Пользовательский интерфейс |
stingray-redis | Redis для промежуточного хранения оперативной информации |
engine-android | Сканирующий модуль для Android-проектов. Название контейнера может быть произвольным |
engine-ios | Сканирующий модуль для iOS-проектов. Название контейнера может быть произвольным |
stingray-knowledgebase | Контейнер, содержащий в себе информацию по устранению уязвимостей и документацию |
stingray-maintenance | Осуществляет управление контейнерами — проверку статусов, перезагрузку, запуск и остановку |