Руководство по началу работы

Версия Система терминального доступа "Термит": 2.0

Аннотация

В этом документе описано, как подготовить окружение для системы терминального доступа "Термит", установить Java 11 и X2Go на терминальный сервер под управлением РЕД ОС 7.3.2, установить и настроить брокер под управлением РЕД ОС 7.3.2.

1. Введение

"Термит" — это система терминального доступа (СТД). Предназначена для организации удаленного доступа конечных пользователей к приложениям, опубликованным на терминальных серверах. Пользователи получают защищенный доступ к установленным администраторами ресурсам с учетом назначенных прав доступа и текущей нагрузки на серверы.

Преимущества СТД "Термит":

  • безопасный доступ к централизованно развернутым приложениям;

  • совместное использование пользователями ресурсов с минимальными усилиями на администрирование и развертывание;

  • простой поиск для запуска нужных приложений.

1.1. Ключевые компоненты

Название компонента Описание

Агент

Приложение для удаленного мониторинга и управления терминальным сервером. Устанавливается на терминальный сервер

Балансировщик нагрузки

Внешний компонент, который распределяет нагрузку между брокерами и реализует отказоустойчивость

Брокер

Компонент системы, который идентифицирует пользователей, передает им списки доступных приложений, позволяет администраторам настраивать серверы, группы и приложения. Поддерживается несколько брокеров, что обеспечивает отказоустойчивость

Группа доступа приложения

Пользователи, которые состоят в группе LDAP и могут запускать приложение. Поддерживаются вложенные группы

Группа серверов

Ферма терминальных серверов. С помощью группы серверов можно балансировать нагрузку и объединять их по настройкам и приложениям, которые эти серверы запускают. Группы серверов нужны для обеспечения отказоустойчивости

Двусторонний буфер обмена

Набор функций и сообщений, который позволяет передавать данные между клиентской машиной и терминальной сессией

Пользователи

Сотрудники предприятий, внешние пользователи, которые могут запускать приложение, и администраторы, которые могут настраивать СТД "Термит"

Приложение

Программное обеспечение, которое запускается на терминальном сервере. Интерфейс отображается локально на компьютере пользователя

Рабочий стол

Экранная рабочая область, аналогичная локальному рабочему столу. Состоит из рабочей области и панели задач

Терминальная сессия

Пользовательский сеанс. Сессия начинается, когда пользователь запустил приложение. И завершается, когда пользователь закрыл приложение. Администратор может завершить сессию принудительно

Терминальный сервер

Сервер, на котором запускается программное обеспечение, например 1С, браузер или офисный пакет приложений

1.2. Ограничения и особенности

  • Не поддерживается кириллица в имени Base DN сервера LDAP, в имени и пароле сервисной учетной записи.

  • Поддержка терминальных серверов на базе ОС Windows будет доступна в следующем релизе.

  • Нельзя изменить тип группы серверов после создания.

  • Сервер может входить только в одну группу серверов.

  • Поддержка монитора с разрешением 4К.

  • Возможность развертывания компонентов на физических и виртуальных серверах.

1.3. Архитектура

Ниже на схеме представлен процесс работы СТД "Термит".

schm  arch2
Аутентификация
  1. Пользователь запускает десктоп-клиент. Далее вводит адрес брокера.

  2. Пользователь вводит имя доменной учетной записи и пароль.

  3. Брокер проверяет эти данные на сервере LDAP.

  4. Брокер возвращает десктоп-клиенту токен для аутентификации в REST API.

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

Старт сессии
  1. Пользователь запускает нужное приложение (например, калькулятор). Десктоп-клиент отправляет брокеру запрос на старт новой терминальной сессии.

  2. Брокер выбирает терминальный сервер, который может обслужить запрос.

  3. Брокер создает сессию в БД и отдает десктоп-клиенту профиль подключения, включающий в себя адрес терминального сервера, порт подключения, команду для запуска и другие параметры.

  4. Клиент X2Go стартует сессию на терминальном сервере. В процессе старта клиент X2Go запрашивает у пользователя имя учетной записи и пароль и отправляет их терминальному серверу. Терминальный сервер проводит аутентификацию пользователя. Клиент X2Go настраивает перенаправление звука, файловой системы, печати и запускает калькулятор в сессии.

  5. На стороне терминального сервера агент Термит завершает процесс создания сессии (уведомляет брокер о том, что создана сессия с X2Go ID. Далее происходит синхронизация этого ID c ID из БД).

  6. Сессия готова к работе.

