Перейти к основному содержимому
Версия: 1.7.5

Установка системы

Установка

Базовый сценарий установки при наличии доступа в Интернет

  1. Установите ORAS для получение из registry.lighthouse.rt-solar.ru скрипта установки

    • Если он у Вас уже установлен - проверьте версию

      • oras version
    • Если не установлен - выполните установку с помощью следующих команд

      • export ARCHIVE=oras_1.3.0_linux_amd64.tar.gz

      • curl -LO https://github.com/oras-project/oras/releases/download/v1.3.0/$ARCHIVE

      • tar -xzf $ARCHIVE

      • sudo mv oras /usr/local/bin/

  2. Уточните у команды поддержки актуальную версию скрипта и логин/пароль для аутентификации в Registry

    • export version=<версия поставки>
  3. Залогиньтесь в Registry

    • oras login registry.lighthouse.rt-solar.ru
  4. Скачайте архив со скриптом

    • oras pull registry.lighthouse.rt-solar.ru/lighthouse/release:$version
  5. Распакуйте новый архив

    • tar xf lighthouse_deploy_<version>.tar
  6. Перейдите в распакованный архив со свежей поставкой

    • cd lighthouse_deploy_${version}/output/
  7. Запустите интерактивный скрипт установки

    • ./install_lighthouse.sh ../configs/prod-all-in-one.yml
  8. Lighthouse запущен через Docker Compose

    • docker compose ps -a

Сценарий установки при отсутствии доступа в Интернет

Предварительный шаг (только для РЕДОС)

sudo dnf install zstd

  1. Поместите архивы с образами и скриптом установки на подготовленную виртуальную машину
  2. Разархивируйте файл с образами с помощью утилиты zstd

zstd -d lighthouse_core_images.tar.zst

  1. Загрузите образы из поставки в локальный registry

docker load -i lighthouse_core_images.tar

  1. Распакуйте архив установки

tar xf lighthouse_deploy_<version>.tar

  1. Перейдите в распакованный каталог

cd lighthouse_deploy_${version}/output/

  1. Запустите скрипт

SKIP_REGISTRY=true ./install_lighthouse.sh ../configs/prod-all-in-one.yml

В процессе выполнения скрипта необходимо будет уточнить следующую информацию:

  • Планируется ли использовать удаленный кипер (remote keeper). Удаленный кипер нужен для того, чтобы взаимодейстовать с закрытым сегментом сети, открыв с ядром только несколько портов для взаимодействия. Для этого укажите адрес кипера.
  • Планируется ли использовать внешнюю базу данных. Для этого укажите адрес внешней базы, логин и пароль, предварительно произведя ее настройку согласно описанию ниже.

Настройка удаленного кипера

Для настройки удаленного кипера Вам потребуется архив keeper.tar.gz. В случае выбора варианта использования удаленого кипера и успешного выполнения предыдущих шагов, он должен располагаться в каталоге /output. Если архив отсутствует, необходимо запросить его у команды поддержки.

В архиве содержится:

  • docker-compose.yml
  • .env
  • каталог ssl/ с нужными сертификатами

Далее необходимо:

  • Переместить архив на сервер, где будет располагаться удаленный keeper
  • Распаковать архив

tar xf keeper.tar.gz

  • В файле .env необходимо настроить переменные

vim .env

  • SERVER_IP (IP адрес ВМ с keeper)

  • REFLECTOR_IP (IP адрес основной ВМ с Lighthouse)

  • KEEPER_REGISTRY_LOGIN / KEEPER_REGISTRY_PASSWORD (логин / пароль для доступа в registry)

  • Авторизоваться в registry

echo 'ваш пароль' | docker login 'registry.lighthouse.rt-solar.ru' -u 'ваш пользователь' --password-stdin

  • Запустить контейнер

docker compose up -d

Настройка внешней базы данных

  • Создайте базы данных

CREATE DATABASE am;

CREATE DATABASE was_go;

