Руководство по установке
Версия Termit: 2.4
1. Руководство по установке
В этом руководстве подробно описано, как системным администраторам установить платформу для виртуализации рабочих столов и приложений Termit. Это поможет избежать ошибок, ускорить процесс развертывания и обеспечить корректную работу системы после установки.
Руководство содержит информацию о необходимых компонентах, требованиях к системе, процессе установки, настройке параметров и других важных аспектах работы с системой.
Ссылки на разделы:
2. Подготовка окружения
Перед развертыванием Termit подготовьте окружение:
-
Проверьте, что подсети Docker Compose не пересекаются с сетями для серверов баз данных, LDAP-каталогов, терминалов и брокеров. Подробнее в статье Ошибки при пересечении IP-адресов между Docker и хост-системой.
-
Разверните отдельные серверы:
-
для брокеров.
Количество брокеров зависит от типа развертывания:
-
для «Standalone» необходим один брокер;
-
для «High Availability» - не меньше трех брокеров.
Подробнее расчете ресурсов в разделе.
-
-
для терминальных серверов/ВРМ под управлением Windows или Linux в зависимости от требований;
-
(Опционально) для сервера баз данных. Можно использовать существующий сервер.
-
(Опционально) для MFA.
-
(Опционально) для балансировщиков нагрузки Haproxy.
-
-
Проверьте доступ к службе каталогов и PostgreSQL.
-
Добавьте терминальные серверы в домен службы каталогов.
-
В каталоге пользователей создайте сервисную учетную запись для синхронизации объектов из службы каталогов. Обязательно отключите опцию «User must change password at next logon» и включите «Password never expires».
-
В каталоге пользователей создайте группы безопасности для назначения ролей: администратора, технической поддержки, аудитора ИБ и пользователя, в соответствии с требованиями вашей компании.
-
В каталоге пользователей добавьте в состав групп, созданных на предыдущем шаге, учетные записи пользователей для взаимодействия с Termit.
3. Настройка межсетевого экрана
В этом разделе описано, как настроить межсетевой экран (МСЭ).
РЕД ОС
sudo systemctl status firewalld.service
Если в выводе команды отображается информация, как на изображении ниже, то дальнейшие шаги по конфигурации МСЭ можно пропустить, так как он выключен.
В случае если вывод команды отличается, то необходима дополнительная конфигурация МСЭ. Для этого:
-
Определите активную зону МСЭ с помощью команды:
firewall-cmd --get-default-zone -
Добавьте правила по списку портов в необходимую активную зону с помощью команды:
sudo firewall-cmd --zone=%Активная_Зона% --permanent --add-port=%Порт%/tcpГде:
-
%Активная_Зона% — текущая активная зона из шага 1.
-
%Порт% — необходимый порт. Список портов смотрите в разделе Порты.
Например:
sudo firewall-cmd –-zone=public --permanent --add-port=5432/tcpПодробнее о настройке МСЭ можно прочесть на официальном сайте РЕД ОС.
-
Astra Linux
Чтобы проверить настройки МСЭ на каждом из серверов, выполните команду:
sudo ufw status
Если выполнение команды возвращает ответ «Status: inactive», то дальнейшие шаги по конфигурации МСЭ можно пропустить, так как он выключен.
В случае если вывод команды отличается, то необходима дополнительная конфигурация МСЭ. Для этого добавьте разрешения командой:
sudo ufw allow %Порт%/tcp
Где: %Порт% — необходимый порт. Список портов смотрите в разделе Порты.
|
ALT Linux
Чтобы проверить настройки МСЭ на каждом из серверов, выполните команду:
sudo efw
Если выполнение команды возвращает ответ «Firewall is disabled», то дальнейшие шаги по конфигурации МСЭ можно пропустить, так как он выключен.
В случае если вывод команды отличается, то необходима дополнительная конфигурация МСЭ. Для этого добавьте правила. В зависимости от используемого МСЭ команды могут отличаться. Подробнее о создании правил МСЭ описано в статьях Etcnet Firewall и UFW.
Windows
-
Откройте любым способом Монитор брандмауэра Защитника Windows в режиме повышенной безопасности.
-
Выберите Правила для входящих подключений.
-
Нажмите Создать правило.
-
На вкладке Тип правила включите опцию Для порта.
-
Нажмите Далее.
-
На вкладке Протокол и порты оставьте Протокол TCP по умолчанию. В параметре Определенные локальные порты: укажите «8443». Полный список портов смотрите в разделе Порты.
-
Нажмите .
-
На вкладке Имя задайте имя, например «Termit Agent».
|
Можно создать правило в межсетевом экране с помощью PowerShell:
|
4. Базовая конфигурация базы данных
|
В этом разделе представлена базовая информация по подготовке сервера баз данных PostgreSQL.
РЕД ОС
В этой инструкции используется последняя доступная версия СУБД PostgreSQL 15. В случае если используется другая версия, то выполняемые команды необходимо изменить. Более подробно можно ознакомиться на сайте документации РЕД ОС.
-
Установите PostgreSQL с помощью команды:
sudo dnf install postgresql15-server -
Инициализируйте базу данных с помощью команды:
sudo postgresql-15-setup initdb -
Запустите сервис PostgreSQL с помощью команды:
sudo systemctl enable postgresql-15.service --now -
Чтобы разрешить удаленное подключение к СУБД, в файле конфигурации
/var/lib/pgsql/15/data/postgresql.confпараметрlisten_addressesдолжен соответствовать значению'*':В инструкции предлагается установить для параметра
listen_addressesзначение * . Это позволит принимать подключения по всем доступным сетевым интерфейсам. Если требуется ограничить доступ только к определенному интерфейсу, то укажите конкретный IP-адрес или имя интерфейса вместо * . Например:listen_addresses='192.168.1.1' илиlisten_addresses='eth0'. Это поможет ограничить подключение к СУБД только с нужного интерфейса, обеспечивая дополнительный уровень безопасности.
Отображение параметров на скриншоте может отличаться. Зависит от версии PostgreSQL.
-
Чтобы обеспечить достаточное количество слотов для подключений в высоконагруженной системе, в файле конфигурации
/var/lib/pgsql/15/data/postgresql.confпараметрmax_connectionsдолжен соответствовать значению500. -
Чтобы разрешить удаленное подключение к СУБД с паролем, добавьте в файл конфигурации
/var/lib/pgsql/15/data/pg_hba.confстроку:host all all 0.0.0.0/0 passwordВ инструкции предлагается добавить в файл конфигурации
/var/lib/pgsql/15/data/pg_hba.confстроку:host all all 0.0.0.0/0 passwordЭта строка разрешает подключение к СУБД с использованием пароля со всех IP-адресов. Для повышения безопасности рекомендуется указать конкретные IP-адреса или диапазоны адресов, с которых будут разрешены подключения. Например:
host all all 192.168.1.0/24 passwordЭто ограничит доступ к СУБД только для адресов в указанном диапазоне, снижая риск несанкционированных подключений.
Отображение параметров на скриншоте может отличаться. Зависит от версии PostgreSQL.
-
Запустите сессию служебного пользователя postgres с помощью команды:
sudo su - postgres -
Запустите командную оболочку PostgreSQL от имени пользователя
postgresс помощью команды:psql -
Если при установке брокера:
-
будет выбрана опция «подключиться к уже существующей базе данных», то выполните шаги:
-
Создайте новую базу данных с помощью команды:
CREATE DATABASE %Имя_Базы%; -
Создайте нового пользователя базы данных с паролем с помощью команды:
CREATE USER %Имя_Пользователя% WITH PASSWORD '%Пароль_Пользователя%'; -
Назначьте права владельца базы данных созданному пользователю с помощью команды:
ALTER DATABASE %Имя_Базы% OWNER TO %Имя_Пользователя%; -
Завершите работу с оболочкой psql и сессией пользователя postgres с помощью команды:
exit -
Примените изменения, перезапустив службу PostgreSQL с помощью команды:
sudo systemctl restart postgresql-15.service
-
-
будет выбрана опция «создать новую базу данных», то выполните шаги:
-
Создайте нового пользователя с паролем и правами на создание новых баз данных с помощью команды:
CREATE USER %Имя_Пользователя% WITH PASSWORD '%Пароль_Пользователя%' CREATEDB; -
Выйдите из командной оболочки psql и сессии пользователя postgres с помощью команды:
exit -
Перезапустите сервис PostgreSQL с помощью команды:
sudo systemctl restart postgresql-15.service
-
-
Astra Linux
| СУБД PostgreSQL версии 15 доступен для Astra Linux версии 1.8. Для версии 1.7 и ниже - недоступен. |
В случае инсталляций в режиме контроля мандатного доступа («Воронеж» и «Смоленск») может потребоваться дополнительная конфигурация операционной системы. Подробнее о настройках PostgreSQL и мандатном управлении доступа.
-
Установите PostgreSQL из репозитория с помощью команды:
sudo apt install postgresql-15 -
Проверьте статус сервиса PostgreSQL с помощью команды:
sudo systemctl status postgresql -
При необходимости запустите сервис с помощью команды:
sudo systemctl start postgresql -
Чтобы разрешить удаленное подключение к СУБД, в файле конфигурации
/etc/postgresql/15/main/postgresql.confпараметрlisten_addressesдолжен соответствовать значению'*':В инструкции предлагается установить для параметра
listen_addressesзначение * . Это позволит принимать подключения по всем доступным сетевым интерфейсам. Если требуется ограничить доступ только к определенному интерфейсу, то укажите конкретный IP-адрес или имя интерфейса вместо * . Например:listen_addresses='192.168.1.1' илиlisten_addresses='eth0'. Это поможет ограничить подключение к СУБД только с нужного интерфейса, обеспечивая дополнительный уровень безопасности.
Отображение параметров на скриншоте может отличаться. Зависит от версии PostgreSQL.
-
Чтобы обеспечить достаточное количество слотов для подключений в высоконагруженной системе, в файле конфигурации
/etc/postgresql/15/main/postgresql.confпараметрmax_connectionsдолжен соответствовать значению500. -
Чтобы разрешить удаленное подключение к СУБД с паролем, добавьте в файл конфигурации
/etc/postgresql/15/main/pg_hba.confстроку:host all all 0.0.0.0/0 passwordВ инструкции предлагается добавить в файл конфигурации
/etc/postgresql/15/main/pg_hba.confстроку:host all all 0.0.0.0/0 passwordЭта строка разрешает подключение к СУБД с использованием пароля со всех IP-адресов. Для повышения безопасности рекомендуется указать конкретные IP-адреса или диапазоны адресов, с которых будут разрешены подключения. Например:
host all all 192.168.1.0/24 passwordЭто ограничит доступ к СУБД только для адресов в указанном диапазоне, снижая риск несанкционированных подключений.
Отображение параметров на скриншоте может отличаться. Зависит от версии PostgreSQL.
-
Чтобы разрешить удаленное подключение к СУБД пользователю в режиме контроля мандатного доступа, в параметре
zero_if_notfoundзадайте значениеyesв файле/etc/parsec/mswitch.conf:
-
Запустите сессию служебного пользователя postgres с помощью команды:
sudo su - postgres -
Запустите командную оболочку postgres с помощью команды:
psql -
Если при установке брокера:
-
выбрана опция «подключиться к существующей базе данных», то выполните шаги:
-
Создайте пустую базу данных с помощью команды:
CREATE DATABASE %Имя_Базы%; -
Создайте нового пользователя с паролем с помощью команды:
CREATE USER %Имя_Пользователя% WITH PASSWORD '%Пароль_Пользователя%'; -
Назначьте права владельца для созданного пользователя на созданную базу с помощью команды:
ALTER DATABASE %Имя_Базы% OWNER TO %Имя_Пользователя%; -
Выйдите из командной оболочки psql и сессии пользователя postgres с помощью команды:
exit -
Перезапустите сервис PostgreSQL с помощью команды:
sudo systemctl restart postgresql
-
-
будет выбрана опция «создать новую базу данных», то выполните шаги:
-
Создайте нового пользователя с паролем и правами на создание новых баз данных с помощью команды:
CREATE USER %Имя_Пользователя% WITH PASSWORD '%Пароль_Пользователя%' CREATEDB; -
Выйдите из командной оболочки psql и сессии пользователя postgres с помощью команды:
exit -
Перезапустите PostgreSQL с помощью команды:
sudo systemctl restart postgresql
-
-
ALT Linux
Подробнее об установке PostgreSQL можно прочесть на официальном сайте ALT Linux.
-
Установите компоненты PostgreSQL с помощью команды:
sudo apt-get install postgresql15-server -
Инициализируйте сервер БД с помощью команды:
sudo /etc/init.d/postgresql initdb -
Запустите и добавьте автозапуск с помощью команды:
sudo systemctl enable postgresql --now -
Чтобы разрешить удаленное подключение к СУБД, в файле конфигурации
/var/lib/pgsql/data/postgresql.confпараметрlisten_addressesдолжен соответствовать значению '*'.В инструкции предлагается установить для параметра
listen_addressesзначение * . Это позволит принимать подключения по всем доступным сетевым интерфейсам. Если требуется ограничить доступ только к определенному интерфейсу, то укажите конкретный IP-адрес или имя интерфейса вместо * . Например:listen_addresses='192.168.1.1' илиlisten_addresses='eth0'. Это поможет ограничить подключение к СУБД только с нужного интерфейса, обеспечивая дополнительный уровень безопасности.
-
Чтобы обеспечить достаточное количество слотов для подключений в высоконагруженной системе, в файле конфигурации
/var/lib/pgsql/data/postgresql.confпараметрmax_connectionsдолжен соответствовать значению500. -
Чтобы разрешить удаленное подключение к СУБД с паролем, добавьте в файл конфигурации
/var/lib/pgsql/data/pg_hba.confстроку:host all all 0.0.0.0/0 passwordВ инструкции предлагается добавить в файл конфигурации
/var/lib/pgsql/data/pg_hba.confстроку:host all all 0.0.0.0/0 passwordЭта строка разрешает подключение к СУБД с использованием пароля со всех IP-адресов. Для повышения безопасности рекомендуется указать конкретные IP-адреса или диапазоны адресов, с которых будут разрешены подключения. Например:
host all all 192.168.1.0/24 passwordЭто ограничит доступ к СУБД только для адресов в указанном диапазоне, снижая риск несанкционированных подключений.
-
Перезапустите сервис с помощью команды:
sudo systemctl restart postgresql -
Перейдите в консоль управления БД с помощью команды:
psql -U postgres -
Если при установке брокера:
-
выбрана опция «подключиться к уже существующей базе данных», то выполните шаги:
-
Создайте новую базу данных с помощью команды:
CREATE DATABASE %Имя_Базы%; -
Создайте нового пользователя базы данных с паролем с помощью команды:
CREATE USER %Имя_Пользователя% WITH PASSWORD '%Пароль_Пользователя%'; -
Назначьте права владельца базы данных созданному пользователю с помощью команды:
ALTER DATABASE %Имя_Базы% OWNER TO %Имя_Пользователя%; -
Завершите работу с оболочкой psql и сессией пользователя postgres с помощью команды:
exit -
Примените изменения, перезапустив службу PostgreSQL с помощью команды:
sudo systemctl restart postgresql
-
-
будет выбрана опция «создать новую базу данных», то выполните шаги:
-
Создайте нового пользователя с паролем и правами на создание новых баз данных с помощью команды:
CREATE USER %Имя_Пользователя% WITH PASSWORD '%Пароль_Пользователя%' CREATEDB; -
Выйдите из командной оболочки psql и сессии пользователя postgres с помощью команды:
exit -
Перезапустите сервис PostgreSQL с помощью команды:
sudo systemctl restart postgresql
-
-
Debian
-
Установите сервис PostgreSQL с помощью команды:
sudo apt install postgresql-15 -
Проверьте статус сервиса с помощью команды:
sudo systemctl status postgresql -
При необходимости запустите сервис с помощью команды:
sudo systemctl enable postgresql --now -
Чтобы разрешить удаленное подключение к СУБД, в файле конфигурации
/etc/postgresql/15/main/postgresql.conf, в параметреlisten_addressesдолжно быть значение '*':
-
Чтобы обеспечить достаточное количество слотов для подключений в высоконагруженной системе, в файле конфигурации
/etc/postgresql/15/main/postgresql.confпараметрmax_connectionsдолжен соответствовать значению500. -
Чтобы разрешить удаленное подключение к СУБД, добавьте в файл конфигурации
/etc/postgresql/15/main/pg_hba.confстроку:host all all 0.0.0.0/0 password -
Запустите сессию служебного пользователя postgres с помощью команды:
sudo su - postgres -
Запустите командную оболочку postgres с помощью команды:
psql -
Если при установке брокера:
-
выбрана опция «подключиться к уже существующей базе данных», то выполните шаги:
-
Создайте новую базу данных с помощью команды:
CREATE DATABASE %Имя_Базы%; -
Создайте нового пользователя с паролем с помощью команды:
CREATE USER %Имя_Пользователя% WITH PASSWORD '%Пароль_Пользователя%'; -
Назначьте права владельца базы данных созданному пользователю с помощью команды:
ALTER DATABASE %Имя_Базы% OWNER TO %Имя_Пользователя%; -
Завершите работу с оболочкой psql и сессией пользователя postgres с помощью команды:
exit -
Примените изменения, перезапустив сервис PostgreSQL с помощью команды:
sudo systemctl restart postgresql
-
-
будет выбрана опция «создать новую базу данных», то выполните шаги:
-
Создайте нового пользователя с паролем и правами на создание новых баз данных с помощью команды:
CREATE USER %Имя_Пользователя% WITH PASSWORD '%Пароль_Пользователя%' CREATEDB; -
Выйдите из командной оболочки psql и сессии пользователя postgres с помощью команды:
exit
-
-
-
Перезапустите сервис PostgreSQL с помощью команды:
sudo systemctl restart postgresql
OpenSUSE
-
Установите компоненты PostgreSQL с помощью команды:
При необходимости измените версию PostgreSQL.
sudo zypper install postgresql postgresql-server postgresql-contrib -
Запустите и добавьте автозапуск с помощью команды:
sudo systemctl enable postgresql --now -
Чтобы разрешить удаленное подключение к СУБД, в файле конфигурации
/var/lib/pgsql/data/postgresql.conf, параметрlisten_addressesдолжен соответствовать значению '*'.В инструкции предлагается установить для параметра
listen_addressesзначение * . Это позволит принимать подключения по всем доступным сетевым интерфейсам. Если требуется ограничить доступ только к определенному интерфейсу, то укажите конкретный IP-адрес или имя интерфейса вместо * . Например:listen_addresses='192.168.1.1' илиlisten_addresses='eth0'. Это поможет ограничить подключение к СУБД только с нужного интерфейса, обеспечивая дополнительный уровень безопасности.
-
Чтобы обеспечить достаточное количество слотов для подключений в высоконагруженной системе, в файле конфигурации
/var/lib/pgsql/data/postgresql.confпараметрmax_connectionsдолжен соответствовать значению500. -
Чтобы разрешить удаленное подключение к СУБД с паролем, добавьте в файл конфигурации
/var/lib/pgsql/data/pg_hba.confстроку:host all all 0.0.0.0/0 passwordВ инструкции предлагается добавить в файл конфигурации
/var/lib/pgsql/15/data/pg_hba.confстроку:host all all 0.0.0.0/0 passwordЭта строка разрешает подключение к СУБД с использованием пароля со всех IP-адресов. Для повышения безопасности рекомендуется указать конкретные IP-адреса или диапазоны адресов, с которых будут разрешены подключения. Например:
host all all 192.168.1.0/24 passwordЭто ограничит доступ к СУБД только для адресов в указанном диапазоне, снижая риск несанкционированных подключений.
-
Перезапустите сервис с помощью команды:
sudo systemctl restart postgresql -
Проверьте статус сервиса с помощью команды:
sudo systemctl status postgresqlСтатус должен быть «Active».
-
Перейдите в консоль управления БД с помощью команды:
psql -U postgres -
Если при установке брокера:
-
выбрана опция «подключиться к уже существующей базе данных», то выполните шаги:
-
Создайте новую базу данных с помощью команды:
CREATE DATABASE %Имя_Базы%; -
Создайте нового пользователя с паролем с помощью команды:
CREATE USER %Имя_Пользователя% WITH PASSWORD '%Пароль_Пользователя%'; -
Назначьте права владельца базы данных созданному пользователю с помощью команды:
ALTER DATABASE %Имя_Базы% OWNER TO %Имя_Пользователя%; -
Завершите работу с оболочкой psql и сессией пользователя postgres с помощью команды:
exit -
Примените изменения, перезапустив службу PostgreSQL с помощью команды:
sudo systemctl restart postgresql
-
-
будет выбрана опция «создать новую базу данных», то выполните шаги:
-
Создайте нового пользователя с паролем и правами на создание новых баз данных с помощью команды:
CREATE USER %Имя_Пользователя% WITH PASSWORD '%Пароль_Пользователя%' CREATEDB; -
Выйдите из командной оболочки psql и сессии пользователя postgres с помощью команды:
exit -
Перезапустите сервис PostgreSQL с помощью команды:
sudo systemctl restart postgresql
-
-
|
Если при установке выбирать опцию «подключиться к уже существующей базе данных», вместо назначения пользователя владельцем можно использовать минимально необходимый набор прав. Для этого выполните следующие шаги:
|
5. Миграция базы данных
Ниже описаны действия по обновлению или переносу базы данных.
Миграция в рамках кластера Patroni
Процесс данной миграции включает в себя перенос БД из одного кластера СУБД на базе продукта Patroni + etcd + PostgreSQL (старой версии) на другой кластер СУБД на базе Patroni + etcd + PostgreSQL (новой версии).
Для использования такого подхода необходимо развернуть новый кластер СУБД (минимум 3 сервера) и установить новую версию PostgreSQL, etcd и Patroni.
Пошаговая инструкция
Для миграции базы данных в рамках кластера Patroni выполните следующие действия:
-
Проверьте, что новый сервер СУБД настроен в соответствии с требованиями Termit. Подробнее в разделе.
-
Завершите работу сервисов Termit на всех активных брокерах с помощью команды:
sudo docker stop $(sudo docker ps -q) -
Определите текущий мастер в кластере старой версии Patroni с помощью команды:
patronictl -c %config_file_path% listГде:
%config_file_path%- путь к файлу конфигурации Patroni. -
Выполните экспорт БД на мастер сервере кластера Patroni старой версии PostgreSQL с помощью команды:
pg_dump -U %username% -h %db_host% -p %db_port% -F c -b -v -f %backup_file% %db_name%Где:
-
%username%- имя пользователя с необходимыми правами; -
%db_host%- FQDN имя или IP-адрес текущего мастер-сервера; -
%db_port%- используемый TCP-порт (по умолчанию 5432); -
%backup_file%- имя файла, который будет создан при экспорте с расширением.dump; -
%db_name%- имя базы данных для экспорта.
-
-
Скопируйте экспортированную базу данных на целевой сервер с помощью команды:
scp %backup_file% %target_os_username%@%target_db_host%:%db_file_path%Где:
-
%backup_file%- файл БД для копирования на целевой сервер; -
%target_os_username%- имя пользователя для подключения на целевом сервере СУБД; -
%target_db_host%- FQDN-имя или IP-адрес целевого сервера СУБД; -
%db_file_path%- путь к файлу БД на целевом сервере.
-
-
Определите текущий мастер в кластере новой версии Patroni с помощью команды:
patronictl -c %config_file_path% listГде:
%config_file_path%— путь к файлу конфигурации Patroni. -
Перед выполнением импорта БД, проверьте, что на мастер сервере кластера:
-
создана пустая база данных;
-
для учетной записи назначены соответствующие права (OWNER).;
-
соответствующие права назначены (OWNER) для учетной записи.
-
-
Выполните импорт базы данных на новый мастер сервер с помощью команды:
pg_restore -U %target_db_username% -h %target_db_host% -p %db_port% -d %db_name% -v %backup_file%Где:
-
%backup_file%- файл БД для импорта на целевой сервер; -
%target_db_username%- имя пользователя для подключения на целевом сервере СУБД; -
%db_port%- используемый TCP-порт (по умолчанию 5432); -
%target_db_host%- FQDN имя или IP-адрес целевого сервера СУБД (определен на шаге 6).
При выполнении команды будет запрошен пароль от используемой учетной записи. -
-
Проверьте статус репликации между узлами Patroni на целевом сервере с помощью команды::
patronictl -c /etc/patroni.yml list -
Последовательно внесите изменения в конфигурационный файл Termit
/etc/termit/configна каждом брокере, указав новый сервер СУБД в значении переменнойTERMIT_BROKER_DB_HOST. -
Запустите сервисы Termit с помощью команды:
sudo docker start $(sudo docker ps -a -q) -
Проверьте статус сервисов Termit с помощью команды:
sudo docker psВсе контейнеры должны быть в статусе healthy. -
Перезагрузите брокер Termit.
Миграция в рамках одного сервера
Данный процесс включает перенос базы данных с одного экземпляра PostgreSQL (старой версии) на другой экземпляр той же операционной системы (например, в ОС РедОС), но с обновлённой версией PostgreSQL.
Для использования такого подхода необходимо установить новую версию PostgreSQL и назначить для использования порт, отличающийся от 5432.
Пошаговая инструкция
Для миграции базы данных в рамках одного сервера выполните следующие действия:
-
Установите второй экземпляр СУБД и подготовьте его в соответствии с требованиями Termit. Подробнее в разделе.
Обратите внимание, для одновременной работы двух экземпляров СУБД необходимо в файле конфигурации /var/lib/pgsql/15/data/postgresql.confизменить порт по умолчанию c 5432 на другой доступный, например 5433. -
Завершите работу сервисов Termit на всех активных брокерах с помощью команды:
sudo docker stop $(sudo docker ps -q) -
Выполните экспорт БД на сервере СУБД с помощью команды:
pg_dump -U %username% -h %db_host% -p %db_port% -F c -b -v -f %backup_file% %db_name%Где:
-
%username%- имя пользователя с необходимыми правами; -
%db_host%- FQDN имя или IP-адрес текущего мастер сервера; -
%db_port%- используемый TCP-порт (по умолчанию 5432); -
%backup_file%- имя файла, который будет создан при экспорте с расширением.dump; -
%db_name%- имя базы данных для экспорта.При выполнении команды будет запрошен пароль от используемой учетной записи.
-
-
Перед выполнением импорта базы данных, убедитесь, что:
-
создана пустая база данных
%target_db_name%; -
создана учетная запись, которая будет использована для Termit
%target_db_username%;; -
для учетной записи назначены соответствующие права (OWNER).
-
-
Выполните импорт базы данных на целевой сервер с помощью команды:
pg_restore -U %target_db_username% -h %db_host% -p %db_port% -d %target_db_name% -v %backup_file%Где:
-
%target_username%- имя пользователя на новом экземпляре PostgreSQL, который будет владельцем новой базы; -
%db_host%- FQDN-имя или IP-адрес сервера СУБД; -
%db_port%- TCP-порт нового экземпляра PostgreSQL (например, 5433); -
%target_db_name%- имя базы данных для импорта; -
%backup_file%- имя файла дампа, созданного при экспорте базы с расширением.dump.При выполнении команды будет запрошен пароль от используемой учетной записи.
-
-
Последовательно внесите изменения в конфигурационный файл Termit
/etc/termit/configна каждом брокере, указав новый порт для подключения СУБД (например,TERMIT_BROKER_DB_PORT=5433). -
Запустите сервисы Termit с помощью команды:
sudo docker start $(sudo docker ps -a -q) -
Проверьте статус сервисов Termit с помощью команды:
sudo docker psВсе контейнеры должны быть в статусе healthy. -
Перезагрузите брокер Termit.
Миграция в рамках разных серверов
Данный процесс миграции состоит из переноса БД с одной виртуальной машины (сервера) PostgreSQL (старой версии) на другую виртуальную машину (сервер) PostgreSQL (новой версии).
Для использования такого подхода необходимо создать новую виртуальную машину и установить новую версию PostgreSQL.
Пошаговая инструкция
Для миграции базы данных в рамках разных серверов выполните следующие действия:
-
Установите второй экземпляр СУБД и подготовьте его в соответствии с требованиями Termit. Подробнее в разделе.
-
Завершите работу сервисов Termit на всех активных брокерах с помощью команды:
sudo docker stop $(sudo docker ps -q) -
Выполните экспорт БД на исходном сервере СУБД с помощью команды:
pg_dump -U %username% -h %db_host% -p %db_port% -F c -b -v -f %backup_file% %db_name%Где:
-
%username%- имя пользователя с необходимыми правами; -
%db_host%- FQDN-имя или IP-адрес исходного сервера СУБД; -
%db_port%- используемый TCP-порт (по умолчанию 5432); -
%backup_file%- имя файла для экспорта с расширением.dump; -
%db_name%- имя базы данных для экспорта.При выполнении команды будет запрошен пароль от используемой учетной записи.
-
-
Скопируйте экспортированную базу данных на целевой сервер с помощью команды:
scp %backup_file% %target_os_username%@%target_db_host%:%db_file_path%Где:
-
%backup_file%- файл БД для копирования на целевой сервер; -
%target_os_username%- имя пользователя для подключения на целевом сервере СУБД; -
%target_db_host%- FQDN имя или IP-адрес целевого сервера СУБД; -
%db_file_path%- путь к файлу БД на целевом сервере.При выполнении команды будет запрошен пароль от используемой учетной записи.
-
-
Перед выполнением импорта базы данных, убедитесь, что:
-
создана пустая база данных на целевом сервере
%db_name%; -
создана учетная запись, которая будет использована для Termit
%db_username%;; -
для учетной записи назначены соответствующие права (OWNER)
%db_username%.
-
-
Выполните импорт базы данных на целевом сервере с помощью команды:
pg_restore -U %db_username% -h %target_db_host% -p %db__port% -d %db_name% -v %backup_file%Где:
-
%username%- имя пользователя с необходимыми правами; -
target_%db_host%- FQDN-имя или IP-адрес целевого сервера; -
%db_port%- используемый TCP-порт (по умолчанию 5432); -
%db_name%- имя базы данных для экспорта; -
%backup_file%- имя файла для экспорта с расширением.dump.При выполнении команды будет запрошен пароль от используемой учетной записи.
-
-
Последовательно внесите изменения в конфигурационный файл Termit
/etc/termit/configна каждом брокере, указав новый сервер СУБД в значении переменнойTERMIT_BROKER_DB_HOST. -
Запустите сервисы Termit с помощью команды:
sudo docker start $(sudo docker ps -a -q) -
Проверьте статус сервисов Termit с помощью команды:
sudo docker psВсе контейнеры должны быть в статусе healthy. -
Перезагрузите брокер Termit.
6. Установка балансировщика нагрузки
В этом разделе приведены инструкции по созданию балансировщика нагрузки с высокой доступностью, используя HAProxy и Keepalived. Эти инструменты помогут вам разработать отказоустойчивую архитектуру: она обеспечит минимальное время простоя и повысит производительность системы.
HAProxy и Keepalived обычно используются совместно для построения отказоустойчивой архитектуры, при этом выполняют разные функции:
-
HAProxy отвечает за балансировку нагрузки и маршрутизацию трафика между брокерами. Он обеспечивает распределение подключений и поддерживает работу в режимах TCP/HTTP, а также SSL Passthrough или SSL Bridging.
-
Keepalived отвечает за высокую доступность самого балансировщика. Он следит за состоянием узлов и с помощью механизма виртуального IP (VIP) автоматически переключает трафик на доступный узел в случае сбоя.
На практике оба сервиса устанавливают на одних и тех же серверах, но для полноценной отказоустойчивости требуется минимум два узла, между которыми Keepalived будет переключать VIP в случае сбоя.
Если вы планируете конфигурацию с одним брокером, то пропустите установку балансировщика нагрузки и перейдите к установке брокера.
|
В текущей реализации поддерживаются:
Ниже приведены инструкции по установке и настройке HAProxy и Keepalived. Вы можете использовать другой балансировщик нагрузки, однако убедитесь, что он настроен для работы в режиме SSL Passthrough или SSL Bridging. |
Перейти к:
7. Установка брокера
В этом разделе описаны шаги по установке и первичной настройке сервера с ролью брокер, входящего в состав Termit.
|
РЕД ОС
Перед установкой брокера выполните шаги 1-2 по установке Docker, Docker Compose или перейдите к шагу 3 (установочный скрипт выполнит шаги 1-2, запрашивая подтверждение):
|
Для установки компонентов необходимы настроенные репозитории. |
-
Чтобы установить Docker, Docker Compose, выполните команду:
sudo dnf install docker-ce docker-ce-cli docker-compose -
Чтобы установленные компоненты добавить в автозагрузку, выполните команду:
sudo systemctl enable docker --now -
Скопируйте дистрибутив на сервер.
-
Распакуйте архив с помощью команды:
unzip termit-2.*.*-*.zip -
При необходимости назначьте права на запуск скрипта с помощью команды:
sudo chmod +x ./install.sh -
Запустите скрипт:
sudo ./install.sh install -
Введите пароль администратора системы.
-
Укажите имя узла брокера. Имя может быть любым.
-
Появится сообщение:
«What do you want to do? (1/2) 1. Install first node of a new cluster 2. Add a new node to existing cluster Enter 1 or 2»Укажите «1».
-
Введите FQDN адрес брокера (инсталляция «Standalone») или балансировщика (инсталляция «High Availability» (HA)), например «broker.example.com». Портал будет доступен по этому адресу.
-
Появится сообщение:
Do you want to connect to an existing database or create a new one? (1/2) 1. Connect to an existing database 2. Create new database Enter 1 or 2?-
Если вы хотите подключиться к существующей базе данных (БД), то:
-
Укажите «1».
-
Укажите имя хоста БД, например «db.example.com».
-
Укажите порт «5432».
-
Укажите имя БД, например «example».
-
Укажите имя пользователя БД, например «termit».
-
Введите пароль для БД.
-
-
Если вы хотите создать новую базу данных (БД), то:
-
Укажите «2».
-
Укажите имя хоста БД, например «db.example.com».
-
Укажите порт «5432».
-
Укажите имя новой БД.
-
Укажите имя пользователя БД, например «termit».
-
Введите пароль для БД.
-
-
Установка брокера занимает около двух минут. Во время запуска отображается ключ шифрования БД, который необходимо сохранить. Этот ключ нужен для установки дополнительных брокеров.
Для подтверждения успешной операции в браузере, в адресной строке, введите адрес брокера https://broker.example.com. В появившемся окне аутентификации укажите логин «tadm» и пароль «admin» от учетной записи по умолчанию.
|
Astra Linux
Перед установкой брокера выполните шаги 1-2 по установке Docker, Docker Compose или перейдите к шагу 3 (установочный скрипт выполнит шаги 1-2, запрашивая подтверждение):
|
-
Установите Docker и Docker Compose:
-
Для Astra Linux 1.7 выполните команду:
sudo apt install docker.io docker-composeПакет docker-composeв Astra Linux 1.7 является устаревшим. В связи с этим могут возникать различия в разделителях в названиях контейнеров (комбинация символов _ и -). -
Для Astra Linux 1.8 выполните команду:
sudo apt install docker.io docker-compose-v2Подробнее об установке Docker Compose v2 в Astra Linux 1.8 можно прочесть на официальном сайте Astra Linux.
-
-
Чтобы установленные компоненты добавить в автозагрузку, выполните команду:
sudo systemctl start docker -
Скопируйте дистрибутив на сервер.
-
Распакуйте архив с помощью команды:
unzip termit-2.*.*-*.zip -
При необходимости назначьте права на запуск скрипта с помощью команды:
sudo chmod +x ./install.sh -
Запустите скрипт:
sudo ./install.sh install -
Введите пароль администратора системы.
-
Укажите имя узла брокера. Имя может быть любым.
-
Появится сообщение:
«What do you want to do? (1/2) 1. Install first node of a new cluster 2. Add a new node to existing cluster Enter 1 or 2»Укажите «1».
-
Введите FQDN адрес брокера (инсталляция «Standalone») или балансировщика (инсталляция «HA»), например «broker.example.com». Портал будет доступен по этому адресу.
-
Появится сообщение:
Do you want to connect to an existing database or create a new one? (1/2) 1. Connect to an existing database 2. Create new database Enter 1 or 2?-
Если вы хотите подключиться к существующей базе данных (БД), то:
-
Укажите «1».
-
Укажите имя хоста БД, например «db.example.com».
-
Укажите порт «5432».
-
Укажите имя БД, например «example».
-
Укажите имя пользователя БД, например «termit».
-
Введите пароль для БД.
-
-
Если вы хотите создать новую базу данных (БД), то:
-
Укажите «2».
-
Укажите имя хоста БД, например «db.example.com».
-
Укажите порт «5432».
-
Укажите имя новой БД.
-
Укажите имя пользователя БД, например «termit».
-
Введите пароль для БД.
-
-
Установка брокера занимает около двух минут. Во время запуска отображается ключ шифрования БД, который необходимо сохранить. Этот ключ нужен для установки дополнительных брокеров.
Для подтверждения успешной операции в браузере, в адресной строке, введите адрес брокера https://broker.example.com. В появившемся окне аутентификации укажите логин «tadm» и пароль «admin» от учетной записи по умолчанию.
|
ALT Linux
Перед установкой брокера выполните шаги 1-2 по установке Docker, Docker Compose или перейдите к шагу 3 (установочный скрипт выполнит шаги 1-2, запрашивая подтверждение):
|
Для установки компонентов необходимы настроенные репозитории. |
-
Чтобы установить Docker, Docker Compose, выполните команду:
sudo apt-get install docker-ce docker-compose -
Чтобы установленные компоненты добавить в автозагрузку, выполните команду:
sudo systemctl enable docker --now -
Распакуйте архив с помощью команды:
unzip ./termit-2.1*.*-*.zip -
Запустите установку с помощью команды:
sudo ./install.sh install -
Введите пароль администратора системы.
-
Укажите имя узла брокера. Имя может быть любым.
-
Появится сообщение:
«What do you want to do? (1/2) 1. Install first node of a new cluster 2. Add a new node to existing cluster Enter 1 or 2»Укажите «1».
-
Введите FQDN адрес брокера (инсталляция «Standalone») или балансировщика (инсталляция «HA»), например «broker.example.com». Портал будет доступен по этому адресу.
-
Появится сообщение:
Do you want to connect to an existing database or create a new one? (1/2) 1. Connect to an existing database 2. Create new database Enter 1 or 2?-
Если вы хотите подключиться к существующей базе данных (БД), то:
-
Укажите «1».
-
Укажите имя хоста БД, например «db.example.com».
-
Укажите порт «5432».
-
Укажите имя БД, например «example».
-
Укажите имя пользователя БД, например «termit».
-
Введите пароль для БД.
-
-
Если вы хотите создать новую базу данных (БД), то:
-
Укажите «2».
-
Укажите имя хоста БД, например «db.example.com».
-
Укажите порт «5432».
-
Укажите имя новой БД.
-
Укажите имя пользователя БД, например «termit».
-
Введите пароль для БД.
-
-
Установка брокера занимает около двух минут. Во время запуска отображается ключ шифрования БД, который необходимо сохранить. Этот ключ нужен для установки дополнительных брокеров.
Для подтверждения успешной операции в браузере, в адресной строке, введите адрес брокера https://broker.example.com. В появившемся окне аутентификации укажите логин «tadm» и пароль «admin» от учетной записи по умолчанию.
|
Debian
Перед установкой брокера выполните шаги 1-2 по установке Docker, Docker Compose или перейдите к шагу 3 (установочный скрипт выполнит шаги 1-2, запрашивая подтверждение):
|
Для установки компонентов необходимы настроенные репозитории. |
-
Чтобы установить Docker, Docker Compose, выполните команду:
sudo apt install docker.io docker-compose -
Чтобы установленные компоненты добавить в автозагрузку, выполните команду:
sudo systemctl enable docker --now -
Распакуйте архив с помощью команды:
unzip termit-2.*.*-*.zip -
Запустите установку с помощью команды:
sudo ./install.sh install -
Введите пароль администратора системы.
-
Укажите имя узла брокера. Имя может быть любым.
-
Появится сообщение:
«What do you want to do? (1/2) 1. Install first node of a new cluster 2. Add a new node to existing cluster Enter 1 or 2»Укажите «1».
-
Введите FQDN адрес брокера (инсталляция «Standalone») или балансировщика (инсталляция «HA»), например «broker.example.com». Портал будет доступен по этому адресу.
-
Появится сообщение:
Do you want to connect to an existing database or create a new one? (1/2) 1. Connect to an existing database 2. Create new database Enter 1 or 2?-
Если вы хотите подключиться к существующей базе данных (БД), то:
-
Укажите «1».
-
Укажите имя хоста БД, например «db.example.com».
-
Укажите порт «5432».
-
Укажите имя БД, например «example».
-
Укажите имя пользователя БД, например «termit».
-
Введите пароль для БД.
-
-
Если вы хотите создать новую базу данных (БД), то:
-
Укажите «2».
-
Укажите имя хоста БД, например «db.example.com».
-
Укажите порт «5432».
-
Укажите имя новой БД.
-
Укажите имя пользователя БД, например «termit».
-
Введите пароль для БД.
-
-
Установка брокера занимает около двух минут. Во время запуска отображается ключ шифрования БД, который необходимо сохранить. Этот ключ нужен для установки дополнительных брокеров.
Для подтверждения успешной операции в браузере, в адресной строке, введите адрес брокера https://broker.example.com. В появившемся окне аутентификации укажите логин «tadm» и пароль «admin» от учетной записи по умолчанию.
OpenSUSE
Перед установкой брокера выполните шаги 1-2 по установке Docker, Docker Compose или перейдите к шагу 3 (установочный скрипт выполнит шаги 1-2, запрашивая подтверждение):
|
Для установки компонентов необходимы настроенные репозитории. |
-
Чтобы установить Docker, Docker Compose, выполните команду:
sudo zypper install docker docker-compose docker-compose-switch -
Чтобы установленные компоненты добавить в автозагрузку, выполните команду:
sudo systemctl enable docker --now -
Скопируйте дистрибутив на сервер.
-
Распакуйте архив с помощью команды:
unzip ./termit-2.1*.*-*.zip -
При необходимости назначьте права на запуск скрипта с помощью команды:
sudo chmod +x ./install.sh -
Запустите скрипт:
sudo ./install.sh install -
Введите пароль администратора системы.
-
Укажите имя узла брокера. Имя может быть любым.
-
Появится сообщение:
«What do you want to do? (1/2) 1. Install first node of a new cluster 2. Add a new node to existing cluster Enter 1 or 2»Укажите «1».
-
Введите FQDN адрес брокера (инсталляция «Standalone») или балансировщика (инсталляция «HA»), например «broker.example.com». Портал будет доступен по этому адресу.
-
Появится сообщение:
Do you want to connect to an existing database or create a new one? (1/2) 1. Connect to an existing database 2. Create new database Enter 1 or 2?-
Если вы хотите подключиться к существующей базе данных (БД), то:
-
Укажите «1».
-
Укажите имя хоста БД, например «db.example.com».
-
Укажите порт «5432».
-
Укажите имя БД, например «example».
-
Укажите имя пользователя БД, например «termit».
-
Введите пароль для БД.
-
-
Если вы хотите создать новую базу данных (БД), то:
-
Укажите «2».
-
Укажите имя хоста БД, например «db.example.com».
-
Укажите порт «5432».
-
Укажите имя новой БД.
-
Укажите имя пользователя БД, например «termit».
-
Введите пароль для БД.
-
-
Установка брокера занимает около двух минут. Во время запуска отображается ключ шифрования БД, который необходимо сохранить. Этот ключ нужен для установки дополнительных брокеров.
Для подтверждения успешной операции в браузере, в адресной строке, введите адрес брокера https://broker.example.com. В появившемся окне аутентификации укажите логин «tadm» и пароль «admin» от учетной записи по умолчанию.
|
8. Установка дополнительного брокера
В этом разделе описано, как установить второй и следующие брокеры.
Перед добавлением брокеров скопируйте дистрибутив на сервер, распакуйте архив и подготовьте ключ шифрования. Рекомендуется создать три брокера для повышения отказоустойчивости, так как:
-
если один из брокеров выйдет из строя, то другие продолжат работать, обеспечивая бесперебойную работу системы;
-
вероятность одновременного сбоя сразу трех брокеров гораздо ниже, что делает систему более устойчивой к неполадкам.
РЕД ОС
Перед установкой брокера выполните шаги 1-2 по установке Docker, Docker Compose или перейдите к шагу 3 (установочный скрипт выполнит шаги 1-2, запрашивая подтверждение):
|
Для установки компонентов необходимы настроенные репозитории. |
-
Чтобы установить Docker, Docker Compose, выполните команду:
sudo dnf install docker-ce docker-ce-cli docker-compose -
Чтобы установленные компоненты добавить в автозагрузку, выполните команду:
sudo systemctl enable docker --now -
При необходимости назначьте права на запуск скрипта с помощью команды:
sudo chmod +x ./install.sh -
Запустите скрипт:
sudo ./install.sh install -
Введите пароль администратора системы.
-
Укажите имя узла брокера. Имя может быть любым.
-
Появится сообщение:
«What do you want to do? (1/2) 1. Install first node of new cluster 2. Add new node to existing cluster Enter 1 or 2»Укажите «2».
-
Укажите имя хоста базы данных (БД), например «db.example.com».
-
Укажите порт «5432».
-
Укажите имя БД, например «example».
-
Укажите имя пользователя БД, например «termit».
-
Введите пароль для БД.
-
Вставьте скопированный ключ шифрования.
-
Введите адрес, указанный на шаге, и проверьте статус брокера в меню после аутентификации.
Установка брокера занимает около двух минут. Для подтверждения успешной операции перейдите на портал администрирования и проверьте, что в разделе Брокеры брокер появился в списке со статусом «Работает».
Astra Linux
Перед установкой брокера выполните шаги 1-2 по установке Docker, Docker Compose или перейдите к шагу 3 (установочный скрипт выполнит шаги 1-2, запрашивая подтверждение):
|
Для установки компонентов необходимы настроенные репозитории. |
-
Чтобы установить Docker, Docker Compose, выполните команду:
sudo apt install docker.io docker-compose -
Чтобы установленные компоненты добавить в автозагрузку, выполните команду:
sudo systemctl start docker -
При необходимости назначьте права на запуск скрипта с помощью команды:
sudo chmod +x ./install.sh -
Запустите скрипт:
sudo ./install.sh install -
Введите пароль администратора системы.
-
Укажите имя узла брокера. Имя может быть любым.
-
Появится сообщение:
«What do you want to do? (1/2) 1. Install first node of new cluster 2. Add new node to existing cluster Enter 1 or 2»Укажите «2».
-
Укажите имя хоста базы данных (БД), например «db.example.com».
-
Укажите порт «5432».
-
Укажите имя БД, например «example».
-
Укажите имя пользователя БД, например «termit».
-
Введите пароль для БД.
-
Вставьте скопированный ключ шифрования.
-
Введите адрес, указанный на шаге, и проверьте статус брокера в меню после аутентификации.
Установка брокера занимает около двух минут. Для подтверждения успешной операции перейдите на портал администрирования и проверьте, что в разделе Брокеры брокер появился в списке со статусом «Работает».
ALT Linux
Перед установкой брокера выполните шаги 1-2 по установке Docker, Docker Compose или перейдите к шагу 3 (установочный скрипт выполнит шаги 1-2, запрашивая подтверждение):
|
Для установки компонентов необходимы настроенные репозитории. |
-
Чтобы установить Docker, Docker Compose, выполните команду:
sudo apt-get install docker-ce docker-composeДля Docker Compose v2, устанавливаемого в качестве плагина (проверьте, что у вас установлен именно плагин с помощью команды
docker compose version(не путать сdocker-compose --version). Если вывод команды содержит установленную версию Docker Compose — у вас установлен плагин) необходимо создать символьную ссылку для корректной работы установочного скрипта. Для этого выполните команду:sudo ln -s /usr/lib/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose -
Чтобы установленные компоненты добавить в автозагрузку, выполните команду:
sudo systemctl enable docker --now -
При необходимости назначьте права на запуск скрипта с помощью команды:
sudo chmod +x ./install.sh -
Запустите скрипт:
sudo ./install.sh install -
Введите пароль администратора системы.
-
Укажите имя узла брокера. Имя может быть любым.
-
Появится сообщение:
«What do you want to do? (1/2) 1. Install first node of new cluster 2. Add new node to existing cluster Enter 1 or 2»Укажите «2».
-
Укажите имя хоста базы данных (БД), например «db.example.com».
-
Укажите порт «5432».
-
Укажите имя БД, например «example».
-
Укажите имя пользователя БД, например «termit».
-
Введите пароль для БД.
-
Вставьте скопированный ключ шифрования.
-
Введите адрес, указанный на шаге, и проверьте статус брокера в меню после аутентификации.
Установка брокера занимает около двух минут. Для подтверждения успешной операции перейдите на портал администрирования и проверьте, что в разделе Брокеры брокер появился в списке со статусом «Работает».
Debian
Перед установкой брокера выполните шаги 1-2 по установке Docker, Docker Compose или перейдите к шагу 3 (установочный скрипт выполнит шаги 1-2, запрашивая подтверждение):
|
Для установки компонентов необходимы настроенные репозитории. |
-
Чтобы установить Docker, Docker Compose, выполните команду:
sudo apt install docker.io docker-compose -
Чтобы установленные компоненты добавить в автозагрузку, выполните команду:
sudo systemctl enable docker --now -
При необходимости назначьте права на запуск скрипта с помощью команды:
sudo chmod +x ./install.sh -
Запустите скрипт:
sudo ./install.sh install -
Введите пароль администратора системы.
-
Укажите имя узла брокера. Имя может быть любым.
-
Появится сообщение:
«What do you want to do? (1/2) 1. Install first node of new cluster 2. Add new node to existing cluster Enter 1 or 2»Укажите «2».
-
Укажите имя хоста базы данных (БД), например «db.example.com».
-
Укажите порт «5432».
-
Укажите имя БД, например «example».
-
Укажите имя пользователя БД, например «termit».
-
Введите пароль для БД.
-
Вставьте скопированный ключ шифрования.
-
Введите адрес, указанный на шаге, и проверьте статус брокера в меню после аутентификации.
Установка брокера занимает около двух минут. Для подтверждения успешной операции перейдите на портал администрирования и проверьте, что в разделе Брокеры брокер появился в списке со статусом «Работает».
OpenSUSE
Перед установкой брокера выполните шаги 1-2 по установке Docker, Docker Compose или перейдите к шагу 3 (установочный скрипт выполнит шаги 1-2, запрашивая подтверждение):
|
Для установки компонентов необходимы настроенные репозитории. |
-
Чтобы установить Docker, Docker Compose, выполните команду:
sudo zypper install docker docker-compose docker-compose-switch -
Запустите службу с помощью команды:
sudo systemctl enable docker --now -
При необходимости назначьте права на запуск скрипта с помощью команды:
sudo chmod +x ./install.sh -
Запустите скрипт:
sudo ./install.sh install -
Введите пароль администратора системы.
-
Укажите имя узла брокера. Имя может быть любым.
-
Появится сообщение:
«What do you want to do? (1/2) 1. Install first node of new cluster 2. Add new node to existing cluster Enter 1 or 2»Укажите «2».
-
Укажите имя хоста базы данных (БД), например «db.example.com».
-
Укажите порт «5432».
-
Укажите имя БД, например «example».
-
Укажите имя пользователя БД, например «termit».
-
Введите пароль для БД.
-
Вставьте скопированный ключ шифрования.
-
Введите адрес, указанный на шаге, и проверьте статус брокера в меню после аутентификации.
Установка брокера занимает около двух минут. Для подтверждения успешной операции перейдите на портал администрирования и проверьте, что в разделе Брокеры брокер появился в списке со статусом «Работает».
9. Установка дополнительного ПО на терминальный сервер/ВРМ
Установите дополнительное ПО перед установкой агента на терминальный сервер.
РЕД ОС
|
Проверьте, что все терминальные серверы введены в домен. Подробнее в статье Ввод РЕД ОС в домен. |
-
В файле конфигурации
sshd (/etc/ssh/sshd_config), в параметреX11Forwarding, укажите значение «yes». -
Чтобы установить X2Go server на терминальный сервер, выполните команду:
sudo dnf install x2goserver-xsession x2goserver-fmbindings x2goserver-common x2goserver x2goagent x2goserver-printing cups-x2go -
Чтобы избежать ошибки при монтировании сетевых дисков и папок, установите пакеты
cifs-utilsиautofsс помощью команды:sudo dnf install cifs-utils autofs -
Для корректного перенаправления смарт-карт на сервер установите утилиту
socatс помощью команды:sudo dnf install socat -
Для работы со смарт-картами:
-
установите утилиту
pcsc-tools:sudo dnf install pcsc-tools -
запустите службу с помощью команды:
sudo systemctl enable pcscd.service --now
-
-
Установите пакет
patch, необходимый для переноса изменений между разными версиями текстовых файлов с помощью команды:sudo dnf install patch -
Настройте сетевой доступ к локальным хранилищам, установив пакет NFS-хранилища:
sudo dnf install nfs-utils nfs4-acl-tools -
Подготовьте золотой образ, если планируете создать сервер в качестве золотого образа.
Если планируете использовать как базовый терминальный сервер - установите агент, используя скрипт, полученный при создании сервера.
Astra Linux
|
Проверьте, что все терминальные серверы введены в домен. Подробнее в статье Ввод Astra Linux в домен. |
-
В файле конфигурации
sshd (/etc/ssh/sshd_config), в параметреX11Forwarding, укажите значение «yes». -
В файле конфигурации
/etc/systemd/logind.conf, в параметреKillUserProcessesзадайте значение «no» для корректной работы переподключения сессии и перезагрузите терминальный сервер.
-
Установите компоненты X2Go сервера с помощью команды:
sudo apt install x2goserver-xsession x2goserver-fmbindings x2goserver-common x2goserver-x2goagent x2goserver-printing cups-x2go -
Чтобы избежать ошибки при монтировании сетевых дисков и папок, установите пакеты
cifs-utilsиautofsс помощью команды:sudo apt install cifs-utils autofs -
Для корректного перенаправления смарт-карт на сервер установите утилиту
socatс помощью команды:sudo apt install socat -
Для работы со смарт-картами:
-
установите утилиты
pcscdиpcsc-toolsc помощью команды:sudo apt install pcscd pcsc-tools -
запустите службу с помощью команды:
sudo systemctl enable pcscd.service --now
-
-
Установите пакет
patch, необходимый для переноса изменений между разными версиями текстовых файлов с помощью команды:sudo apt install patch -
Подготовьте золотой образ, если планируете создать сервер в качестве золотого образа.
Если планируете использовать как базовый терминальный сервер - установите агент, используя скрипт, полученный при создании сервера.
ALT Linux
|
Проверьте, что все терминальные серверы введены в домен. Подробнее в статье Ввод ALT Linux в домен. |
-
В файле конфигурации
sshd (/etc/openssh/sshd_config), в параметреX11Forwarding, укажите значение «yes». -
В файле конфигурации
/etc/systemd/logind.conf, в параметреKillUserProcessesзадайте значение «no» для корректной работы переподключения сессии и перезагрузите терминальный сервер. -
Установите компоненты X2Go сервера с помощью команды:
sudo apt-get install x2goserver-xsession x2goserver-fmbindings x2goserver-x2goagent x2goserver-printing cups-x2go -
Добавьте X2Go в автозапуск с помощью команды:
sudo systemctl enable x2goserver --now -
Чтобы избежать ошибки при монтировании сетевых дисков и папок, установите пакеты
cifs-utilsиautofsс помощью команды:sudo apt-get install cifs-utils autofs -
Для корректного перенаправления смарт-карт на сервер установите утилиту
socatс помощью команды:sudo apt-get install socat -
Для работы со смарт-картами:
-
установите утилиты
pcsc-toolsиpcsc-lite-ccid:sudo apt-get install pcsc-tools pcsc-lite-ccid -
запустите службу с помощью команды:
sudo systemctl enable pcscd.service --now
-
-
Установите пакет
patch, необходимый для переноса изменений между разными версиями текстовых файлов с помощью команды:sudo apt-get install patch -
Установите агент, используя скрипт, полученный при создании сервера.
Debian
|
Проверьте, что все терминальные серверы введены в домен. Подробнее в статье Ввод Debian в домен. |
-
В файле конфигурации
sshd (/etc/ssh/sshd_config), в параметреX11Forwarding, укажите значение «yes». -
Установите компоненты X2Go сервера с помощью команды:
sudo apt install x2goserver-xsession x2goserver-fmbindings x2goserver-common x2goserver-x2goagent x2goserver-printing cups-x2go -
Чтобы избежать ошибки при монтировании сетевых дисков, установите пакет
cifs-utilsиautofsс помощью команды:sudo apt install cifs-utils autofs -
Для корректного перенаправления смарт-карт на сервер установите утилиту
socatс помощью команды:sudo apt install socat -
Для работы со смарт-картами:
-
установите утилиты
pcsc-toolsиpcsc-lite-ccid:sudo apt install pcsc-tools pcsc-lite-ccid -
запустите службу с помощью команды:
sudo systemctl enable pcscd.service --now
-
-
Установите пакет
patch, необходимый для переноса изменений между разными версиями текстовых файлов с помощью команды:sudo apt install patch -
Установите пакет
libqt5widgets5, необходимый для запуска программ, которые были написаны с использованием графических элементов Qt 5 с помощью команды:sudo apt install libqt5widgets5 -
Установите агент, используя скрипт, полученный при создании сервера.
OpenSUSE
В этой инструкции приведен пример установки пакета для X2Go, скачанного по этой ссылке.
|
-
Добавьте репозиторий X2Go с помощью команды:
sudo zypper addrepo -f http://packages.x2go.org/opensuse/15.4/main x2go_repos -
Обновите репозиторий с помощью команды:
sudo zypper refresh -
Установите компоненты X2Go сервера с помощью команды:
sudo zypper install x2goserver x2goserver-printing cups-x2go -
Добавьте X2Go в автозапуск с помощью команды:
sudo systemctl enable x2goserver.service --now -
Проверьте статус службы x2goserver с помощью команды:
sudo systemctl status x2goserver.serviceСтатус должен быть «Active».
-
Чтобы избежать ошибки при монтировании сетевых дисков, установите пакеты
cifs-utilsиautofsс помощью команды:sudo zypper install cifs-utils autofs -
Для работы со смарт-картами:
-
установите утилиту
pcsc-liteиpcsc-toolsс помощью команды:sudo zypper install pcsc-lite pcsc-tools -
запустите службу с помощью команды:
sudo systemctl enable pcscd.service --now
-
-
Установите пакет
patch, необходимый для переноса изменений между разными версиями текстовых файлов с помощью команды:sudo zypper install patch -
Для корректного перенаправления смарт-карт на сервер установите утилиту
socatс помощью команды:sudo zypper install socat -
Установите агент, используя скрипт, полученный при создании сервера, добавив в конце параметр
-p /etc/systemd/system/.Пример скрипта:
rm -f ./agent-installer && wget --no-check-certificate https://<FQDN брокера/балансировщика>/dist/agent-installer -O agent-installer && sudo chmod +x agent-installer && sudo ./agent-installer install https://<FQDN брокера/балансировщика> <секрет> -p /etc/systemd/system/Последний параметр является опциональным и указывается в тех случаях, когда каталог
systemdотсутствует в директории/lib(то есть не существует пути/lib/systemd/system/, необходимого для установки агента) и находится по другому пути. В случае OpenSUSE для доступа к каталогуsystemdнеобходимо указывать параметр-p /etc/systemd/system/в конце скрипта, иначе агент не будет установлен.Пример:
Windows
|
-
Установите роль «Remote Desktop Session Host» («Узел сеансов удаленных рабочих столов») c помощью команды
powershell:Install-WindowsFeature -Name RDS-RD-Server -IncludeManagementToolsПосле установки и добавления роли перезагрузите ВМ.
-
Включите политики для разрешения запуска любых программ:
Для ТС
-
с помощью
powershellна локальной машине:New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name "fAllowUnlistedRemotePrograms" -Value 1 -PropertyType "DWord" -Force -
или через доменную политику: .
Для ВРМ
-
с помощью
powershellна локальной машине:New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList" -Name "fDisabledAllowList" -Value 1 -PropertyType DWord -Force New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name "fAllowUnlistedRemotePrograms" -Value 1 -PropertyType "DWord" -Force -
или через доменную политику: .
-
-
Для ВРМ Настройте автоматический запуск агента с помощью powershell на локальной машине:
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -Name "TermitLauncher" -Value '"C:\Program Files\TermitAgent\agent-session-launcher.exe" vdi_desktop_launch' -PropertyType String -Force -
Установите Latest Microsoft Visual C++ Redistributable Version.
-
Настройте разрешение на подключение пользователей по RDP:
-
Откройте Управление компьютером и выберите Локальные пользователи и группы.
-
Добавьте в группу «Пользователи удаленного рабочего стола» объект из LDAP-каталога для запуска приложений/рабочих столов, например Пользователи домена.
-
-
Добавьте правило в firewall, выполнив команду в командной строке Windows (CMD), согласно таблице.
-
Установите агент, используя скрипт, полученный при создании сервера базовым способом. Установка должна выполняться с правами администратора.
При создании ТС/ВРМ через золотой образ, выполнение пункта 7 требуется пропустить.
-
Для перенаправления устройств и ресурсов необходимо выполнить настройки групповых политик ОС Windows, которые реализуют аналогичные настройки Termit, приведенные в таблице ниже.
По умолчанию значение обозначенных GPO политик выставлено в Не задано.
В каждой организации данные настройки уже могут быть заданы через групповые или локальные политики.
Категория политики Termit Название политики Termit Статус настройки политики по умолчанию GPO-настройка Значение GPO — Статус политики Termit Перенаправление устройств и ресурсов
Перенаправление буфера обмена
Разрешено
Путь: .
Параметр: Не разрешать перенаправление буфера обмена.
-
Не задано — Разрешено
-
Отключено — Разрешено
-
Включено — Запрещено
Перенаправление устройств и ресурсов
Перенаправление звука и микрофона
Разрешено
Путь: .
Параметры:
-
Разрешить перенаправление воспроизведения звука и видео
-
Разрешить перенаправление записи звука
-
Звук и видео:
-
Не задано — Разрешено
-
Отключено — Запрещено
-
Включено — Разрешено
-
-
Запись звука:
-
Не задано — Разрешено
-
Отключено — Запрещено
-
Включено — Разрешено
-
Перенаправление устройств и ресурсов
Перенаправление файловой системы (локальных дисков)
Разрешено
Путь: .
Параметр: Не разрешать перенаправление дисков
-
Не задано — Разрешено
-
Отключено — Разрешено
-
Включено — Запрещено
Перенаправление устройств и ресурсов
Перенаправление смарт-карт
Запрещено
Путь: .
Параметр: Не разрешать перенаправление устройств чтения смарт-карт
-
Не задано — Разрешено
-
Отключено — Разрешено
-
Включено — Запрещено
Управление профилями
Перемещаемые профили: путь к домашнему каталогу
Запрещено
Путь: .
Установите путь к перемещаемым профилям для всех пользователей, входящих в систему на данном компьютере
Значение параметра — путь до общей папки, в которой хранятся профили.
-
Не задано — Запрещено
-
Отключено — Запрещено
-
Включено — Разрешено
Управление профилями
Перемещаемые профили
Запрещено
Описывается в предыдущем пункте
Печать
Доступ к принтерам локального компьютера
Разрешено
Путь: .
Параметр: Не разрешать перенаправление для клиентского принтера.
-
Не задано — Разрешено
-
Отключено — Разрешено
-
Включено — Запрещено
-
10. Аутентификация пользователя на терминальном сервере по сертификату
При выключенном Kerberos на десктоп-клиенте
В этом разделе описано, как настроить аутентификацию пользователя на терминальном сервере по сертификату при выключенном Kerberos на десктоп-клиенте.
Linux
Для повышения безопасности подключения пользователей к терминальным серверам настройте аутентификацию по сертификату. Это можно сделать тремя способами:
Способ 1. Через условный блок, используя один порт для подключения
-
Для этого после установки терминального агента в конце файла
/etc/ssh/sshd_config(РЕД ОС, AstraLinux, Debian, OpenSUSE)//etc/openssh/sshd_config(ALT Linux) добавьте строки:TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods publickey,password Match User ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ AuthenticationMethods password publickeyТаким образом обычным пользователям разрешается заходить только с использованием временных сертификатов, подписанных доверенным ключом. При этом администратор системы может подключаться с использованием пароля или ключа, как и до внесения изменений.
-
Перезагрузите sshd с помощью команды:
sudo systemctl restart sshd
Способ 2. Через условный блок, используя два порта (для пользователей и администратора)
-
Для этого после установки терминального агента в файле
/etc/ssh/sshd_config(РЕД ОС, AstraLinux, Debian, OpenSUSE)//etc/openssh/sshd_config(ALT Linux) раскомментируйте строку с указанием порта, если она ранее не была изменена (Смотрите Ручное изменение портов в файле конфигурации шлюза и агента). -
Ниже добавьте похожую строку с указанием произвольного порта, по которому сможет подключаться только администратор системы:
Port 22 Port 2222Где:
-
Port 22 — порт для пользователей;
-
Port 2222 — порт для администратора.
-
-
В том же файле в конце добавьте строки:
Match LocalPort 22 TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods publickey,password Match LocalPort 2222, User ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ AuthenticationMethods password publickeyТаким образом обычным пользователям разрешается заходить только с использованием временных сертификатов, подписанных доверенным ключом, но только через порт 22. При этом администратор системы может подключаться с использованием пароля или ключа, как и до внесения изменений, но только через порт 2222.
-
Перезагрузите sshd с помощью команды:
sudo systemctl restart sshdНа системах с SELinux (например РЕД ОС) могут возникнуть проблемы при использовании нового порта для SSH. Чтобы разрешить сервису SSH использовать новый порт, выполните команду:
sudo semanage port -a -t ssh_port_t -p tcp 2222
Способ 3. Через дублирование ssh-сервиса
-
Создайте копии конфигурационного файла с помощью команды:
-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_crt_pwd -
Для ALT Linux:
sudo cp /etc/openssh/sshd_config /etc/openssh/sshd_config_crt_pwd
-
-
В новом конфигурационном файле измените строку с портом на любой другой:
Port 2222 -
Создайте новый сервис sshd через копирование конфигурации существующего сервиса с помощью команды:
sudo cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd_crt_pwd.service -
Измените строку ExecStart (укажите путь до нового конфигурационного файла
sshd_config_crt_pwd) в скопированном файле:-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd_config_crt_pwd -
Для ALT Linux:
ExecStart=/usr/sbin/sshd -D -f /etc/openssh/sshd_config_crt_pwd
-
-
Запустите и добавьте в автозагрузку новый сервис с помощью команды:
sudo systemctl enable --now sshd_crt_pwd.serviceНа системах с SELinux (например РЕД ОС) могут возникнуть проблемы при использовании нового порта для SSH. Чтобы разрешить сервису SSH использовать новый порт, выполните команду:
sudo semanage port -a -t ssh_port_t -p tcp 2222 -
Добавьте в конце конфигурационного файла первого экземпляра ssh-сервиса
/etc/ssh/sshd_config//etc/openssh/sshd_config(ALT Linux):-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
AllowUsers ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ -
Для ALT Linux:
AllowUsers ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫТаким образом по порту 22 сможет подключаться только администратор системы.
-
-
Добавьте в конце конфигурационного файла первого экземпляра ssh-сервиса
/etc/ssh/sshd_config_crt_pwd:-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods publickey,password -
Для ALT Linux:
TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods publickey,passwordТаким образом по 2222 порту смогут подключаться остальные пользователи, которые предоставят сертификат, подписанный доверенным ключом.
-
-
Перезапустите сервисы с помощью команды:
sudo systemctl restart sshd && sudo systemctl restart sshd_crt_pwd
Windows
|
На ТС Windows необходимо скачать и установить OpenSSH версии v9.5.0.0p1-Beta. |
Для повышения безопасности подключения пользователей к терминальным серверам настройте аутентификацию по сертификату. Для этого после установки терминального агента:
-
Настройте терминальный агент в конфигурационном файле
C:\ProgramData\ssh\sshd_config. Для этого:-
В файле конфигурации агента
"C:\Program Files\TermitAgent\config\config"измените параметр TERMIT_AGENT_RDP_PORT. Например:TERMIT_AGENT_RDP_PORT=13389 -
Перезапустите агент с помощью команды:
Restart-Service termit-agent -Force -
В файле конфигурации агента
"C:\ProgramData\ssh\sshd_config"измените параметр Port. Например:Port 13389 -
Перезапустите сервис с помощью команды:
Restart-Service sshd -ForceПодробнее смотрите в разделе.
-
-
Настройте ssh. Это можно сделать двумя способами:
Способ 1. Через условный блок, используя один порт для подключения
-
Откройте конфигурационный файл SSH (
C:\ProgramData\ssh\sshd_config) и перед строками:Match Group administrators AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keysдобавьте:
casignaturealgorithms ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa PubkeyAcceptedAlgorithms=ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa-cert-v01@openssh.com,ssh-rsa TrustedUserCAKeys "C:\Program Files\TermitAgent\config\termit-ssh-ca.pub" AuthenticationMethods publickey Match User ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ AuthenticationMethods password publickeyТаким образом обычным пользователям разрешается заходить только с использованием временных сертификатов, подписанных доверенным ключом. При этом администратор системы может подключаться с использованием пароля или ключа, как и до внесения изменений.
-
Перезагрузите sshd с помощью команды:
Restart-Service sshd -Force
Способ 2. Через условный блок, используя два порта (для пользователей и администратора)
-
В конфигурационном файле SSH (
C:\ProgramData\ssh\sshd_config) добавьте похожую строку с указанием произвольного порта, по которому сможет подключаться только администратор системы:Port 2222Где:
-
Port 2222 — порт для администратора.
-
-
В том же файле перед строками:
Match Group administrators AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keysДобавьте:
Match LocalPort 13389 casignaturealgorithms ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa PubkeyAcceptedAlgorithms=ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa-cert-v01@openssh.com,ssh-rsa TrustedUserCAKeys "C:\Program Files\TermitAgent\config\termit-ssh-ca.pub" AuthenticationMethods publickey Match LocalPort 2222, User ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ AuthenticationMethods password publickey -
Перезагрузите sshd с помощью команды:
Restart-Service sshd -Force
|
Чтобы разрешить сервису SSH использовать новый порт, требуется открыть входящее подключение. Для этого выполните команду:
|
При включенном Kerberos на десктоп-клиенте
В этом разделе описано, как настроить аутентификацию пользователя на терминальном сервере по сертификату при включенном Kerberos на десктоп-клиенте.
Linux
Для повышения безопасности подключения пользователей к терминальным серверам настройте аутентификацию по сертификату. Это можно сделать тремя способами:
Способ 1. Через условный блок, используя один порт для подключения
-
Для этого после установки терминального агента в конце файла
/etc/ssh/sshd_config(РЕД ОС, AstraLinux, Debian, OpenSUSE)//etc/openssh/sshd_config(ALT Linux) добавьте строки:TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods gssapi-with-mic publickey,password Match User ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ AuthenticationMethods password publickeyТаким образом обычным пользователям разрешается заходить только с использованием временных сертификатов, подписанных доверенным ключом. При этом администратор системы может подключаться с использованием пароля или ключа, как и до внесения изменений.
-
Перезагрузите sshd с помощью команды:
sudo systemctl restart sshd
Способ 2. Через условный блок, используя два порта (для пользователей и администратора)
-
Для этого после установки терминального агента в файле
/etc/ssh/sshd_config(РЕД ОС, AstraLinux, Debian, OpenSUSE)//etc/openssh/sshd_config(ALT Linux) раскомментируйте строку с указанием порта, если она ранее не была изменена (Смотрите Ручное изменение портов в файле конфигурации шлюза и агента). -
Ниже добавьте похожую строку с указанием произвольного порта, по которому сможет подключаться только администратор системы:
Port 22 Port 2222Где:
-
Port 22 — порт для пользователей;
-
Port 2222 — порт для администратора.
-
-
В том же файле в конце добавьте строки:
Match LocalPort 22 TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods gssapi-with-mic publickey,password Match LocalPort 2222, User ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ AuthenticationMethods password publickeyТаким образом обычным пользователям разрешается заходить только с использованием временных сертификатов, подписанных доверенным ключом, но только через порт 22. При этом администратор системы может подключаться с использованием пароля или ключа, как и до внесения изменений, но только через порт 2222.
-
Перезагрузите sshd с помощью команды:
sudo systemctl restart sshdНа системах с SELinux (например РЕД ОС) могут возникнуть проблемы при использовании нового порта для SSH. Чтобы разрешить сервису SSH использовать новый порт, выполните команду:
sudo semanage port -a -t ssh_port_t -p tcp 2222
Способ 3. Через дублирование ssh-сервиса
-
Создайте копии конфигурационного файла с помощью команды:
-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_crt_pwd -
Для ALT Linux:
sudo cp /etc/openssh/sshd_config /etc/openssh/sshd_config_crt_pwd
-
-
В новом конфигурационном файле измените строку с портом на любой другой:
Port 2222 -
Создайте новый сервис sshd через копирование конфигурации существующего сервиса с помощью команды:
sudo cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd_crt_pwd.service -
Измените строку ExecStart (укажите путь до нового конфигурационного файла
sshd_config_crt_pwd) в скопированном файле:-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd_config_crt_pwd -
Для ALT Linux:
ExecStart=/usr/sbin/sshd -D -f /etc/openssh/sshd_config_crt_pwd
-
-
Запустите и добавьте в автозагрузку новый сервис с помощью команды:
sudo systemctl enable --now sshd_crt_pwd.serviceНа системах с SELinux (например РЕД ОС) могут возникнуть проблемы при использовании нового порта для SSH. Чтобы разрешить сервису SSH использовать новый порт, выполните команду:
sudo semanage port -a -t ssh_port_t -p tcp 2222 -
Добавьте в конце конфигурационного файла первого экземпляра ssh-сервиса
/etc/ssh/sshd_config//etc/openssh/sshd_config(ALT Linux):-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
AllowUsers ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫ -
Для ALT Linux:
AllowUsers ИМЯ_АДМИНИСТРАТОРА_СИСТЕМЫТаким образом по порту 22 сможет подключаться только администратор системы.
-
-
Добавьте в конце конфигурационного файла первого экземпляра ssh-сервиса
/etc/ssh/sshd_config_crt_pwd:-
Для РЕД ОС, AstraLinux, Debian, OpenSUSE:
TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods gssapi-with-mic publickey,password -
Для ALT Linux:
TrustedUserCAKeys /etc/termit-agent/termit-ssh-ca.pub AuthenticationMethods gssapi-with-mic publickey,passwordТаким образом по 2222 порту смогут подключаться остальные пользователи, которые предоставят сертификат, подписанный доверенным ключом.
-
-
Перезапустите сервисы с помощью команды:
sudo systemctl restart sshd && sudo systemctl restart sshd_crt_pwd
Windows
Для повышения безопасности подключения пользователей к терминальным серверам настройте аутентификацию по сертификату. Для этого после установки терминального агента выполните настройки из раздела .
11. Установка шлюза удаленного доступа
В этом разделе описано, как установить шлюз удаленного доступа и настроить аутентификацию.
Установка шлюза
РЕД ОС
SSH-шлюз
Установите компонент openssh-server:
sudo dnf install openssh-server
TLS-шлюз
-
Установите дополнительное ПО на TLS-шлюз:
sudo dnf install wget -
Установите агент, используя скрипт, полученный при создании TLS-шлюза по следующему пути:
-
На портале администрирования в левом меню выберите раздел Настройки.
-
Перейдите на вкладку Внешний доступ.
-
Наведите курсор на шлюз и нажмите
. -
Нажмите Установить агент.
-
Скопируйте команду для установки агента и выполните ее на шлюзе удаленного доступа.
-
-
Разрешите работу в SELinux с помощью команды:
sudo semanage port -a -t http_port_t -p tcp 4443
Astra Linux
SSH-шлюз
Установите компонент openssh-server:
sudo apt install openssh-server
TLS-шлюз
-
Установите дополнительное ПО на TLS-шлюз:
sudo apt install wget -
Установите агент, используя скрипт, полученный при создании TLS-шлюза по следующему пути:
-
На портале администрирования в левом меню выберите раздел Настройки.
-
Перейдите на вкладку Внешний доступ.
-
Наведите курсор на шлюз и нажмите
. -
Нажмите Установить агент.
-
Скопируйте команду для установки агента и выполните ее на шлюзе удаленного доступа.
-
ALT Linux
SSH-шлюз
Установите компонент openssh-server:
sudo apt-get install openssh-server
TLS-шлюз
-
Установите дополнительное ПО на TLS-шлюз:
sudo apt-get install wget -
Установите агент, используя скрипт, полученный при создании TLS-шлюза по следующему пути:
-
На портале администрирования в левом меню выберите раздел Настройки.
-
Перейдите на вкладку Внешний доступ.
-
Наведите курсор на шлюз и нажмите
. -
Нажмите Установить агент.
-
Скопируйте команду для установки агента и выполните ее на шлюзе удаленного доступа.
-
Debian
SSH-шлюз
Установите компонент openssh-server:
sudo apt install openssh-server
TLS-шлюз
-
Установите дополнительное ПО на TLS-шлюз:
sudo apt install wget -
Установите агент, используя скрипт, полученный при создании TLS-шлюза по следующему пути:
-
На портале администрирования в левом меню выберите раздел Настройки.
-
Перейдите на вкладку Внешний доступ.
-
Наведите курсор на шлюз и нажмите
. -
Нажмите Установить агент.
-
Скопируйте команду для установки агента и выполните ее на шлюзе удаленного доступа.
-
OpenSUSE
SSH-шлюз
Установите компонент openssh-server:
sudo zypper install openssh-server
TLS-шлюз
-
Установите дополнительное ПО на TLS-шлюз:
sudo zypper install wget -
Установите агент, используя скрипт, полученный при создании TLS-шлюза по следующему пути:
-
На портале администрирования в левом меню выберите раздел Настройки.
-
Перейдите на вкладку Внешний доступ.
-
Наведите курсор на шлюз и нажмите
. -
Нажмите Установить агент.
-
Скопируйте команду для установки агента и выполните ее на шлюзе удаленного доступа.
-
Настройка шлюза удаленного доступа
|
Настройка аутентификации шлюза по LDAP
Настройте шлюз удаленного доступа через ввод в домен. Подробнее о вводе в домен смотрите в статье на сайтах:
|
По умолчанию при потере соединения сессия остается в статусе «Активная». Чтобы изменить поведение сессии и перевести ее в статус «Отключена» в панели администрирования, необходимо в файле конфигурации шлюза удаленного доступа Пример:
Сессия переходит в статус «Отключена» через 45 секунд. |
Аутентификация пользователя на шлюзе по сертификату
При использовании терминальных серверов/ВРМ с настроенной аутентификацией по сертификату и при организации внешнего доступа через SSH-шлюз, необходимо настроить SSH-шлюз для аутентификации пользователей на нём по сертификату. Для этого выполните следующие действия:
-
Скачайте корневой сертификат в настройках внешнего подключения.
-
Добавьте в файл конфигурации
/etc/ssh/sshd_config(для Alt Linux/etc/openssh/sshd_config) строки:TrustedUserCAKeys /etc/ssh/key.pub AuthenticationMethods publickey(для Alt Linux
TrustedUserCAKeys /etc/openssh/key.pub) -
Назначьте права на файл с помощью команды:
sudo chmod 600 /etc/ssh/key.pub -
Перезагрузите sshd с помощью команды:
sudo systemctl restart sshd
Сервер настроен на допуск всех пользователей, предоставляющих сертификат, выданный центром сертификации (root_ca), при подключении.
12. Установка десктоп-клиента
| Установите клиент Loudplay при подключении через ВРМ. |
Перед началом работы скачайте и установите десктоп-клиент. Сделать это можно двумя способами: скачать файл для установки по ссылке или скачать файл для установки из портала администрирования. Для того, чтобы скачать и установить дескоп-клиент:
-
В адресной строке браузера введите адрес брокера, например https://broker.example.com.
-
Выберите источник авторизации:
-
Авто. Система автоматически выберет LDAP-каталог из списка доступных каталогов или внутренних пользователей.
-
Внутренние пользователи. Вход будет выполнен под учетной записью локального администратора «tadm».
-
Имя LDAP-каталога, отображаемое полное имя которого было задано при добавлении в систему, например «ldap123».
-
-
Для входа под учетной записью локального администратора системы укажите в поле ввода:
-
Ваш логин — «tadm».
-
Пароль — пароль по умолчанию «admin».
Пользователь входит под доменной учетной записью. Атрибут для имени пользователя указан в настройках LDAP раздел тип LDAP в графе «Атрибут, используемый для поиска пользователя».
-
-
Нажмите Войти.
После успешного входа в систему откроется интерфейс портала администрирования.
-
В левом меню выберите раздел Скачать клиент.
-
Выберите операционную систему и установите десктоп-клиент.
Linux
РЕД ОС
|
Десктоп-клиент поддерживает только FreeRDP версии 2 (freerdp2). При установке десктоп-клиента пакет |
-
Перейдите на вкладку Linux.
-
Скачайте и выполните шаги по установке.
-
Обновите репозиторий с помощью команды:
sudo dnf update -
Установите десктоп-клиент:
sudo dnf install ./termit-desktop-2.*.rpmГде:
./termit-desktop-2.*.rpm— название файла.
Astra Linux
|
Десктоп-клиент поддерживает только FreeRDP версии 2 (freerdp2). При установке десктоп-клиента пакет |
-
Перейдите на вкладку Linux.
-
Скачайте .
-
Установите клиент Termit:
sudo apt install ./termit-desktop-2.*.debГде:
./termit-desktop-2.*.deb— название файла.
|
Установка в замкнутой программной среде
|
ALT Linux
|
Десктоп-клиент поддерживает только FreeRDP версии 2 (freerdp2). При установке десктоп-клиента пакет |
-
Перейдите на вкладку Linux.
-
Скачайте .
-
Обновите репозиторий с помощью команды:
sudo apt-get update -
Установите десктоп-клиент:
sudo apt-get install ./termit-desktop-2.*.rpm -
Для корректного запуска десктоп-клиента установите бит setuid:
sudo chmod 4755 /opt/Термит/chrome-sandbox
Windows
-
Перейдите на вкладку Windows.
-
Скачайте Десктоп-клиент для Windows 7 или Десктоп-клиент для Windows 10/11 и установите его.
Также можно установить десктоп-клиент в «тихом» режиме. Информация о ходе выполнения отображаться не будет. Для установки в таком режиме добавьте параметр
/S. Пример:"%путь до exe файла%\termit-desktop-2...exe" /S.
MacOS
-
Перейдите на вкладку MAC OS.
-
Скачайте Десктоп-клиент для macOS Ventura 13.4 и выше и выполните шаги по установке.
-
Скачайте XQuartz и выполните шаги по установке.
-
Скачайте и установите приложение Microsoft Remote Desktop из App Store.
Десктоп-клиент поддерживает только Microsoft Remote Desktop. Приложение Windows App десктоп-клиентом не поддерживается.
При подключении к сессии на терминальном сервере Windows будет открыто приложение Microsoft Remote Desktop и окно для ввода пароля. После ввода пароля запустится сессия. Во время сессии завершать работу приложения Microsoft Remote Desktop нельзя, так как это приведет к отключению от сессии.
| Перед запуском десктоп-клиента в настройках необходимо разрешить использование Termit. Для этого выберите в меню , затем в боковом меню нажмите Конфиденциальность и безопасность, прокрутите вниз до параметра Разрешить использование приложений, загруженных из: и выберите App Store и от подтвержденных разработчиков. |
13. Установка сертификата на десктоп-клиент
Для успешного подключения к Termit необходимо, чтобы используемый корневой сертификат был добавлен в список доверенных на десктоп-клиенте.
РЕД ОС
-
Скопируйте файл корневого сертификата в каталог
/etc/pki/ca-trust/source/anchors/с помощью команды:sudo cp %Путь_к_сертификату% /etc/pki/ca-trust/source/anchors/Где: %Путь_к_сертификату% — полный путь к файлу сертификата в формате
PEM. -
Чтобы применить изменения, выполните команды:
sudo update-ca-trust force-enable sudo update-ca-trust extract -
Перезапустите браузер и проверьте доверие сертификату, открыв адрес брокера.
|
Для систем Linux иногда необходима дополнительная ручная конфигурация хранилищ браузеров Firefox и Chrome\Chromium:
|
Astra Linux
|
Сертификат должен быть в формате |
Если формат сертификата отличается, необходимо выполнить его конвертацию используя утилиту openssl, например:
-
Если сертификат имеет кодировку
DER:openssl x509 -inform DER -in %Исходный_Сертификат% -out %Конечный_Сертификат% -
Если исходный сертификат имеет кодировку
PEM:openssl x509 -inform PEM -in %Исходный_Сертификат% -out %Конечный_Сертификат%Где:
-
%Исходный_Сертификат% — путь к исходному сертификату «certificate.cer».
-
%Конечный_Сертификат% — путь к конечному сертификату, например «certificate.crt».
-
Скопируйте полученные выше сертификаты в каталог
/usr/local/share/ca-certificatesс помощью команды:sudo cp %Путь_к_сертификату% /usr/local/share/ca-certificatesГде: %Путь_к_сертификату% — полный путь к файлу сертификата.
-
Чтобы применить изменения, выполните команду:
sudo update-ca-certificates -
Перезапустите браузер и проверьте доверие сертификату, открыв адрес брокера.
-
-
|
Для систем Linux иногда необходима дополнительная ручная конфигурация хранилищ браузеров Firefox и Chrome\Chromium:
|
ALT Linux
Подробнее об установке сертификата можно прочесть на официальном сайте.
-
Скопируйте корневой сертификат в хранилище сертификатов с помощью команды ниже. Сертификат должен быть в формате
.CRT.sudo cp %путь_к_сертификату% /etc/pki/ca-trust/source/anchors/ -
Обновите хранилище сертификатов с помощью команды:
sudo update-ca-trust
|
Для систем Linux иногда необходима дополнительная ручная конфигурация хранилищ браузеров Firefox и Chrome\Chromium:
|
OpenSUSE
-
Скопируйте файл корневого сертификата в каталог
/etc/pki/trust/anchorsс помощью команды:sudo cp %Путь_к_сертификату% /etc/pki/trust/anchorsГде: %Путь_к_сертификату% — полный путь к файлу сертификата в формате
PEM. -
Обновите хранилище сертификатов с помощью команды:
sudo update-ca-certificates -
Перезапустите браузер и проверьте доверие сертификату, открыв адрес брокера.
|
Для систем Linux иногда необходима дополнительная ручная конфигурация хранилищ браузеров Firefox и Chrome\Chromium:
|
Windows
-
Запустите сертификат двойным нажатием на него и выберите опцию Установить сертификат.
-
Выберите опцию Текущий пользователь:
При работе с правами администратора установка возможна в хранилище сертификатов компьютера (для всех пользователей).
-
Выберите опцию Поместить все сертификаты в следующие хранилище, нажмите Обзор и выберите Доверенные корневые центры сертификации.
При наличии промежуточного центра сертификации повторите шаги выше, выбрав хранилище Промежуточные центры сертификации на шаге 3.
-
Перезапустите браузер и проверьте доверие сертификату, открыв адрес брокера.
14. Выпуск самоподписанного сертификата
14.1. Создание корневого сертификата (CA)
Ниже описано, как создать корневой сертификат с помощью OpenSSL.
-
Создайте закрытый ключ корневого сертификата с помощью команды:
openssl genrsa -out ca.key 4096 -
Создайте корневой сертификат на основе закрытого ключа с помощью команды:
openssl req -new -x509 -days 365 -key ca.key -out ca.cert.pemПри появлении запроса введите пароль для закрытого ключа и сведения об организации, такие как страна или регион, штат, организация, подразделение и FQDN.
Результат:
-
ca.key — закрытый ключ корневого сертификата;
-
ca.cert.pem — корневой сертификат.
-
14.2. Создание сертификата сервера
Ниже описано, как создать сертификат сервера с помощью OpenSSL.
-
Создайте закрытый ключ сертификата сервера с помощью команды:
openssl genrsa -out server.key 4096 -
Создайте запрос на подпись сертификата на основе закрытого ключа с помощью команд:
openssl req -new -key server.key -out server.csr -addext "subjectAltName = DNS:broker.example.com"openssl x509 -req -days 365 -in server.csr -CA ca.cert.pem -CAkey ca.key -CAcreateserial -out server.crt -extfile <(printf "subjectAltName=DNS:broker.example.com")При появлении запроса введите пароль для корневого ключа и сведения об организации, такие как страна или регион, штат, организация, подразделение и FQDN.
CNдолжно соответствовать DNS-имени сервера, например broker.example.com. -
Выпустите сертификат на основе ранее сформированного запроса с помощью команды:
openssl x509 -in server.crt -text -noout -ext subjectAltNameРезультат:
-
server.key — закрытый ключ для сертификата сервера;
-
server.crt — сертификат сервера.
-
-
Импортируйте ключ и сертификат в настройках HTTPS.
15. Обновление пакетов десктоп-клиента на РЕД ОС при установке в закрытом контуре
Когда нет доступа к внешней сети или есть доступ только к определенным ресурсам, то можно обновить пакеты десктоп-клиента на РЕД ОС в закрытом контуре.
-
Создайте каталог на ПК с помощью команды:
$ mkdir /home/user/repo -
Скачайте пакет
termit-desktopв каталогrepo. -
Скачайте пакеты из репозитория в каталог
repoс помощью команды:$ dnf repoquery --requires --resolve --recursive ./termit-desktop-2.***.rpm | grep -v "i686" | sort -u > packages.txt $ dnf download $(cat packages.txt) --downloaddir . -
Перед созданием репозитория установите пакет с помощью команды:
sudo dnf install createrepo_c -
Создайте репозиторий с помощью команды:
$ createrepo_c . -
Перенесите пакеты на другой ПК, на котором нет доступа к внешней сети.
-
Отключите репозитории на ПК с помощью команды:
$ sudo dnf config-manager --set-disabled kernels updates base -
Добавьте локальный репозиторий с помощью команды:
$ sudo dnf config-manager --add-repo /home/user/repo -
Отключите проверку ключей с помощью команды:
$ sudo dnf config-manager --save --setopt=home_user_repo.gpgcheck=0 -
Установите пакет с помощью команды:
$ sudo dnf install termit-desktop-2.***.rpm
16. Деинсталляция компонентов
Деинсталляция компонентов Termit включает в себя удаление:
-
брокера;
-
агента;
-
клиента.
|
При необходимости удалите XQuartz и X2Go клиенты на MacOS. |
Удаление брокера
Чтобы удалить брокер:
-
Перейдите в каталог, куда был распакован дистрибутив.
-
Запустите скрипт с параметром
uninstallс помощью команды:sudo ./install.sh uninstall
|
При деинсталляции брокера база данных удаляется вручную. Повторное использование базы данных для новой инсталляции невозможно. |
Удаление агента
Чтобы удалить агент:
-
На портале администрирования, в левом меню выберите раздел Серверы.
-
Наведите курсор на нужный сервер и нажмите на FQDN адрес сервера.
-
В правом верхнем углу нажмите Дополнительно.
-
Выберите Удалить агент.
-
Скопируйте актуальную команду На портале администрирования или предложенную ниже:
-
Для Linux:
sudo ./agent-installer uninstall -
Для Windows:
.\agent-installer.exe uninstall
-
-
Для Linux перейдите в каталог, где был запущен скрипт установки агента.
Для Windows (операция удаления может быть выполнена только с правами администратора) перейдите по пути
C:\Program Files\TermitAgent\. -
Выполните скопированную команду в терминале.
Агент удален на терминальном сервере.
Удаление десктоп-клиента
Windows
Чтобы удалить десктоп-клиент:
-
Введите Панель управления в поле поиска на панели задач, а затем в списке результатов выберите Панель управления.
-
Перейдите в .
-
Удалите десктоп-клиент.
Также можно удалить десктоп-клиент в «тихом» режиме. Информация о ходе выполнения отображаться не будет. Для удаления в таком режиме добавьте параметр /S:
"C:\Program Files\termit-desktop\Uninstall termit-desktop.exe" /S