2. Рекомендуемые требования к окружению

В этом разделе приведены рекомендуемые системные и сетевые требования для установки СТД "Термит".

2.1. Системные требования

Компонент Требования

Брокер

  • ОС — РЕД ОС 7.3.2 / Debian 9 и выше / Astra Linux 1.7.4

  • vCPU — 4

  • RAM, ГБ — 8

Терминальный сервер

  • ОС — РЕД ОС 7.3.2 / Debian 9 и выше / Astra Linux 1.7.4

  • vCPU — 2 (на систему), 1 (на каждую сессию)

  • RAM, ГБ — 4 (на систему), 2 (на каждую сессию)

Среда рабочего стола терминального сервера

  • MATE

  • XFCE

  • Fly-wm (для Astra Linux)

База данных

  • PostgreSQL 11.17-astra.se3 (из доступных в репозитории Astra Linux)

  • PostgreSQL 13 и выше для РЕД ОС

Клиентская машина

  • Microsoft Windows 10 x32 и x64; Microsoft Windows 11

  • MacOS Х

  • Linux (из списка поддерживаемых дистрибутивов)

Служба каталогов

  • Microsoft Active Directory 2012 и выше (в качестве LDAP-каталога)

  • Samba DC 4.17 (необходимо отключить обязательное использование шифрования)

2.2. Сетевые требования

Источник Назначение Протокол Порт Описание

Брокер

База данных

TCP

5432

Связь с сервером баз данных PostgreSQL

Служба каталогов

TCP

389

LDAP

Терминальный сервер

TCP

8443

Связь: брокер  агент Термит

TCP

8443

Связь: сервис мониторинга (Prometheus)  агент Термит

TCP

9100

Связь: сервис мониторинга (Prometheus)  агент мониторинга (Prometheus)

Балансировщик нагрузки

TCP

443

Связь: балансировщик нагрузки-брокер  брокер-балансировщик нагрузки

TCP

8080

Связь: балансировщик нагрузки-брокер  брокер-балансировщик нагрузки

Межсервисная коммуникация

TCP

9090

Связь: брокер  сервис мониторинга (Prometheus)

Шлюз удаленного рабочего стола

Терминальный сервер

TCP

22

SSH подключение к терминальному серверу

Служба каталогов

TCP

389

LDAP

Клиент

Шлюз удаленного рабочего стола

TCP

22

SSH подключение к терминальному серверу

Терминальный сервер

TCP

22

SSH подключение к терминальному серверу без использования компонента шлюз

Балансировщик нагрузки

TCP

443

HTTPS подключение к брокеру

3. Проверка настроек межсетевого экрана

Чтобы проверить настройки межсетевого экрана (МСЭ) на каждом из серверов, выполните команду:

sudo systemctl status firewalld.service

Если в выводе команды отображается информация, как на изображении ниже, то дальнейшие шаги по настройке межсетевого экрана можно пропустить, так как он выключен.

s  code1

В случае если вывод команды отличается, то необходима дополнительная конфигурация межсетевого экрана. Для этого:

  1. Определите активную зону МСЭ с помощью команды:

    firewall-cmd --get-default-zone
  2. Добавьте правила по списку портов в необходимую активную зону с помощью команды:

    sudo firewall-cmd --zone=%Активная_Зона% --permanent --add-port=%Порт%/tcp

    Где:

    • %Активная_Зона% — текущая активная зона из шага 1.

    • %Порт% — необходимый порт. Список портов смотрите в разделе Сетевые требования.

      Например:

      sudo firewall-cmd –zone=public --permanent --add-port=5432/tcp

4. Подготовка окружения