CREATE DATABASE river_go;

  • Устанавливаем расширение postgres_fdw в базах am и was_go для работы с Asset Manager

\c am;

CREATE EXTENSION IF NOT EXISTS postgres_fdw;

\c was_go;

CREATE EXTENSION IF NOT EXISTS postgres_fdw;

Настройка переменных окружения

Основные настройки системы реализованы через возможность настроек переменных окружения в файле docker-compose.yaml. В таблице ниже представлен основной перечень переменных для настроек. Общий сценарий для внесения изменений:

  • Остановить контейнер docker;

  • Внести изменения;

  • Сохранить изменения;

  • Заново запустить docker compose up -d.

Таблица 1 - Перечень основных переменных окружения для настройки системы

ПеременнаяОписание
web-ui
VITE_APP_CORE_HOST_URLОпределяет базовый публичный URL основного backend/core-сервиса, который используется веб-приложением.
WEB_TLSВключает режим работы веб-интерфейса через TLS/HTTPS.
TLS_CERTОпределяет имя или путь к файлу TLS-сертификата, используемого веб-сервером для установки защищённого соединения.
TLS_KEYОпределяет имя или путь к файлу закрытого ключа TLS-сертификата, используемого веб-сервером для установки защищённого соединения.
PROXY_PASSОпределяет адрес backend-сервиса, на который веб-сервер проксирует входящие API-запросы.
asset-manager
AM_NAMEОпределяет имя сервиса asset-manager.
AM_VERSIONОпределяет версию сервиса asset-manager.
AM_ENVОпределяет окружение, в котором запущен сервис asset-manager.
AM_ADDRESS_SERVEОпределяет адрес и порт, на которых сервис asset-manager принимает входящие соединения.
AM_DB_HOSTОпределяет адрес хоста базы данных, используемой сервисом asset-manager.
AM_DB_PORTОпределяет порт подключения к базе данных, используемой сервисом asset-manager.
AM_DB_USERОпределяет имя пользователя для подключения сервиса asset-manager к базе данных.
AM_DB_PASSWORDОпределяет пароль пользователя для подключения сервиса asset-manager к базе данных.
AM_DB_NAMEОпределяет имя базы данных, используемой сервисом asset-manager.
AM_MAX_OPEN_CONNSОпределяет максимальное количество одновременно открытых соединений с базой данных.
AM_MAX_IDLE_CONNSОпределяет максимальное количество неиспользуемых соединений, сохраняемых в пуле соединений с базой данных.
AM_CONN_MAX_LIFETIMEОпределяет максимальное время жизни одного соединения с базой данных.
AM_TRACING_IS_ACTIVEОпределяет, включена ли трассировка запросов и операций в сервисе asset-manager.
AM_TRACING_HOSTОпределяет адрес хоста системы трассировки для отправки telemetry-данных.
AM_TRACING_STANDОпределяет идентификатор стенда, узла или инстанса для передачи данных трассировки.
EXP_HOST_DEDUPОпределяет, включена ли дедупликация хостов в логике работы сервиса.
AM_DB_SCHEMAОпределяет схему базы данных, используемую сервисом asset-manager.
AM_SSLMODEОпределяет режим использования SSL/TLS при подключении к базе данных.
AM_SSL_ENABLEОпределяет, включено ли использование SSL/TLS для защищенного соединения с базой данных.
AM_CA_PATHОпределяет путь к файлу корневого сертификата CA для проверки доверия при SSL/TLS.
AM_CERT_PATHОпределяет путь к файлу клиентского сертификата для SSL/TLS-подключения.
AM_KEY_PATHОпределяет путь к файлу закрытого ключа клиентского сертификата при SSL/TLS.
keeper
KEEPER_NAMEОпределяет имя сервиса keeper.
KEEPER_VERSIONОпределяет версию сервиса keeper.
KEEPER_ENVОпределяет окружение, в котором запущен сервис keeper.
KEEPER_DOCKER_CLIENT_VERSIONОпределяет версию Docker API или Docker-клиента, с которым должен работать сервис keeper.
KEEPER_SHARED_VOLUMEОпределяет имя общего Docker-тома, используемого сервисом keeper для хранения или обмена данными.
KEEPER_ADDRESSОпределяет адрес и порт, на которых сервис keeper принимает входящие соединения.
KEEPER_ASSETS_URLОпределяет URL сервиса assets, к которому обращается сервис keeper для работы с ресурсами или артефактами.
KEEPER_VAULT_URLОпределяет URL сервиса OpenBao, который сервис keeper использует для доступа к секретам или защищённым данным.
KEEPER_VAULT_GLOBALОпределяет, используется ли глобальная конфигурация OpenBao для сервиса keeper.
KEEPER_SQLITE_PATHОпределяет путь к файлу SQLite-базы, используемой сервисом keeper.
KEEPER_TRACING_IS_ACTIVEОпределяет, включена ли трассировка запросов и операций в сервисе keeper.
KEEPER_TRACING_HOSTОпределяет адрес хоста системы трассировки для отправки telemetry-данных.
KEEPER_TRACING_STANDОпределяет идентификатор стенда, узла или инстанса для передачи данных трассировки.
KEEPER_MODULE_MEMORYОпределяет лимит памяти, выделяемой модулю или контейнеру, запущенному сервисом keeper.
KEEPER_MODULE_NANO_CPUSОпределяет лимит CPU в NanoCPUs, выделяемый модулю или контейнеру.
KEEPER_REGISTRY_URLОпределяет адрес контейнерного реестра для получения образов.
KEEPER_REGISTRY_LOGINОпределяет логин для аутентификации в контейнерном реестре.
KEEPER_REGISTRY_PASSWORDОпределяет пароль для аутентификации в реестре.
KEEPER_SSL_ENABLEОпределяет, включено ли использование SSL/TLS в сервисе keeper.
KEEPER_CA_PATHОпределяет путь к файлу корневого сертификата CA для SSL/TLS.
KEEPER_CERT_PATHОпределяет путь к файлу сертификата сервиса keeper для SSL/TLS.
KEEPER_KEY_PATHОпределяет путь к файлу закрытого ключа сертификата сервиса keeper.
KEEPER_REFLECTOR_SSL_ENABLEОпределяет, включено ли использование SSL/TLS при взаимодействии с сервисом reflector.
KEEPER_REFLECTOR_CERT_PATHПуть к сертификату для взаимодействия с reflector.
KEEPER_REFLECTOR_KEY_PATHПуть к закрытому ключу сертификата для reflector.
KEEPER_REFLECTOR_HOSTАдрес и порт сервиса reflector, с которым взаимодействует сервис keeper.
reflector
ENABLE_MTLSОпределяет, включено ли использование взаимной TLS-аутентификации (mTLS) для защищённого взаимодействия сервиса reflector с другими сервисами.
URL_ASSET_MANAGERОпределяет URL сервиса asset-manager, к которому сервис reflector обращается для выполнения операций с ресурсами.
URL_VAULTОпределяет URL сервиса OpenBao, который сервис reflector использует для доступа к секретам или защищённым данным.
ENABLE_REGISTRYОпределяет, включает ли сервис reflector использование контейнерного реестра.
was-go
WAS_VERSIONОпределяет версию сервиса WAS.
WAS_ADMIN_PASSWORDОпределяет пароль административной учётной записи сервиса WAS.
WAS_ASSET_HOSTОпределяет адрес сервиса asset-manager, который сервис WAS использует для взаимодействия с ресурсами.
WAS_ENVОпределяет окружение, в котором запущен сервис WAS.
WAS_DB_HOSTОпределяет адрес хоста основной базы данных, используемой сервисом WAS.
WAS_DB_PORTОпределяет порт подключения к основной базе данных.
WAS_DB_USERИмя пользователя для подключения к базе данных.
WAS_DB_PASSWORDПароль пользователя базы данных.
WAS_DB_NAMEИмя основной базы данных.
WAS_RIVER_HOSTАдрес хоста базы данных River.
WAS_RIVER_PORTПорт базы данных River.
WAS_RIVER_USERИмя пользователя для базы River.
WAS_RIVER_PASSWORDПароль к базе River.
WAS_RIVER_NAMEИмя базы данных River.
WAS_TRACING_IS_ACTIVEВключена ли трассировка в сервисе WAS.
WAS_TRACING_HOSTАдрес системы трассировки.
WAS_TRACING_STANDИдентификатор стенда/узла.
WAS_VAULT_VAULT_ADDRESSАдрес сервиса OpenBAO для секретов.
WAS_VAULT_VAULT_ROLE_ID_COREИдентификатор роли для Vault.
WAS_VAULT_VAULT_SECRET_ID_COREСекретный ID для Vault.
WAS_REFLECTOR_HOSTАдрес и порт reflector.
WAS_EXS_HOSTАдрес сервиса EXS.
WAS_DB_SSLMODEРежим SSL/TLS для базы данных.
WAS_RIVER_SSLMODEРежим SSL/TLS для River.
WAS_ASSET_DB_HOSTАдрес базы данных asset-manager.
WAS_ASSET_DB_PORTПорт базы данных asset.
WAS_ASSET_DB_USERИмя пользователя базы asset.
WAS_ASSET_DB_PASSWORDПароль базы asset.
WAS_ASSET_DB_NAMEНазвание базы asset.
WAS_ASSET_DB_SSLMODESSL/TLS режим для asset-базы.
WAS_ASSET_ENABLE_CLONEВключено клонирование данных с asset-manager.
WAS_PASSWORD_HISTORY_COUNTКоличество старых паролей, которые нельзя повторять.
WAS_MAX_LOGIN_ATTEMPTSМаксимум неудачных попыток входа перед блокировкой.
WAS_LOCKOUT_DURATION_MINUTESДлительность блокировки (минуты).
WAS_PASSWORD_EXPIRY_DAYSСрок действия пароля (дни).
WAS_PASSWORD_EXPIRY_ENABLEDВключена ли политика истечения пароля.
WAS_ACCESS_TTLВремя жизни access-токена.
WAS_REFRESH_TTLВремя жизни refresh-токена.
WAS_SSL_ENABLEВключено SSL/TLS.
WAS_CA_PATHПуть к CA сертификату.
WAS_CERT_PATHПуть к сертификату сервиса.
WAS_KEY_PATHПуть к закрытому ключу.
WAS_ASSET_SSL_ENABLESSL/TLS с asset-manager.
WAS_ASSET_CERT_PATHПуть к сертификату asset.
WAS_ASSET_KEY_PATHПуть к ключу asset.
WAS_EXS_SSL_ENABLESSL/TLS с EXS.
WAS_EXS_CERT_PATHСертификат для EXS.
WAS_EXS_KEY_PATHКлюч для EXS.
WAS_REFLECTOR_SSL_ENABLESSL/TLS с reflector.
WAS_REFLECTOR_CA_PATHПуть к CA для reflector.
WAS_REFLECTOR_CERT_PATHСертификат reflector.
WAS_REFLECTOR_KEY_PATHКлюч для reflector.
WAS_SECFLOW_DESIGNER_ENABLEDВключён SecFlow Designer.
WAS_DOCUMENT_PATHПуть к документам.
exs
EXS_VERSIONОпределяет версию сервиса EXS.
EXS_AM_HOSTАдрес сервиса asset-manager, используемый EXS.
EXS_ENVОкружение, в котором запущен сервис EXS.
EXS_DB_HOSTАдрес хоста основной базы данных для EXS.
EXS_DB_PORTПорт подключения к основной базе данных.
EXS_DB_USERИмя пользователя для базы данных.
EXS_DB_PASSWORDПароль пользователя базы данных.
EXS_DB_NAMEИмя базы данных, используемой EXS.
EXS_RIVER_HOSTАдрес базы данных River для EXS.
EXS_RIVER_PORTПорт River.
EXS_RIVER_USERИмя пользователя River.
EXS_RIVER_PASSWORDПароль River.
EXS_RIVER_NAMEИмя базы данных River.
EXS_TRACING_IS_ACTIVEВключена ли трассировка (телеметрия).
EXS_TRACING_HOSTАдрес системы трассировки.
EXS_TRACING_STANDИдентификатор стенда или инстанса для трассировки.
EXS_REFLECTOR_HOSTАдрес и порт reflector для взаимодействия.
EXS_NOTIFICATION_FRONTEND_URLURL фронтенда для уведомлений и ссылок.
EXS_ME_STATUS_CHECK_TIMEOUTВремя ожидания проверки статуса ME.
EXS_RIVER_MAX_JOB_TIMEOUTМаксимальное время выполнения задания в River.
EXS_MODULE_QUEUE_ENABLEDВключён ли механизм очередей в EXS.
EXS_DB_SSLMODEРежим SSL/TLS для базы данных.
EXS_RIVER_SSLMODESSL/TLS для базы River.
EXS_SSL_ENABLEВключено ли SSL/TLS в EXS.
EXS_CA_PATHПуть к корневому сертификату CA.
EXS_CERT_PATHПуть к сертификату сервиса.
EXS_KEY_PATHПуть к закрытому ключу сертификата.
EXS_AM_SSL_ENABLEВключено ли SSL для взаимодействия с asset-manager.
EXS_AM_CERT_PATHПуть к сертификату для asset-manager.
EXS_AM_KEY_PATHПуть к ключу для asset-manager.
EXS_REFLECTOR_SSL_ENABLEВключено ли SSL для взаимодействия с reflector.
EXS_REFLECTOR_CA_PATHПуть к CA для reflector.
EXS_REFLECTOR_CERT_PATHПуть к сертификату для reflector.
EXS_REFLECTOR_KEY_PATHПуть к ключу для reflector.
vault
VAULT_ADDRАдрес сервиса OpenBao для секретов.
VAULT_ROLE_ID_COREИдентификатор роли для взаимодействия с Vault.
VAULT_SECRET_ID_COREСекретный ID для Vault.
VAULT_CACERTПуть к CA сертификату для проверки доверия TLS соединений с Vault.

