Skip to Content
ДиспетчерУстановка и обновлениеНастройки безопасности

Настройки безопасности

В данном разделе описаны требования безопасности и элементы конфигурации, связанные с функциями безопасности платформы НТБот.

Настройки для серверного развёртывания (Диспетчер)

После установки платформы необходимо заменить значения по умолчанию во всех компонентах. Файлы конфигурации сервисов хранятся в модуле config-service по пути config-service/src/main/resources/config/ по схеме <имя-сервиса>-podman.yml.

Keycloak

ПараметрГде изменитьОписание
KC_BOOTSTRAP_ADMIN_USERNAME / KC_BOOTSTRAP_ADMIN_PASSWORDdocker-compose.ymlУчётные данные первоначального администратора Keycloak. Необходимо изменить пароль сразу после первого входа в Admin Console.
Пароль пользователя dispatcheradminAdmin Console → UsersВстроенный пользователь приложения. Заменить пароль при первом входе.
KEYCLOAK_CLIENT_SECRETdocker-compose.yml (env) → api-gateway-service-podman.ymlspring.security.oauth2.client.registration.ntdispatcher.client-secretСекрет клиента OAuth2. Сформировать новый в Keycloak Admin Console → Clients → ntdispatcher → Credentials.

Настройка политик паролей и сессий выполняется в Keycloak Admin Console:

  • Realm Settings → Security Defenses — защита от bruteforce-атак
  • Realm Settings → Sessions — длительность пользовательской сессии
  • Authentication → Policies — сложность пароля

API Gateway (TLS / SSL)

Все подключения к платформе должны осуществляться по HTTPS. В контейнерной поставке API Gateway использует PKCS12-хранилище ключей:

# api-gateway-service-podman.yml server: ssl: key-store: /opt/ssh/ntdispatcher.p12 key-store-type: PKCS12 key-store-password: <пароль> # заменить значение по умолчанию key-alias: ntdispatcher

Для продуктивной среды необходимо:

  1. Заменить самоподписанный сертификат доверенным (от корпоративного CA или публичного CA).
  2. Установить надёжный пароль для хранилища ключей вместо значения по умолчанию.
  3. Поместить файл .p12 в защищённую директорию /opt/ssh/ с правами только для пользователя службы.

PostgreSQL

ПараметрГде изменитьОписание
POSTGRES_PASSWORDdocker-compose.ymlПароль суперпользователя PostgreSQL.
spring.datasource.password<сервис>-podman.yml (все сервисы с БД)Пароль пользователя nt_dispatcher. Изменить в конфигах всех сервисов, использующих БД (launcher-service, scenario-service, project-service, statistic-service и др.).

В продуктивной среде порт PostgreSQL (5432) должен быть закрыт для внешнего доступа.

InfluxDB

ПараметрГде изменитьОписание
app.influx.db.tokenapplication-podman.ymlТокен доступа к InfluxDB. Заменить токен по умолчанию.

MinIO (хранилище артефактов)

ПараметрГде изменитьОписание
ntbot.dispatcher.minio.accessKeyapplication-podman.ymlЛогин MinIO.
ntbot.dispatcher.minio.secretKeyapplication-podman.ymlПароль MinIO.

Порт MinIO (9000) должен быть закрыт для внешнего доступа.

Внутренний секрет сервисов

# application-podman.yml app: clientSecret: <значение> # секрет для межсервисных запросов токенов Keycloak — заменить

Сетевые порты

В продуктивной среде внешний трафик терминируется на nginx (reverse proxy). Открывать для внешнего доступа следует только необходимые порты:

ПортПротоколКомпонентНазначениеВнешний доступ
4433HTTPSnginx (reverse proxy)Web-интерфейс + APIДа
3001HTTPSnginx (reverse proxy)Дополнительная точка входаДа
8761HTTPEurekaРеестр сервисовНет
8081HTTPConfig ServiceЦентральная конфигурацияНет
8086HTTPInfluxDBМетрикиНет
9200HTTPMinIO (API)Объектное хранилищеНет
9201HTTPMinIO (Console)Консоль управления MinIOНет
5432TCPPostgreSQLСУБДНет
9092–9093TCPKafkaБрокер сообщенийНет
2181 / 2888 / 3888TCPZookeeperКоординация KafkaНет
8080 / 8443 / 9000HTTP / HTTPSKeycloakАутентификация (внутри сети)Нет

Проверка состояния сервисов

Для проверки фактического состояния всех компонентов платформы выполните команду в CLI из директории проекта, где находится docker-compose.yml:

sudo docker ps -a

Проверьте колонку STATUS. При штатной работе все сервисы должны иметь статус healthy.

Вывод команды docker ps -a

КонтейнерОжидаемый статус
ntdispatcher-nginxhealthy
ntdispatcher-api-gatewayhealthy
ntdispatcher-keycloakhealthy
ntdispatcher-launcher-servicehealthy
ntdispatcher-generator-servicehealthy
ntdispatcher-scenario-servicehealthy
ntdispatcher-schedule-servicehealthy
ntdispatcher-project-servicehealthy
ntdispatcher-statistic-servicehealthy
ntdispatcher-artefact-storage-servicehealthy
ntdispatcher-license-servicehealthy
ntdispatcher-config-servicehealthy
ntdispatcher-eureka-servicehealthy
ntdispatcher-psqlhealthy
ntdispatcher-influxdbhealthy
ntdispatcher-miniohealthy
ntdispatcher-kafkahealthy
ntdispatcher-zookeeperhealthy

Запуск от непривилегированной учётной записи

Keycloak рекомендует запускать сервер от непривилегированной учётной записи операционной системы. Контейнеры Docker следует запускать без флага --privileged и с явным указанием пользователя через user: в docker-compose.yml.


Настройки для развёртывания на рабочей станции (Студия НТБот)

Студия НТБот — клиентское настольное приложение. При установке на рабочую станцию применяются следующие требования безопасности.

Учётная запись пользователя

  • Студия НТБот должна устанавливаться и запускаться от имени стандартной (непривилегированной) учётной записи пользователя.
  • Не требует прав администратора для обычной работы после установки.

Соединение с Диспетчером

  • Подключение к Диспетчеру выполняется исключительно по протоколу HTTPS.
  • Для корректной работы необходимо, чтобы SSL-сертификат Диспетчера был выпущен доверенным центром сертификации (CA), добавленным в системное хранилище доверенных сертификатов рабочей станции.
  • Самоподписанные сертификаты допускаются только в тестовой среде.

Файлы конфигурации

  • Файлы конфигурации Студии НТБот, содержащие параметры подключения, хранятся в директории данных приложения пользователя.
  • Пароли пользователей не сохраняются в конфигурационных файлах; аутентификация осуществляется через Keycloak (OAuth2 / OIDC).
  • Доступ к директории конфигурации ограничивается средствами ОС правами текущего пользователя.

Антивирусная защита

Платформа НТБот совместима с корпоративными системами антивирусной защиты (САВЗ). Установка и работа приложения не требуют изменения политик САВЗ и отключения антивирусного контроля.

Обновлено: