Установка

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

Системные требования для работы Security Center:

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

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

  • Сетевой доступ для внешних пользователей (пользователи должны иметь возможность подключаться к Security Center по сети).

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

Подготовка

Перед установкой Security Center, убедитесь что у вас установленные следующие компоненты (для установки с помощью Docker-compose):

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

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

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

ssh-keygen

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

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

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

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

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

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

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

Обратите внимание, что Security Center в настоящее время несовместим с базой данных Amazon Aurora.

Установка

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

Перед использованием установите менеджер пакетов "Helm" для Kubernetes и сконфигурируйте подключение к кластеру

Шаг 1: Добавьте пакет Helm

Добавьте на локальный компьютер пакет Helm:

helm repo add securitycenter https://gitlab.com/api/v4/projects/60704335/packages/helm/stable

Шаг 2: Задайте переменные окружения

Задайте актуальную версию приложения:

global.image.tag=1.0.0

Задайте значение Webhook для интеграции с Jira:

webhook.ingress.path="/api/v1/jira-helper/jira-event/<your-webhook>/"

Замените "your-webhook" в значении переменной на предварительно сгенерированный Webhook в Jira.

Задайте служебные переменные:

configs.configMap.cookies_secure="True"  
configs.configMap.debug="True"           
configs.configMap.domain="http://localhost"
configs.secret.jwt_private_key=<your key>
configs.secret.jwt_public_key=<your key>
configs.secret.secret_key=<your key>

configs.configMap.cookies_secure: переменная определяет флаг безопасной передачи cookies. Она должна быть установлена в значение True, если вы используете HTTPS.

Укажите в переменной configs.configMap.domain хост, по которому будет доступен Security Center.

Переменная configs.secret.jwt_private_key и configs.secret.jwt_public_key это пара ключей RSA, используемых для подписи ключей JWT

Переменная configs.secret.secret_key используется для генерации хэшей Django

Задайте переменные для подключения к базе данных:

configs.configMap.database.host=""     
postgresql.containerPorts.postgresql="5432"         
postgresql.auth.database="postgres"       
postgresql.auth.username="postgres"
postgresql.auth.password="postgres"

При использовании СУБД PostgreSQL предлагаемый в конфигурации по умолчанию оставьте значение перменной configs.configMap.database.host пустым.

Задайте переменные для подключения к брокеру сообщений RabbitMQ:

configs.configMap.rabbitmq.host=""
rabbitmq.containerPorts.amqp="5672"
rabbitmq.auth.username="admin"
rabbitmq.auth.password="mypass"

При использовании брокера сообщений RabbitMQ предлагаемый в конфигурации по умолчанию оставьте значение переменной configs.configMap.rabbitmq.host пустым.

Шаг 3: Развертывание приложения в кластер Kubernetes

В примере по умолчанию мы используется установленный ранее ingress controller "nginx" и PostgreSQL и RabbitMQ из Helm чарта:

helm install securitycenter securitycenter/securitycenter --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>

Шаг 4: Создайте пользователя с привилегированными правами

Для создания пользователя с привилегированными правами выполните следующие команды:

kubectl get pods -n <namespace>
kubectl exec -it -n <namespace> <securitycenter_pod> -c securitycenter -- /bin/sh 
python3 manage.py createsuperuser --username admin

Этот пользователь и пароль позволяют выполнить вход в установленный Security Center

Следующий шаг: Запустите Security Center и добавьте лицензию

Установка через Docker-compose

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

Клонируйте репозиторий Security Center на Ваш сервер:

git clone https://gitlab.com/cybercodereview/security-center.git security-center

Шаг 2: Перейдите в корневой каталог

Перейдите в корневой каталог проекта Security Center, выполнив следующую команду:

cd security-center

Шаг 3: Настройте переменные окружения

В корневом каталоге проекта Security Center выполните следующую команду:

./set_vars.sh

Сценарий запрашивает значения для следующих переменных окружения, включая необязательные. Вы также можете принять значения по умолчанию для необязательных переменных, нажав Enter:

DB_NAME{default=postgres}
DB_USER{default=postgres}
DB_PASS{default=postgres}
DB_HOST{default=postgres}
DB_PORT{default=5432}
RABBITMQ_DEFAULT_USER{default=admin}
RABBITMQ_DEFAULT_PASS{default=mypass}
AMQP_HOST_STRING{default=amqp://admin:mypass@rabbitmq:5672/}
COOKIES_SECURE{default=True}
DOMAIN=http://localhost
IMAGE_VERSION=latest
  • В переменной IMAGE_VERSION обязательно должна быть задана. Укажите версию приложения например 1.0.0 или latest и скрипт установит последнюю актуальную версию.

  • Переменная DOMAIN обязательно должна быть задана. Укажите домен, в котором будет доступен Security Center

  • 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.

  • Переменная COOKIES_SECURE определяет флаг безопасности cookie. Она должна иметь значение True при использовании HTTPS.

Скрипт set_vars.sh создает файл .env с настроенными переменными окружения и генерирует пару JWT-ключей, которые используются для подписи JWT-ключей, а SECRET_KEY используется для генерации хэшей в Django.

НЕ ЗАПУСКАЙТЕ команду ./set_vars.sh дважды. Если вам нужно изменить значение переменной, сделайте это в файле .env.

Шаг 4: Запустите Security Center

Чтобы запустить Security Center, выполните следующую команду:

sh run.sh

Шаг 5: Создайте учетную запись суперпользователя

Чтобы создать учетную запись администратора, выполните следующую команду:

docker-compose exec back python3 manage.py createsuperuser --username admin

Это имя пользователя и пароль позволят вам войти в установленный Security Center

или

Создайте пользователей с помощью панели администратора Django

Чтобы получить доступ к настройкам администратора, перейдите по URL-адресу <ваш-домен>.com/admin и войдите в систему, используя учетные данные суперпользователя, затем выберите Users на левой панели. Отсюда вы можете добавлять пользователей. Не забудьте назначить пользователям необходимые разрешения.

Следующий шаг: Запустите Security Center и добавьте лицензию

Поздравляем, вы завершили установку Security Center! Далее добавьте полученную лицензию.

Если у вас возникнут какие-либо вопросы или проблемы в процессе установки или использования приложения, обратитесь за помощью в нашу службу поддержки sales@cybercodereview.ru.

Last updated