Проверка работоспособности

Для проверки работы программы авторизируйтесь в web-интерфейс Solar LightHouse пройдя по ссылке https://<адрес установки>/?tab=health-check на страницу дашборда Healthcheck и ознакомьтесь со статусами компонентов системы.

При обнаружении ошибок или сбоев в работе системы рекомендуется обратиться к команде поддержки программы для получения помощи.

Настройка логирования

Все события информационной безопасности, а также прочие события системы логируются средствами docker в единый файл, предварительно получив определенный тег (см. Таблицу 2).

Таблица 2 - Разметка основных групп событий системы

Группа событийТег разметки
Попытки входа (выхода) пользователей в систему, как успешные, так и неуспешныеLOGIN
Создание, изменение, блокирование, снятие блокировки и удаление учётных записей пользователейUSERS
Изменение настроек системы администраторомCONFIGURATION
Изменение политик безопасности (например, срок действия пароля)POLICIES
Результаты сканирования, аудита ассетовAUDIT

Для удобства обработки данной информации предлагается схема настройки разделения логов в отдельные файлы согласно основным категориям событий:

  • Откройте файл docker-compose.yml в текстовом редакторе;

  • Найдите раздел сервиса was-go;

  • Добавьте строку volumes;

volumes:

/dev/log:/dev/log

  • Сохраните изменения.

