Установка
Пошаговое руководство по развертыванию Auditor
Last updated
Пошаговое руководство по развертыванию Auditor
Last updated
Минимальные системные ресурсы: 16 ГБ ОЗУ и 4 ядра ЦПУ.
Свободное дисковое пространство для установки и хранения данных Auditor.
Доступ по сети до и от Security Center и к месту расположения вашего актива (месту расположения сканируемого продукта).
Для улучшения стабильности работы рекомендуется устанавливать Auditor и Security Center на разных машинах (физических или виртуальных)
Перед установкой Auditor убедитесь, что на вашем компьютере установлено следующее программное обеспечение:
Тип установки с использованием контейнеров:
Docker (версия 19.03 или выше)
Docker Compose (версия 1.26 или выше)
SSH-ключи (для установки через GitLab CI)
Установке с среде Kubernetes:
Helm сконфигурирован с кластером Kubernetes
Чтобы безопасно подключиться к серверу Linux, вам нужно настроить SSH-ключи.
Если у вас еще нет SSH-ключей, вы можете сгенерировать их с помощью следующей команды в терминале сервера:
ssh-keygen
При копировании ключей убедитесь, что они скопированы без пробелов.
Установка SSH-ключа на сервер
После генерации SSH-ключей вам нужно скопировать открытый SSH-ключ на сервер Linux. Используйте эту команду для копирования открытого ключа:
ssh-copy-id <имя_пользователя>@<ip-адрес_сервера>
Замените <имя_пользователя> на имя пользователя вашей учетной записи Linux-сервера, а <ip-адрес_сервера> на IP-адрес Linux-сервера. Вам будет предложено ввести пароль для аутентификации.
Откройте на локальной машине файл, в котором хранится закрытый SSH-ключ. Закрытый ключ обычно сохраняется с расширением .pem или .ssh.
Выберите и скопируйте содержимое файла закрытого ключа. Убедитесь, что вы скопировали ключ с правильными разрешениями и разрывами строк.
Вариант 1: Установка с помощью Helm (установка в среде Kubernetes)
Вариант 2: Установка с помощью Docker-compose (ручная установка docker-compose)
Перед использованием установите менеджер пакетов "Helm" для Kubernetes и сконфигурируйте подключение к кластеру
Шаг 1: Добавьте пакет Helm
Добавьте на локальный компьютер пакет Helm:
helm repo add auditor https://gitlab.com/api/v4/projects/60862707/packages/helm/stable
Шаг 2: Задайте переменные окружения
Задайте актуальную версию приложения:
global.image.tag=1.0.0
Задайте переменные для подключения к СУБД PostgreSQL:
Для использования базы данных внутри Kubernetes-кластера требуются следующие переменные:
postgresql.containerPorts.postgresql="5432"
postgresql.auth.database="postgres"
postgresql.auth.username="postgres"
postgresql.auth.password="postgres"
Для подключения внешней базы данных требуется задать следующие переменные:
externalPostgresql.enabled="true"
externalPostgresql.host=""
externalPostgresql.port="5432"
externalPostgresql.database=""
externalPostgresql.username=""
externalPostgresql.password=""
При использовании внешней системы хранения паролей требуется указать следующие переменные:
externalPostgresql.existingSecret: ""
externalPostgresql.existingSecretPasswordKey: ""
Где externalPostgresql.existingSecret - заранее созданный Kubernetes-секрет, externalPostgresql.existingSecretPasswordKey - ключ, по которому можно получить значения паролей.
Задайте переменные для подключения к СУБД Redis:
redis.auth.password="11110000"
Для использовании развернутого вне кластера Redis требуется задать следующие переменные:
externalRedis.enabled="true"
externalRedis.host=""
externalRedis.password=""
При использовании внешней системы хранения паролей требуется указать следующие переменные:
externalRedis.existingSecret=""
externalRedis.existingSecretPasswordKey=""
Задайте переменные для подключения к брокеру сообщений RabbitMQ:
rabbitmq.containerPorts.amqp="5672"
rabbitmq.auth.username="admin"
rabbitmq.auth.password="admin"
Для использовании развернутого вне кластера RabbitMQ требуется задать следующие переменные:
externalRabbitmq.enabled="true"
externalRabbitmq.host=""
externalRabbitmq.port:=5672"
externalRabbitmq.username=""
externalRabbitmq.password=""
При использовании внешней системы хранения паролей требуется указать следующие переменные:
externalRabbitmq.existingPasswordSecret=""
externalRabbitmq.existingSecretPasswordKey=""
Шаг 3: Развертывание приложения в кластер Kubernetes
В примере по умолчанию мы используется установленный ранее ingress controller "nginx" и PostgreSQL и RabbitMQ из Helm чарта:
helm install auditor auditor/appsecauditor --set postgresql.enabled=true
--set ingress.enabled=true --set ingress.annotations."nginx\.ingress\.kubernetes\.io\/scheme"=internet-facing
--set ingress.annotations."nginx\.ingress\.kubernetes\.io\/target\-type"=ip
--set ingress.ingressClassName=nginx --set ingress.host=your_own_host -n <namespace>
После первого входа вы получите Access Token
.
Скопируйте и задайте переменную Access Token, затем перезапустите службу scanner_worker.
kubectl get deployments -n <namespace>
kubectl delete deployment <scanner_runner> -n <namespace>
helm upgrade auditor auditor/appsecauditor --set postgresql.enabled=true
--set ingress.enabled=true --set ingress.annotations."nginx\.ingress\.kubernetes\.io\/scheme"=internet-facing
--set ingress.annotations."nginx\.ingress\.kubernetes\.io\/target\-type"=ip
--set ingress.ingressClassName=nginx --set configs.secret.access_token=your_token --set ingress.host=your__own_host -n <namespace>
Сохраните значение Access Token в безопасном месте для дальнейшего использования при настройке Auditor
Шаг 1: Клонируйте репозиторий
Клонируйте репозиторий Auditor на свой сервер:
git clone https://gitlab.com/cybercodereview/auditor.git auditor
Шаг 2: Перейдите в корневой каталог
Перейдите в корневой каталог проекта Auditor, выполнив следующую команду:
cd auditor
Шаг 3: Задайте переменные окружения
Переменные окружения установлены по умолчанию. Если необходимо внести изменения, создайте файл .env
в корневой папке проекта.
Пример файла .env:
DB_NAME=postgres
DB_USER=postgres
DB_PASS=postgres
DB_HOST=postgres
DB_PORT=5432
RABBITMQ_DEFAULT_USER=admin
RABBITMQ_DEFAULT_PASS=mypass
AMQP_HOST_STRING=amqp://admin:mypass@rabbitmq:5672/
DOCKER_ENCRYPTION_TOKEN=defaultvaluetobechangedorelse...
ACCESS_TOKEN=<your value>
IMAGE_VERSION=1.0.0
DB_NAME
, DB_USER
, DB_PASS
, DB_HOST
, DB_PORT
переменные, необходимые для настройки базы данных.
Если брокер сообщений размещен на стороннем сервере, то только переменная AMQP_HOST_STRING
должна быть задана. Однако если контейнер поднимается локально, то все три переменные, включая RABBITMQ_DEFAULT_USER
и RABBITMQ_DEFAULT_PASS
должны быть заданы.
Имя пользователя и пароль в переменных RABBITMQ_DEFAULT_PASS
и RABBITMQ_DEFAULT_USER
должны быть такими же, как в переменной AMQP_HOST_STRING
.
DOCKER_ENCRYPTION_TOKEN
эта переменная необходима при доступе к образам из приватного репозитория. Если ваш репозиторий требует аутентификации, укажите здесь соответствующий токен шифрования.
ACCESS_TOKEN
: После первого запуска Auditor (шаг 4) вы получите значение токена доступа. Вы должны скопировать его и поместить эту переменную и ее значение в файл .env
.
IMAGE_VERSION
: эта переменная указывает версию образов Docker для запуска.
Шаг 4. Запустите Auditor
В командной строке терминала перейдите в каталог, где находится файл docker-compose.yml
.
Запустите приложение, выполнив следующую команду:
docker-compose up -d
Это запустит все службы, описанные в файле docker-compose.yml, в фоновом режиме.
После успешного выполнения команды docker-compose up -d ваше приложение должно быть доступно на порту, указанном в конфигурации.
После первого запуска вы получите Access Token
.
Скопируйте его и задайте в файле .env в качестве значения переменной ACCESS_TOKEN
(шаг 3)
После добавления переменной необходимо перезапустить службу из командной строки с помощью команды:
docker-compose down
docker-compose up -d
Сохраните значение ключа в безопасном месте для последующего использования в настройках Auditor