Неавтоматизированная установка Termidesk

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

sudo apt -y install termidesk-vdi

где:

-y - ключ для пропуска подтверждения установки.

При установке пакета termidesk-vdi возможно активировать режим отладки через переменную окружения TDSK_PKG_DEBUG=1.

Одним из параметров службы termidesk-vdi (/lib/systemd/system/termidesk-vdi.service) является EnvironmentFile, задающий дополнительные аргументы функционирования, перечисленные в файле /etc/default/termidesk-vdi.local (см. подраздел Файл /etc/default/termidesk-vdi.local).

В зависимостях пакета установки termidesk-vdi есть:

  • служба ведения журналов syslog-ng. Работа с другими службами ведения журналов не гарантируется;
  • пакет libpython3.11 для ОС Astra Linux Special Edition 1.8, предоставляющий возможность установить Termidesk в ОС с минимальной конфигурацией (без графического интерфейса ОС).

Перед обновлением ОС или службы syslog-ng рекомендуется создать резервную копию файла syslog-ng.conf. В случае обновления ОС или службы syslog-ng без предварительного создания резервной копии файла, может потребоваться переустановка Termidesk для восстановления его корректной работы.

Компонент «Шлюз» устанавливается из пакета termidesk-gateway. Для установки или обновления «Шлюза» следует обратиться к подразделам Установка Шлюза и Обновление Шлюза документа 90 05 «Руководство администратора. Настройка компонента «Шлюз».

В процессе установки нужно:

Для переключения между экранными кнопками [Ок] и [Отмена] в псевдографическом интерфейсе используется клавиша <Tab>.

  • ввести домен по умолчанию для работы Kerberos-аутентификации. Ввод домена можно пропустить, оставив поле ввода пустым и нажав экранную кнопку [Ok];

  • ознакомиться с лицензионным соглашением и нажать экранную кнопку [Далее];

  • нажать экранную кнопку [Да] для принятия условий лицензионного соглашения и продолжения установки или экранную кнопку [Нет] в случае отказа, при этом установка прервется;

  • после принятия условий лицензионного соглашения настроить расположение каталогов для файлов Termidesk:
    • «Место расположений конфигурации»: каталог, в котором будет расположен файл termidesk.conf;
    • «Место хранения журналов»: каталог, в котором будут расположены файлы журналов;
    • «Расположение шаблонов syslog/logrotate»: каталог, в котором будут распололжены шаблоны для настройки регистрации событий и журналирования;

Каталог, в котором будут расположены файлы Termidesk, должен обладать свойствами:

  • права на каталог: rwxr-x--- (750);
  • владелец каталога: root:termidesk.

  • далее выбрать способ хранения паролей подключения к СУБД и RabbitMQ:

Для всех узлов фермы Termidesk должен выбираться единый способ хранения и единое хранилище (в случае выбора способа «hvac»).

    •  «config» (по умолчанию) - пароли будут храниться в преобразованном виде в файле /etc/opt/termidesk-vdi/termidesk.conf;
    • «hvac» (рекомендуемый способ для безопасного хранения) - для хранения паролей будет использоваться хранилище паролей OpenBao или Hashicorp Vault (хранилище должно быть заранее создано и настроено). Подробная информация по этому способу хранения паролей приведена в подразделе Хранение чувствительной информации с выбранным способом хранения «hvac» документа 90 02 «Руководство администратора. Настройка программного комплекса»;
    • «openbao» (экспериментальный) - для хранения паролей будет использоваться хранилище паролей OpenBao (хранилище должно быть заранее создано и настроено). При этом пароли располагаются внутри хранилища, имена контейнеров хранения генерируются автоматически;

  • при выборе хранения паролей «openbao» или «hvac» нужно задать параметры подключения к хранилищу и параметры, настроенные непосредственно на хранилище:
    • «URL хранилища» - IP-адрес или FQDN узла и порт с установленным хранилищем OpenBao. Формат: http://<IP-адрес>:8200 или http://<FQDN>:8200;