Docker compose down was-go && docker compose up -d was-go

Дальнейшие действия осуществляются в зависимости от типа установленной ОС.

Сертифицированная версия RedOS 8.0

Настройка SysSock.Use

Данная настройка в конфигурации rsyslog, которая управляет использованием системного сокета для локальной передачи логов

Измените настройку SysSock.Use с OFF на ON в файле /etc/rsyslog.conf, для этого выполните следующие шаги:

  • Откройте файл в редакторе vim с правами суперпользователя:

    sudo vim /etc/rsyslog.conf

  • Внесите следующие изменения

    sudo vim /etc/rsyslog.conf module(load="imuxsock" SysSock.Use="on")

  • Сохраните изменения

Добавление правил логирования в файл /etc/rsyslog.d/10-lighthouse-audit.conf
  • Откройте файл конфигурации в текстовом редакторе

    sudo vim /etc/rsyslog.d/10-lighthouse-audit.conf

  • Добавьте правила логирования

    if $programname == 'lighthouse-login' then /var/log/lighthouse/login.log

    if $programname == 'lighthouse-users' then /var/log/lighthouse/users.log

    if $programname == 'lighthouse-configuration' then /var/log/lighthouse/configuration.log

    if $programname == 'lighthouse-policies' then /var/log/lighthouse/policies.log

    if $programname == 'lighthouse-audit' then /var/log/lighthouse/audit.log

    if $programname startswith 'lighthouse-' then stop

  • Сохраните изменения и закройте редактор

  • Перезапустите rsyslog для применения изменений

    sudo systemctl restart rsyslog

