Перейти к содержанию

Установка Стингрей

Примечание

Все действия, описанные в данном разделе, необходимо производить от пользователя root.

Подготовка инфраструктуры

  1. Необходимо убедиться, что 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"
    
  2. Установить требуемые пакеты:

    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
    
  3. Установите Docker и Docker-compose, если это не было сделано заранее. Рекомендации по установке можно найти на официальном сайте:

  4. Создайте группы и пользователей.

    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

  1. Авторизуйте 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-образам компании Стингрей Технолоджиз предоставляется при покупке лицензии Стингрей.

  2. Загрузите специальный 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

  1. При отсутствии доступа к внешнему репозиторию docker-образов образы поставляются в виде выгруженных tar-архивов. Для доступа к данным архивам необходимо запросить их у поставщика продукта.

  2. После того, как архивы загружены и перенесены на сервер Стингрей, необходимо их импортировать в docker. Для этого выполните следующую команду для всех полученных архивов:

    docker load -i <archive_name>.tar
    

Настройка системы

  1. Создайте директорию, где будут располагаться конфигурационные файлы Стингрей, к примеру директорию /opt/stingray.

  2. При необходимости использования HTTPS соединения создайте директорию, где будут располагаться файл полной цепочки сертификатов (например, /opt/certs) и закрытого ключа, скопируйте файлы сертификата и закрытого ключа и назовите их в соответствии с требованиями:

    • fullchain.pem — полная цепочка сертификатов;
    • privkey.pem — приватный ключ.
  3. Запустите 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.

  4. После выполнения обновления настроек через новый Wizard необходимо проверить наличие директорий на хостовой системе:

    service/android/Stingray.avd
    service/android/api30/AndroidSdk/
    
  5. Для работы сервиса MARIVANNA в файле settings/prod.env необходимо указать корректные данные.

    MARIVANNA_CLIENT_ID
    MARIVANNA_CLIENT_SECRET
    MARIVANNA_BASE_URL
    STINGRAY_SERVICES_AUTH_URL
    
  6. Для корректной работы центра лицензирования:

    STINGRAY_LICENSE_CENTER_PUBLIC_KEY=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAun4nI9ETYpDUPQ/TkudHBkcjveHFG1N6s1SQS8MeoSpWKsnY5xGU4lKAlFgvMJMr+eAiyQSKvLRL9dJxUxexlQpoCJpf0lcf/Aq21qUI+k4sfSxMY+iWSPGDH16EpUeOMK0xHPKmVm/EoaF85mbWCaxrZcnFjGgCE0HMx+Pqv6qEEqXj86UTXNFuDqZd5xsEnMaoCYlBc1xvjz0rHWEQr9rNGt5EMw97gmD2DRDc+qMmux2S3wI5t9BG2kHgpqaunyMGPiwAcQrmgH44sxgHv1iDwPd/QmG9DkvTjuMxOqVX63sKxP4HF3FmIXaiWw3VEDBTziD1K/3I5mVv2jdxGwIDAQAB
    

После запуска docker-контейнера в интерактивном режиме необходимо заполнить ряд параметров.

Параметр Описание Значение по умолчанию
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 Осуществляет управление контейнерами — проверку статусов, перезагрузку, запуск и остановку
К началу