Для подготовки окружения:

  1. Разверните минимум четыре виртуальные машины (ВМ):

    • для брокера под управлением РЕД ОС. На этой ВМ будет устанавливаться сервис;

    • для сервера баз данных;

    • для терминального сервера под управлением РЕД ОС;

    • клиентскую машину.

  2. Проверьте доступ к службе каталогов и PostgreSQL.

  3. Проверьте с помощью команд nslookup, ping, что брокер зарегистрирован на DNS-сервере и доступен. В выводе команды не должно быть ошибок.

  4. Добавьте терминальный сервер в домен службы каталогов.

  5. В каталоге пользователей создайте сервисную учетную запись для синхронизации объектов из службы каталогов. Обязательно отключите опцию "User must change password at next logon" и включите "Password never expires".

  6. В каталоге пользователей создайте три группы, например "termit admins", "termit helpdesk" и "termit users".

  7. В каталоге пользователей добавьте в состав групп, созданных на предыдущем шаге, учетные записи пользователей для взаимодействия с СТД "Термит".

5. Установка брокера

Для установки брокера на подготовленную ВМ под управлением РЕД ОС выполните следующие действия:

Запуск команд выполняется от учетной записи, имеющей повышенные привилегии sudo.

  1. Чтобы установить Docker, Docker Compose, выполните команду:

    sudo dnf install docker-ce docker-ce-cli docker-compose
  2. Чтобы установленные компоненты добавить в автозагрузку, выполните команду:

    sudo systemctl enable docker --now
  3. Скопируйте дистрибутив на сервер.

  4. При необходимости выдайте права на запуск скрипта с помощью команды:

    sudo chmod +x ./install.sh
  5. Запустите скрипт:

    sudo ./install.sh install
  6. Введите пароль.

  7. Укажите имя узла брокера. Имя может быть любым, например "broker.example.com".

  8. Появится сообщение:

    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"

    Укажите "1".

  9. Введите адрес FQDN брокера (инсталляция Standalone) или балансировщика (инсталляция с несколькими брокерами), например "broker.example.com". Портал будет доступен по этому адресу.

  10. Укажите имя хоста базы данных (БД), например "db.example.com".

  11. Укажите порт "5432".

  12. Укажите имя БД, например "example".

  13. Укажите имя пользователя БД, например "termit".

  14. Введите пароль для БД.

Установка брокера занимает около двух минут. Во время запуска отображается ключ шифрования БД, который необходимо сохранить. Этот ключ нужен при установке новых брокеров.

s  key

Для подтверждения успешной операции перейдите на страницу "broker.example.com" и проверьте, что брокер доступен и отображается страница аутентификации.

  • Если брокер установился с ошибкой, то проверьте логи в контейнерах: "config-service" и "broker-client" с помощью команды:

    sudo docker logs %ID_Контейнера%
  • Если необходимо переустановить брокер, то сначала выполните шаги по деинсталляции.

Подробнее о добавлении дополнительного брокера и об установке балансировщика нагрузки можно прочесть в "Руководстве по установке".

6. Настройка брокера

В этом разделе описано, как настроить LDAP и роли, создать сервер и группу серверов и опубликовать приложение.

6.1. Настройка LDAP

СТД "Термит" поддерживает передачу данных по протоколу LDAP. Поэтому вся информация о пользователях, группах и их связи в режиме синхронизации берется из данных используемой службы каталогов по протоколу LDAP.

Для настройки LDAP выполните следующие действия:

  1. В браузере, в адресной строке введите адрес брокера, например https://broker.example.com.

  2. Введите в окне аутентификации и нажмите Войти:

    • Учетная запись — admin.

    • Пароль — admin.

      s  login1
  3. В левом меню выберите раздел Настройки.

  4. Наведите указатель мыши на Настройки LDAP и нажмите b  pencil.

  5. Включите LDAP используется.

  6. Задайте параметры для подключения:

    • Базовое уникальное имя. Например, для домена example.com: "DC=example,DC=com";

    • Имя пользователя. Например, для домена example.com: CN=termitsvc,CN=users,DC=example,DC=com;

    • Пароль — пароль от сервисной учетной записи;

    • Период синхронизации (минуты).

      s  ldap
  7. Нажмите Далее.

  8. Чтобы добавить сервер LDAP, нажмите b  add.

  9. Укажите адрес, порт и протокол.

    s  add server
  10. Нажмите Сохранить  Далее.

  11. На вкладке Подтверждение информации проверьте информацию о сервере LDAP и соединение.

    При успешном соединении появится сообщение "Проверка соединения прошла успешна".

  12. Нажмите Сохранить.

Состояние синхронизации LDAP и СТД "Термит" можно посмотреть в разделе Журнал событий.

