Установка
Пошаговое руководство по развёртыванию Security Center
Системные требования для работы Security Center:
Минимальные системные ресурсы: 16 ГБ ОЗУ и 4 ядра ЦПУ.
Свободное дисковое пространство для установки и хранения данных Security Center.
Сетевой доступ для внешних пользователей (пользователи должны иметь возможность подключаться к Security Center по сети).
Для улучшения стабильности работы рекомендуется устанавливать Auditor и Security Center на разных машинах (физических или виртуальных)
Подготовка
Перед установкой Security Center, убедитесь что у вас установленные следующие компоненты (для установки с помощью Docker-compose):
Docker (версия 19.03 или выше)
Docker Compose (версия 1.26 или выше)
SSH-ключи (для установки через GitLab CI)
Создание 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.
Установка
Вариант 1: Установка с помощью Helm (установка в среде Kubernetes)
Вариант 2: Установка с помощью Docker-compose (ручная установка docker-compose)
Установка с использованием 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
Задайте переменные для подключения к базе данных:
Для использования базы данных внутри 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 - ключ, по которому можно получить значения паролей.
Задайте переменные для подключения к брокеру сообщений RabbitMQ:
rabbitmq.containerPorts.amqp="5672"
rabbitmq.auth.username="admin"
rabbitmq.auth.password="mypass"
Для использовании развернутого вне кластера 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 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.cybercodereview.ru/cybercodereview/security-center.git security-center
Шаг 2: Перейдите в корневой каталог
Перейдите в корневой каталог проекта Security Center, выполнив следующую команду:
cd security-center/
Шаг 3: Переместить файлы из папки docker-compose
В корневом каталоге проекта Security Center выполните следующую команду:
mv docker-compose/* ./
Шаг 4: Настройте переменные окружения
В корневом каталоге проекта 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=<актуальный тег>
В переменной
IMAGE_VERSION
обязательно должна быть задана. Укажите версию приложения, например, 1.0.0, и скрипт установит последнюю актуальную версию. Актуальный тег Вы можете найти в репозитории.Переменная
DOMAIN
обязательно должна быть задана. Укажите домен, в котором будет доступен Security CenterDB_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.
Шаг 5: Запустите Security Center
Чтобы запустить Security Center, выполните следующую команду:
docker compose up -d
Шаг 6: Создайте учетную запись суперпользователя
Чтобы создать учетную запись администратора, выполните следующую команду:
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