Хранилище паролей OpenBao должно быть реализовано в отказоустойчивом варианте, иначеTermidesk не будет работать в период простоя узлов OpenBao.

    • «Версия API OpenBao» - установленная версия API на OpenBao (1 или 2);
    • «Путь к токену доступа к хранилищу» - токен (Initial Root Token), сформированный при инициализации хранилища;
    • «Путь к паролю СУБД» - путь, настроенный на OpenBao для хранения пароля СУБД;
    • «Роль доступа к паролю СУБД» - роль, настроенная на OpenBao, имеющая доступ к паролю СУБД;
    • «Путь к паролям RabbitMQ» - путь, настроенный на OpenBao для хранения пароля RabbitMQ;
    • «Роль доступа к паролям RabbitMQ» - роль, настроенная на OpenBao, имеющая доступ к паролю RabbitMQ;
    • «Путь к паролям Termidesk» - путь, настроенный на OpenBao для хранения пароля Termidesk;
    • «Роль доступа к паролям Termidesk» - роль, настроенная на OpenBao, имеющая доступ к паролю Termidesk;
    • «Время кеширования паролей, сек» - время (в секундах) хранения пароля, полученного от OpenBao, во внутренней памяти;

  • подключение может выполняться по протоколу HTTPS, если OpenBao настроен соответствующим образом. Для подключения по HTTPS нужно нажать экранную кнопку [Сертификаты] и определить пути к сертификатам и ключам (параметры «Сертификат OpenBao mTLS», «Секр. ключ OpenBao mTLS», «Серт. промеж. ЦС OpenBao mTLS»);

Доступный список сертификатов:  

  • «Сертификат Health Check»: путь к сертификату SSL/TLS для защищенного подключения к API проверки состояния;
  • «Секр. ключ Health Check»: путь к ключу SSL/TLS для защищенного подключения к API проверки состояния;
  • «Сертификат Postgres mTLS»: путь к сертификату SSL/TLS для защищенного подключения к СУБД;
  • «Секр. ключ Postgres mTLS»: путь к ключу SSL/TLS для защищенного подключения к СУБД;
  • «Серт. промеж. ЦС Postgres mTLS»: путь к промежуточному сертификату ЦС SSL/TLS для защищенного подключения к СУБД;
  • «Сертификат OpenBao mTLS»: путь к сертификату SSL/TLS для защищенного подключения к OpenBao. Задается, в случае, если выбран способ хранения паролей через OpenBao и нужно настроить защищенное подключение к нему;
  • «Секр. ключ OpenBao mTLS»: путь к ключу SSL/TLS для защищенного подключения к OpenBao. Задается, в случае, если выбран способ хранения паролей через OpenBao и нужно настроить защищенное подключение к нему;
  • «Серт. промеж. ЦС OpenBao mTLS»: путь к промежуточному сертификату ЦС SSL/TLS для защищенного подключения к OpenBao. Задается, в случае, если выбран способ хранения паролей через OpenBao и нужно настроить защищенное подключение к нему;
  • «Осн. серт. для расшифровки JWT-токена»: путь к сертификату для получения значения JWT-токена портала «Агрегатор». Задается в случае, если устанавливается «Портал администратора» и (или) «Портал пользователя», который затем будет подключен как узел в портале «Агрегатор»;
  • «Рез. серт. для расшифровки JWT-токена»: путь к резервному сертификату для получения значения JWT-токена портала «Агрегатор». Задается в случае, если устанавливается «Портал администратора» и (или) «Портал пользователя», который затем будет подключен как узел в портале «Агрегатор»;
  • «Секр. ключ для подписи JWT-токена»: путь к закрытому ключу для подписи JWT-токена портала «Агрегатор». Задается только в случае, если устанавливаются роли «Агрегатор администратора» и (или) «Агрегатор пользователя»;
  • «Сертификат для подключения к серверу RA»: путь к серверному сертификату SSL/TLS для проверки подключения к «Удаленному помощнику»;
  • «Сертификат RabbitMQ mTLS»: путь к клиентскому сертификату mTLS для защищенного подключения к RabbitMQ;
  • «Секр. ключ RabbitMQ mTLS»: путь к клиентскому ключу mTLS  для защищенного подключения к RabbitMQ;
  • «Серт. ЦС RabbitMQ mTLS»: путь к корневому сертификату ЦС mTLS для защищенного подключения к RabbitMQ;
  • «Публичный ключ ws-proxy»:  путь к открытому ключу id_rsa.pub. Явно задавать путь следует только при использовани внешнего хранилища;
  • «Секретный ключ ws-proxy»: путь к озакрытому ключу id_rsa. Явно задавать путь следует только при использовани внешнего хранилища.