6.2. Настройка ролей

Можно настроить следующие роли:

  • Администраторы. Администраторы могут полностью контролировать систему, например, управлять серверами, пользователями и приложениями.

  • Служба поддержки. Служба поддержки может просматривать настройки, информацию о серверах и сессиях в разделе Обзор, журнал событий, список сессий, завершать сессии и блокировать пользователей. Выполняет функцию L1 технической поддержки.

  • Пользователи. У пользователей есть учетные записи, с помощью которых они имеют доступ к СТД "Термит". Только пользователи могут запускать приложения.

Для настройки ролей выполните следующие действия:

  1. В левом меню выберите раздел Настройки.

  2. Перейдите на вкладку Роли.

  3. Наведите указатель мыши на Администраторы и нажмите b  pencil.

  4. Нажмите b  add.

  5. Добавьте группы из каталога пользователей для роли администраторов. Можно добавить несколько групп. Поддерживаются вложенные группы.

  6. Нажмите Сохранить  Сохранить.

Для ролей Служба поддержки и Пользователи повторите действия из шагов 3-6.

Далее создайте терминальный сервер.

6.3. Создание сервера

Для создания сервера выполните следующие действия:

  1. На Портале администрирования в левом меню выберите раздел Серверы.

  2. В правом верхнем углу нажмите Новый сервер.

    s  new server
  3. На вкладке Новый терминальный сервер:

    • Адрес — укажите DNS-адрес терминального сервера.

    • Тип — выберите операционную систему Linux.

    s  name server
  4. Нажмите Далее.

  5. На вкладке Группа терминальных серверов группу выбирать не нужно, так как она еще не создана. Нажмите Далее.

  6. На вкладке Подтверждение информации проверьте информацию о сервере и нажмите Создать.

  7. Чтобы установить агент на терминальный сервер, выполните указанный скрипт в консоли терминального сервера.

    Агент будет установлен и зарегистрирован на терминальном сервере.

    В этом скрипте содержится секрет, используемый для аутентификации агента на сервере только во время установки. В случае потери скрипта необходимо удалить сервер и заново развернуть его.

Созданный сервер появится в списке. Далее создайте группу серверов.

6.4. Создание группы серверов

Для создания группы серверов выполните следующие действия:

  1. В левом меню выберите раздел Группы серверов.

  2. В правом верхнем углу нажмите Новая группа.

    s  new group
  3. На вкладке Основные настройки:

    • Имя — укажите название группы.

    • Тип — выберите операционную систему Linux.

    • (Опционально) Описание — добавьте описание группы серверов.

      s  name group
  4. Нажмите Далее.

  5. На вкладке Терминальные серверы выберите из списка сервер, который создали ранее.

    s  add group
  6. Нажмите Далее.

  7. На вкладке Балансировка терминальных серверов оставьте значение весов по умолчанию. Подробнее о балансировке серверов.

    s  balance group
  8. Нажмите Далее.

  9. На вкладке Подтверждение информации проверьте информацию о группе серверов и нажмите Создать.

Созданная группа появится в списке. Далее необходимо добавить приложение.

6.5. Публикация приложения

Для публикации приложения выполните следующие действия:

  1. В левом меню выберите раздел Приложения.

  2. Нажмите Добавить приложение.

    s  add app
  3. На вкладке Основные настройки задайте параметры:

    • Имя — название приложения, например "Калькулятор".

    • (Опционально) Наименование у пользователя — название приложения, которое будет отображаться у пользователя, например "Калькулятор".

    • Тип — выберите Приложение.

    • Команда для запуска — команда для запуска приложения, например mate-calc.

    • (Опционально) Версия — версия приложения.

    • (Опционально) Описание — описание приложения.

      s  app
  4. Нажмите Далее.

  5. На вкладке Группа терминальных серверов выберите группу серверов для приложения, которую создали ранее.

  6. Нажмите Далее.

  7. На вкладке Группы доступа приложения добавьте группу:

    • Нажмите b  add и выберите из списка группу, которая будет иметь доступ к этому приложению.

    • Нажмите Сохранить.

  8. Нажмите Далее.

  9. На вкладке Подтверждение информации проверьте информацию о приложении и нажмите Создать.

После добавления приложение появится в списке со статусом "Вкл.". Далее необходимо перейти к настройке клиента и запуску приложения.

