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

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

Примечание

Все действия, описанные в данном разделе, необходимо производить от пользователя 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.08 или 2022.12. В этом случае будет команда будет выглядеть следующим образом:

    docker pull cr.yandex/crp8p3a3l1ri2431n3ce/release/wizard:2022.12
    

Установка без наличия доступа к внешнему репозиторию 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.08 или 2022.12.

    Пример запуска контейнера с одним volume для файлов конфигурации (при доступе по HTTP):

    docker run -i -t -v /opt/stingray:/opt/docker-files cr.yandex/crp8p3a3l1ri2431n3ce/release/wizard:latest
    

    Примечание

    Версия релиза может быть указана двумя способами. Если она указана как latest, будет использована версия последнего релиза Стингрей. Пожалуйста, уточняйте эту информацию у вендора или на официальном сайте. Также может быть указана версия конкретного релиза, например, 2022.08 или 2022.12.

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

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