Установка

Пошаговое руководство по развертыванию Auditor

Системные требования для использования Auditor:

  • Минимальные системные ресурсы: 4 ГБ ОЗУ и 2 ядра ЦПУ.

  • Свободное дисковое пространство для установки и хранения данных Auditor.

  • Доступ по сети до и от Security Center и к месту расположения вашего актива (месту расположения сканируемого продукта).

Для улучшения стабильности работы рекомендуется устанавливать Auditor и Security Center на разных машинах (физических или виртуальных)

Подготовка

Перед установкой Auditor убедитесь, что на вашем компьютере установлено следующее программное обеспечение:

Тип установки с использованием контейнеров:

Установке с среде Kubernetes:

  • Helm сконфигурирован с кластером Kubernetes

Создание SSH-ключей

Чтобы безопасно подключиться к серверу Linux, вам нужно настроить SSH-ключи.

Если у вас еще нет SSH-ключей, вы можете сгенерировать их с помощью следующей команды в терминале сервера:

ssh-keygen

⚠️ При копировании ключей убедитесь, что они скопированы без пробелов.

Установка SSH-ключа на сервер

После генерации SSH-ключей вам нужно скопировать открытый SSH-ключ на сервер Linux. Используйте эту команду для копирования открытого ключа:

ssh-copy-id <имя_пользователя>@<ip-адрес_сервера>

Замените <имя_пользователя> на имя пользователя вашей учетной записи Linux-сервера, а <ip-адрес_сервера> на IP-адрес Linux-сервера. Вам будет предложено ввести пароль для аутентификации.

Откройте на локальной машине файл, в котором хранится закрытый SSH-ключ. Закрытый ключ обычно сохраняется с расширением .pem или .ssh.

Выберите и скопируйте содержимое файла закрытого ключа. Убедитесь, что вы скопировали ключ с правильными разрешениями и разрывами строк.

Установка

Установка GitLab CI (Ansible playbook)

Шаг 1. Сделайте форк репозитория Auditor на GitLab.

Сделайте форк репозитория Auditor на GitLab. Это создаст копию репозитория под вашей учетной записью GitLab.

Шаг 2. Установите открытый SSH-ключ на хосте

Установите безопасное соединение между хостом и хранилищем, задав открытый SSH-ключ.

Шаг 3. Настройте переменные окружения GitLab CI/CD

В GitLab перейдите в раздел "Settings" > "CI / CD" > "Variables" и настройте следующие переменные окружения:

  • SSH_KEY_PRIVATE: Задает приватный SSH-ключ в форк-репозитории для аутентификации.

  • ACCESS_TOKEN: Задает значение Access Token, которое вы получите после первого запуска CI Pipeline (шаг 9).

Необязательные переменные окружения:

  • IMAGE_VERSION: Скрипт самостоятельно определит последнюю версию.

  • DB_NAME, DB_USER, DB_PASS, DB_HOST, DB_PORT: Требуется для настройки базы данных.

  • RABBITMQ_DEFAULT_USER, RABBITMQ_DEFAULT_PASS, AMQP_HOST_STRING: Конфигурация брокера сообщений.

    Имя пользователя и пароль в переменных RABBITMQ_DEFAULT_PASS и RABBITMQ_DEFAULT_USER должны быть такими же, как в переменной AMQP_HOST_STRING.

Шаг 4. Обновите файл Hosts

В файле hosts хранилища укажите имя группы и IP-адрес узлов, на которых будет установлен Auditor:

[prod_seccenter] - имя группы 206.189.63.52 - IP-адрес

Шаг 5. Обновите переменные в prod_seccenter.yml

Обновите переменные в файле prod_seccenter.yml в каталоге group_vars

ansible_user: root 
ansible_ssh_private_key : ~/.ssh/id_rsa
work_dir: /opt

ansible_user: Укажите пользователя, которого Ansible должен использовать при подключении к серверу ansible_ssh_private_key: Укажите путь к закрытому SSH-ключу для аутентификации work_dir: Рабочая директория на целевом сервере, куда будет установлено приложение

Шаг 6. Выполните коммит изменений

После обновления файла hosts и group_vars/prod_seccenter.yml зафиксируйте изменения в вашем репозитории GitLab

Шаг 7. Запустите GitLab CI Pipeline

В разделе GitLab CI/CD > Pipelines вы должны увидеть pipeline, выполняющий задание развертывания.

Шаг 8. Контролируйте процесс установки

После запуска pipeline нажмите на задание развертывания, чтобы просмотреть журналы. Будет выполнен плейбук Ansible, который развернет Auditor на указанном хосте.

Шаг 9. Добавьте Access Token

Теперь ваше приложение должно быть доступно на порту, указанном в конфигурации.

После первого запуска вы получите Access Token.

Скопируйте значение Access Token и добавьте его в переменные CI/CD на GitLab

ACCESS_TOKEN: ваше значение

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

docker-compose down
docker-compose up -d

Сохраните значение ключа в безопасном месте для последующего использования в настройках Auditor

Установка с использованием Helm

Перед использованием Helm убедитесь, что Helm установлен на вашем компьютере и что ваш кластер Kubernetes настроен на работу с Helm

Шаг 1. Добавьте пакет helm

Добавьте пакет Auditor на ваш сервер:

helm repo add auditor https://gitlab.com/api/v4/projects/51993931/packages/helm/stable

Шаг 2. Установите переменные окружения

в файле values.yaml измените значения переменных окружения по умолчанию, чтобы они соответствовали вашим требованиям:

  • В разделе deploymentSpec:

    global.image.tag=release_v24.04.1
  • В разделе configMap:

  configs.configMap.database.host=your_db_host
  configs.configMap.redis.host=your_redis_host
  postgresql.auth.database=scenter
  postgresql.auth.username=scenter
  postgresql.containerPorts.postgresql=5432
  configs.configMap.database.host=your_db_host
  rabbitmq.auth.username=admin           
  rabbitmq.containerPorts.amqp=5672 
  • В разделе secrets:

  postgresql.auth.password=scenter
  rabbitmq.auth.password=admin
  redis.auth.password="11110000"

global.image.tag: укажите конкретный идентификатор релиза. postgresql.auth.database, postgresql.auth.username, configs.configMap.database.host, postgresql.containerPorts.postgresql и postgresql.auth.password переменные, необходимые для настройки базы данных. Для брокера сообщений rabbitmq.auth.username, rabbitmq.auth.password и rabbitmq.containerPorts.amqp переменные должны быть указаны. redis.auth.password Если брокер размещен на стороннем сервере, оставьте переменную в значении по умолчанию.

Шаг 3. Установка Helm со всеми ресурсами внутри кластера

В примере мы используем предустановленный контроллер nginx ingress и postgres, redis, rabbitmq из чарта:

helm install auditor auditor/securityauditor --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.

Скопируйте и установите в качестве переменной токен и перезапустите службу scanner_worker.

kubectl get deployments -n <namespace>
kubectl delete deployment <scanner_runner> -n <namespace>
helm upgrade auditor auditor/securityauditor --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>

Сохраните значение ключа в безопасном месте для последующего использования в настройках Auditor

Установка с помощью Docker-compose

Шаг 1: Клонируйте репозиторий

Клонируйте репозиторий Auditor на свой сервер:

git clone https://gitlab.com/smlsecurity/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>
  • 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.

Шаг 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

Last updated