7. Установка на терминальный сервер

  1. Чтобы установить Java 11 на терминальный сервер, выполните команду:

    sudo dnf install java-11-openjdk
  2. Чтобы изменить версию Java, используемую по умолчанию, выполните команду:

    sudo alternatives --config java

    И выберите пункт меню, соответствующий Java 11.

  3. Чтобы установить X2Go server на терминальный сервер, выполните команду:

    sudo dnf install x2goserver-xsession x2goserver-fmbindings x2goserver-common x2goserver x2goagent -y
  4. Установите агент, используя скрипт, полученный при создании сервера в консоли администратора СТД "Термит".

8. Установка клиента

Для установки клиента выполните следующие действия:

  1. В браузере, в адресной строке введите адрес, по которому доступна СТД "Термит", например https://broker.example.com.

  2. Введите имя пользователя и пароль.

    Пользователь входит под доменной учетной записью.

  3. Нажмите Войти.

    s  login2
  4. Выберите операционную систему:

    Windows
    1. Скачайте Термит клиент для Windows и выполните шаги по установке.

    2. Скачайте Клиент X2Go для MS Windows и выполните шаги по установке.

    MacOS
    1. Скачайте Термит клиент для Mac OS и выполните шаги по установке.

    2. Скачайте Клиент X2Go для Mac OS, соответствующий вашей ОС, и выполните шаги по установке.

    3. Скачайте XQuartz и выполните шаги по установке.

    Перед запуском клиента в настройках необходимо разрешить использование СТД "Термит". Для этого выберите в меню Apple  Системные настройки, затем в боковом меню нажмите Конфиденциальность и безопасность, прокрутите вниз до параметра Разрешить использование приложений, загруженных из: и выберите App Store и от подтвержденных разработчиков.
    Linux
    Astra Linux
    1. Скачайте Термит клиент для Linux deb и выполните шаги по установке.

    2. Чтобы установить клиент X2Go из репозитория, выполните команду:

      sudo apt install x2goclient
    РЕД ОС
    1. Скачайте Термит клиент для Linux rpm и выполните шаги по установке.

    2. Чтобы установить клиент X2Go из репозитория, выполните команду:

      sudo dnf install x2goclient

9. Использование клиента

Выполните следующие действия:

  1. Запустите клиент Термит.

    Если доверенный сертификат не установлен в систему, то запустите клиент с параметром:

    --ignore-certs
  2. Укажите адрес, по которому доступна СТД "Термит", и нажмите Подключиться.

    s  login34
  3. Введите в параметрах:

    • Учетная запись — имя пользователя.

    • Пароль — пароль.

  4. Нажмите Войти.

    s  login2

    На странице Мои приложения отображается добавленное приложение.

  5. Чтобы запустить приложение, нажмите b  play.

  6. Введите пароль от вашей учетной записи и нажмите Ок.

    Через 10-15 секунд появится интерфейс приложения.

10. Подключение ресурсов

10.1. Буфер обмена и принтер

В разделе Настройки выполните следующие действия:

  1. Наведите указатель мыши на Локальные устройства и ресурсы и нажмите b  pencil:

    • Чтобы включить буфер обмена для копирования материалов, в параметре Общий буфер обмена выберите из списка Двусторонний буфер обмена.

      s  buffer
    • Чтобы подключить принтер, включите Доступ к принтерам локального компьютера.

      s  printer
  2. Нажмите Обновить.

10.2. Диски

Если необходимо перенести, например, документы с локального компьютера на терминальную сессию, можно подключить диск. Для этого:

  1. Наведите указатель мыши на Подключаемые диски и нажмите b  pencil.

  2. Нажмите b  add.

  3. Чтобы добавить диск, в параметре Расположение нажмите b  folder.

    s  disk
  4. Нажмите Сохранить  Обновить.

10.3. Звук удаленного рабочего стола

Для включения воспроизведения звука удаленного рабочего стола выполните следующие действия:

  1. Наведите указатель мыши на Звук удаленного рабочего стола и нажмите b  pencil.

  2. Включите Воспроизведение звука удаленного рабочего стола.

    s  sound
  3. Нажмите Обновить.

Эта настройка также влияет на перенаправление звука с локального компьютера в сессию.