Справочная информация по работе с диалогом добавления сертификата доступна по экранной кнопке <Справка> при выборе нужного пункта из списка.

  • после настройки способа хранения паролей нужно выбрать протокол, который будет использоваться при подключении к серверу СУБД:
    • при выборе значения «Disable» защищенное соединение при подключении к серверу СУБД использоваться не будет;

    • при выборе защищенного подключения нужно нажать экранную кнопку [Сертификаты] и определить пути к сертификатам и ключам (параметры «Сертификат Postgres mTLS», «Секр. ключ Postgres mTLS», «Серт. промеж. ЦС Postgres mTLS»);
  • для продолжения установки нажать экранную кнопку [Далее];
  • выбрать тип установки СУБД:
    • «Отдельно стоящий сервер»: подключение производится к отдельному серверу СУБД;
    • «Кластер СУБД»: подключение производится к кластеру СУБД;

  • заполнить параметры подключения к СУБД:
    • «Адрес СУБД»: IP-адрес или FQDN узла с установленной СУБД (в случае локальной установки 127.0.0.1);
    • «Адрес СУБД (узел 2)»: IP-адрес или FQDN дополнительного узла СУБД (необязательный параметр, при необходимости может быть задан только для кластера СУБД);
    • «Адрес СУБД (узел 3)»: IP-адрес или FQDN дополнительного узла СУБД (необязательный параметр, при необходимости может быть задан только для кластера СУБД);
    • «Порт СУБД»: номер порта, используемого для соединения с сервером СУБД (стандартный порт 5432);
    • «Имя базы данных»: наименование БД (termidesk, параметр задавался при создании БД);
    • «Имя пользователя»: имя пользователя БД для подключения к ней (termidesk, параметр задавался при создании БД);
    • «Пароль»: пароль для подключения к БД (ksedimret, параметр задавался при создании БД);
    • «Время жизни подключения, с»: максимально допустимое время (в секундах) существования одного подключения к БД;
    • «Кол-во задач на подключение»: количество фоновых задач, которое может быть выполнено в рамках одного подключения к БД;
  • нажать экранную кнопку [Тест] для проверки подключения, ознакомиться с результатом тестирования подключения и для продолжения установки нажать экранную кнопку [Далее];

Для корректной работы кнопки [Тест] требуется наличие установленных утилит psql и expect.

При выборе типа установки СУБД «Кластер СУБД» можно задать до трех узлов СУБД, к которым будет подключаться Termidesk. При этом предполагается, что порт, имя БД, имя пользователя и его пароль идентичны для всех узлов.

  • выбрать протокол, который будет использоваться при подключении к RabbitMQ:
    • при выборе значения «Disable» защищенное соединение при подключении к RabbitMQ использоваться не будет;
    • при выборе защищенного подключения нужно нажать экранную кнопку [Сертификаты] и определить пути к сертификатам и ключам (параметры «Сертификат RabbitMQ mTLS», «Секр. ключ RabbitMQ mTLS», «Серт. ЦС RabbitMQ mTLS»);

  • настроить подключение к RabbitMQ. Для этого выбрать в следующем окне пункт «Empty» и нажать экранную кнопку [Выбрать]. Необходимо задать хотя бы одно подключение к RabbitMQ, если не будет задано ни одно подключение, то при нажатии на кнопку [Далее] произойдет возврат в диалог настройки подключений;

  • выполнить настройку подключения к RabbitMQ, заполнив параметры:
    • «Адрес сервера»: IP-адрес или FQDN узла с установленным RabbitMQ (в случае локальной установки 127.0.0.1);
    • «Порт сервера»: номер порта, используемого для соединения с RabbitMQ (по умолчанию 5672);
    • «Виртуальный хост»: виртуальный узел, к которому будет производиться подключение (termidesk);
    • «Имя пользователя»: имя пользователя для подключения (termidesk);
    • «Пароль»: пароль для подключения (ksedimret);
  • нажать экранную кнопку [ОК] для продолжения установки;

  • в следующем окне отобразится информация о настроенном подключении. При необходимости можно добавить до трех экземпляров RabbitMQ для подключения, выбрав пустые строки «Empty» и повторив ввод параметров подключения. Для продолжения установки следует нажать экранную кнопку [Далее];

  • затем выбрать устанавливаемую роль:

Установка «Агрегатора»:

  • должна производиться на отдельном узле, отличном от «Портала администратора» и/или «Портала пользователя». Информация по выбору ролей при установке приведена в документе 90 08 «Руководство администратора. Установка и настройка портала «Агрегатор»;
  • не предусмотрена в рамках лицензии Termidesk Terminal.

При комплексной установке Termidesk необходимо выбрать роли:

  • «Портал администратора»;
  • «Портал пользователя» (опционально, если нужно активировать все доступные функции);
  • «Менеджер рабочих мест».

Если не выбрать ни одного компонента, то ни одна служба Termidesk запущена не будет. 

    • «Портал администратора (ADMIN)»: установится компонент «Универсальный диспетчер» с «Порталом администратора». «Портал администратора» предоставляет интерфейс для управления Termidesk и интерфейс swagger для доступа к ограниченному списку модулей документации по командам REST API («auth», «discover», «health», «agent», «webui»). После установки будет запущена служба termidesk-vdi;
    • «Портал пользователя (USER)»: установится компонент «Универсальный диспетчер» с «Порталом пользователя». «Портал пользователя» предоставляет пользовательский интерфейс Termidesk и интерфейс swagger для доступа к ограниченному списку модулей документации по командам REST API («auth», «discover», «health», «client», «wsproxy», «agent»). Интерфейс управления Termidesk будет недоступен. После установки будет запущена служба termidesk-vdi. При выборе и роли «Портал администратора», и роли «Портал пользователя» будут доступны функции обоих вариантов, при этом активируется доступ ко всем модулям документации по командам REST API, предоставляемым интерфейсом swagger;
    • «Агрегатор администратора (AGGR_ADM)»: установится компонент «Универсальный диспетчер» с порталом «Агрегатор администратора». Портал «Агрегатор администратора» предоставляет интерфейс для управления объединенными ресурсами (фермами) Termidesk и интерфейс swagger для доступа к ограниченному списку модулей документации по командам REST API. После установки будет запущена служба termidesk-vdi;
    • «Агрегатор пользователя (AGGR_USR)»: установится компонент «Универсальный диспетчер» с порталом «Агрегатор пользователя». Портал «Агрегатор пользователя» предоставляет пользовательский интерфейс для подключения к фермам Termidesk и интерфейс swagger для доступа к ограниченному списку модулей документации по командам REST API. После установки будет запущена служба termidesk-vdi. При выборе и роли «Агрегатор администратора», и роли «Агрегатор пользователя» будут доступны функции обоих вариантов, при этом активируется доступ ко всем модулям документации по командам REST API, предоставляемым интерфейсом swagger;
    • «Менеджер рабочих мест (CELERYMAN)»: установится компонент «Менеджер рабочих мест», после установки будут запущены службы termidesk-celery-beat, termidesk-celery-worker.

После установки Termidesk необходимо:

  • скорректировать файл конфигурации веб-сервера /etc/apache2/apache2.conf. Для этого нужно найти и раскомментировать строку с параметром AstraMode, далее присвоить данному параметру значение off, точно соблюдая отступы и пробелы в файле:
# Astra security mode
#
AstraMode off
  • затем перезапустить веб-сервер: 
sudo systemctl restart apache2
  • если в инфраструктуре Termidesk будет использоваться портал «Агрегатор» («Агрегатор администратора» и/или «Агрегатор пользователя»), нужно обязательно задать на узле компонента «Универсальный диспетчер» («Портал пользователя» или «Портал универсальный») сертификат для расшифровки JWT-токена. Сертификат может быть задан через файл /etc/opt/termidesk-vdi/termidesk.conf (параметры AGGREGATOR_JWT_SSL_CERT и AGGREGATOR_JWT_SSL_CERT_SECOND) или через утилиту termidesk-config.

После установки параметры могут быть изменены:

  • через файл termidesk.conf (см. подраздел Конфигурационный файл termidesk.conf документа 90 02 «Руководство администратора. Настройка программного комплекса»);
  • (предпочтительный способ) или через утилиту termidesk-config (см. подраздел Утилита termidesk-config документа 90 02 «Руководство администратора. Настройка программного комплекса»).

После успешного завершения установки на узел может быть установлен компонент «Шлюз» (termidesk-gateway). В распределенном варианте этот компонент устанавливается на отдельный узел.