Теперь система будет записывать логи Solar LightHouse в соответствующие файлы по заданным выше именам

Сертифицированная версия Astra 1.8

В ОС Astra 1.8 используется syslog-ng — это альтернативный демон для логирования, и его конфигурация отличается от rsyslog.

  • Открыть файл конфигурации vim /etc/syslog-ng/conf.d/lighthouse-audit.conf

  • Внести в файл:

    • Фильтры — выборка по логам по программам;
    • Назначения — файлы для сохранения каждого вида логов, создают каталоги при необходимости;
    • Логовые блоки — связывают источник, фильтр и файл назначения

filter f_lighthouse_login { program("lighthouse-login"); };

filter f_lighthouse_users { program("lighthouse-users"); };

filter f_lighthouse_configuration { program("lighthouse-configuration"); };

filter f_lighthouse_policies { program("lighthouse-policies"); };

filter f_lighthouse_audit { program("lighthouse-audit"); };

destination d_lighthouse_login {

file("/var/log/lighthouse/login.log" create_dirs(yes));

};

destination d_lighthouse_users {

file("/var/log/lighthouse/users.log" create_dirs(yes));

};

destination d_lighthouse_configuration {

file("/var/log/lighthouse/configuration.log" create_dirs(yes));

};

destination d_lighthouse_policies {

file("/var/log/lighthouse/policies.log" create_dirs(yes));

};

destination d_lighthouse_audit {

file("/var/log/lighthouse/audit.log" create_dirs(yes));

};

log { source(s_src); filter(f_lighthouse_login); destination(d_lighthouse_login); flags(final); };

log { source(s_src); filter(f_lighthouse_users); destination(d_lighthouse_users); flags(final); };

log { source(s_src); filter(f_lighthouse_configuration); destination(d_lighthouse_configuration); flags(final); };

log { source(s_src); filter(f_lighthouse_policies); destination(d_lighthouse_policies); flags(final); };

log { source(s_src); filter(f_lighthouse_audit); destination(d_lighthouse_audit); flags(final); };

  • После сохранения файла перезапустите syslog-ng

sudo systemctl restart syslog-ng

  • Проверьте статус службы

sudo systemctl status syslog-ng

  • Перезапустить контейнеры

docker compose up -d

  • Проверить появление логов audit.log configuration.log login.log policies.log users.log

ls /var/log/lighthouse

Удаление программного обеспечения

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

docker-compose -f <имя_файла>.yml down -v

Эта команда остановит все контейнеры, связанные с указанным файлом конфигурации, и удалит связанные с ними тома.