Приложение для удаленного мониторинга и управления терминальным сервером. Устанавливается на терминальный сервер
В этом документе описано, как администраторам установить компоненты системы терминального доступа "Термит".
"Термит" — это система терминального доступа (СТД). Предназначена для организации удаленного доступа конечных пользователей к приложениям, опубликованным на терминальных серверах. Пользователи получают защищенный доступ к установленным администраторами ресурсам с учетом назначенных прав доступа и текущей нагрузки на серверы.
Преимущества СТД "Термит":
безопасный доступ к централизованно развернутым приложениям;
совместное использование пользователями ресурсов с минимальными усилиями на администрирование и развертывание;
простой поиск для запуска нужных приложений.
Название компонента | Описание |
---|---|
Агент |
Приложение для удаленного мониторинга и управления терминальным сервером. Устанавливается на терминальный сервер |
Балансировщик нагрузки |
Внешний компонент, который распределяет нагрузку между брокерами и реализует отказоустойчивость |
Брокер |
Компонент системы, который идентифицирует пользователей, передает им списки доступных приложений, позволяет администраторам настраивать серверы, группы и приложения. Поддерживается несколько брокеров, что обеспечивает отказоустойчивость |
Группа доступа приложения |
Пользователи, которые состоят в группе LDAP и могут запускать приложение. Поддерживаются вложенные группы |
Группа серверов |
Ферма терминальных серверов. С помощью группы серверов можно балансировать нагрузку и объединять их по настройкам и приложениям, которые эти серверы запускают. Группы серверов нужны для обеспечения отказоустойчивости |
Пользователи |
Сотрудники предприятий, внешние пользователи, которые могут запускать приложение, и администраторы, которые могут настраивать СТД "Термит" |
Приложение |
Программное обеспечение, которое запускается на терминальном сервере. Интерфейс отображается локально на компьютере пользователя |
Рабочий стол |
Экранная рабочая область, аналогичная локальному рабочему столу. Состоит из рабочей области и панели задач |
Терминальная сессия |
Пользовательский сеанс. Сессия начинается, когда пользователь запустил приложение. И завершается, когда пользователь закрыл приложение. Администратор может завершить сессию принудительно |
Терминальный сервер |
Сервер, на котором запускается программное обеспечение, например 1С, браузер или офисный пакет приложений |
В этом разделе приведены базовая архитектура и архитектура с внутренними и внешними пользователями.
Ниже представлена схема базовой архитектуры с одним брокером, без балансировщика нагрузки и шлюза.
Пользователь запускает десктоп-клиент. Далее вводит адрес брокера.
Пользователь вводит имя доменной учетной записи и пароль.
Брокер проверяет эти данные на сервере LDAP.
Брокер возвращает десктоп-клиенту токен для аутентификации в REST API.
Десктоп-клиент запрашивает у брокера список приложений, доступных пользователю. Брокер проверяет права пользователя (сравнивая его группы с теми, которые назначены на приложения) и отдает список доступных приложений.
Пользователь запускает нужное приложение (например, калькулятор). Десктоп-клиент отправляет брокеру запрос на старт новой терминальной сессии.
Брокер выбирает терминальный сервер, который может обслужить запрос.
Брокер создает сессию в БД и отдает десктоп-клиенту профиль подключения, включающий в себя адрес терминального сервера, порт подключения, команду для запуска и другие параметры.
Клиент X2Go стартует сессию на терминальном сервере. В процессе старта клиент X2Go запрашивает у пользователя имя учетной записи и пароль и отправляет их терминальному серверу. Терминальный сервер проводит аутентификацию пользователя. Клиент X2Go настраивает перенаправление звука, файловой системы, печати и запускает калькулятор в сессии.
На стороне терминального сервера агент Термит завершает процесс создания сессии (уведомляет брокер о том, что создана сессия с X2Go ID. Далее происходит синхронизация этого ID c ID из БД).
Сессия готова к работе.
Ниже представлена схема архитектуры с внутренними пользователями, несколькими брокерами, балансировщиком нагрузки и без шлюза.
Пользователь запускает десктоп-клиент. Затем вводит адрес балансировщика нагрузки. Балансировщик нагрузки определяет, какой брокер будет обслуживать данного пользователя, и в дальнейшем перенаправляет все запросы пользователя на выбранный брокер.
Пользователь вводит имя доменной учетной записи и пароль.
Брокер проверяет эти данные на сервере LDAP.
Брокер возвращает десктоп-клиенту токен для аутентификации в REST API.
Десктоп-клиент запрашивает у брокера список приложений, доступных пользователю. Брокер проверяет права пользователя (сравнивая его группы с теми, которые назначены на приложения) и отдает список доступных приложений.
Пользователь запускает нужное приложение (например, калькулятор). Десктоп-клиент отправляет брокеру запрос на старт новой терминальной сессии.
Брокер выбирает терминальный сервер, который может обслужить запрос.
Брокер создает сессию в БД и отдает десктоп-клиенту профиль подключения, включающий в себя адрес терминального сервера, порт подключения, команду для запуска и другие параметры.
Клиент X2Go начинает сессию на терминальном сервере. В процессе старта клиент X2Go запрашивает у пользователя имя учетной записи и пароль и отправляет их терминальному серверу. Терминальный сервер проводит аутентификацию пользователя. Клиент X2Go настраивает перенаправление звука, файловой системы, печати и запускает калькулятор в сессии.
На стороне терминального сервера агент Термит завершает создание сессии (уведомляет брокер о том, что создана сессия с X2Go ID. Далее происходит синхронизация этого ID c ID из БД).
Сессия готова к работе.
Ниже представлена схема архитектуры с внешними пользователями, несколькими брокерами, балансировщиком нагрузки и шлюзом.
Пользователь запускает десктоп-клиент. Затем вводит адрес балансировщика нагрузки. Балансировщик нагрузки определяет, какой брокер будет обслуживать данного пользователя, и в дальнейшем перенаправляет все запросы пользователя на выбранный брокер.
Пользователь вводит имя доменной учетной записи и пароль.
Брокер проверяет эти данные на сервере LDAP.
Брокер возвращает десктоп-клиенту токен для аутентификации в REST API.
Десктоп-клиент запрашивает у брокера список приложений, доступных пользователю. Брокер проверяет права пользователя (сравнивая его группы с теми, которые назначены на приложения) и отдает список доступных приложений.
Пользователь запускает нужное приложение (например, калькулятор). Десктоп-клиент отправляет брокеру запрос на старт новой терминальной сессии.
Брокер выбирает терминальный сервер, который может обслужить запрос.
Брокер создает сессию в БД и отдает десктоп-клиенту профиль подключения, включающий в себя адрес терминального сервера, порт подключения, команду для запуска и другие параметры.
Пользователь подключается к шлюзу и проходит на нем аутентификацию.
Клиент X2Go с помощью шлюза начинает сессию на терминальном сервере. В процессе старта клиент X2Go запрашивает у пользователя имя учетной записи и пароль и отправляет их терминальному серверу. Терминальный сервер проводит аутентификацию пользователя. Клиент X2Go настраивает перенаправление звука, файловой системы, печати и запускает калькулятор в сессии.
На стороне терминального сервера агент Термит завершает создание сессии (уведомляет брокер о том, что создана сессия с X2Go ID. Далее происходит синхронизация этого ID c ID из БД).
Сессия готова к работе.
В этом разделе приведены рекомендуемые системные и сетевые требования.
В таблицах ниже приведены требования для балансировщика нагрузки HAProxy и шлюзов удаленного доступа OpenSSH. Вы можете использовать другие.
Компонент | Требования | |
---|---|---|
Брокер (серверный вариант установки, без графической среды) |
ОС:
|
|
vCPU — 4 |
||
vRAM, ГБ — 8 |
||
Хранилище, ГБ — 100 |
||
Балансировщик нагрузки HAProxy (серверный вариант установки, без графической среды) |
vCPU — 4 |
|
vRAM, ГБ — 8 |
||
Хранилище, ГБ — 100 |
||
Терминальный сервер (серверный вариант установки, с графическим окружением) |
ОС:
|
|
vCPU — 4 |
||
vRAM, ГБ — 8 |
||
Хранилище, ГБ — 100 |
||
Требования к сессии:
Рекомендуется резерв 15-20% от полученных значений.
|
||
Шлюзы удаленного доступа OpenSSH (серверный вариант установки, без графической среды) |
vCPU — 4 |
|
vRAM, ГБ — 8 |
||
Хранилище, ГБ — 100 |
||
Среда рабочего стола терминального сервера |
|
|
База данных |
|
|
vCPU — 4 |
||
vRAM, ГБ — 8 |
||
Хранилище, ГБ — 100 |
||
Дополнительный диск для базы данных, ГБ — 150 |
||
Клиентская машина |
|
|
Служба каталогов |
|
Компонент | Требования | |
---|---|---|
Брокер (серверный вариант установки, без графической среды) |
ОС:
|
|
vCPU — 2 |
||
vRAM, ГБ — 4 |
||
Хранилище, ГБ — 50 |
||
Балансировщик нагрузки HAProxy (серверный вариант установки, без графической среды) |
vCPU — 2 |
|
vRAM, ГБ — 2 |
||
Хранилище, ГБ — 50 |
||
Шлюзы удаленного доступа OpenSSH (серверный вариант установки, без графической среды) |
vCPU — 2 |
|
vRAM, ГБ — 2 |
||
Хранилище, ГБ — 50 |
||
База данных |
|
|
vCPU — 2 |
||
vRAM, ГБ — 4 |
||
Хранилище, ГБ — 50 |
||
Терминальный сервер (серверный вариант установки, с графическим окружением) |
ОС:
|
|
vCPU — 4 |
||
vRAM, ГБ — 4 |
||
Хранилище, ГБ — 50 |
||
Базовые требования к сессии:
|
Источник | Назначение | Протокол | Порт | Детали |
---|---|---|---|---|
Брокер |
База данных |
TCP |
5432 |
Связь с сервером баз данных PostgreSQL |
Служба каталогов |
TCP |
389 |
LDAP |
|
Терминальный сервер |
TCP |
8443 |
Связь: |
|
TCP |
8443 |
Связь: |
||
TCP |
9100 |
Связь: |
||
Балансировщик нагрузки |
TCP |
443 |
Связь: |
|
TCP |
8080 |
Связь: |
||
Межсервисная коммуникация |
TCP |
9090 |
Связь: |
|
Шлюз удаленного рабочего стола |
Терминальный сервер |
TCP |
22 |
SSH подключение к терминальному серверу |
Служба каталогов |
TCP |
389 |
LDAP |
|
Клиент |
Шлюз удаленного рабочего стола |
TCP |
22 |
SSH подключение к терминальному серверу |
Терминальный сервер |
TCP |
22 |
SSH подключение к терминальному серверу без использования компонента шлюз |
|
Балансировщик нагрузки |
TCP |
443 |
HTTPS подключение к брокеру |
В этом разделе описано, как проверить настройки межсетевого экрана (МСЭ) на операционных системах РЕД ОС и Astra Linux.
Чтобы проверить настройки МСЭ на каждом из серверов, выполните команду:
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
Подробнее о настройке МСЭ можно прочесть на официальном сайте РЕД ОС. |
Чтобы проверить настройки МСЭ на каждом из серверов, выполните команду:
sudo ufw status
Если выполнение команды возвращает ответ "Status: inactive", то дальнейшие шаги по конфигурации МСЭ можно пропустить, так как он выключен.
В случае если вывод команды отличается, то необходима дополнительная конфигурация МСЭ. Для этого добавьте соответствующие разрешения командой:
sudo ufw allow %Порт%/tcp
Где: %Порт% — необходимый порт. Список портов смотрите в разделе Сетевые требования.
|
В этом разделе представлена базовая информация по подготовке сервера баз данных PostgreSQL на операционных системах РЕД ОС и Astra Linux.
Повторное использование базы данных для новой инсталляции невозможно. |
В этой конфигурации используется последняя доступная версия СУБД PostgreSQL 15. В случае если используется другая версия, то выполняемые команды необходимо изменить. Более подробно можно ознакомиться на сайте документации РЕД ОС.
Установите PostgreSQL с помощью команды:
sudo dnf install postgresql15-server
Инициализируйте базу данных с помощью команды:
sudo postgresql-15-setup initdb
Запустите сервис PostgreSQL с помощью команды:
systemctl enable postgresql-15.service --now
Чтобы разрешить удаленное подключение к СУБД, в файле конфигурации /var/lib/pgsql/15/data/postgresql.conf
параметр listen_addresses
должен соответствовать значению '*'
:
Отображение параметров на скриншоте может отличаться. Зависит от версии PostgreSQL. |
Чтобы разрешить удаленное подключение к СУБД с паролем, добавьте в файл конфигурации /var/lib/pgsql/15/data/pg_hba.conf
строку:
host all all 0.0.0.0/0 password
Отображение параметров на скриншоте может отличаться. Зависит от версии PostgreSQL. |
Запустите сессию служебного пользователя postgres с помощью команды:
sudo su - postgres
Запустите командную оболочку postgres с помощью команды:
psql
Создайте пустую базу данных с помощью команды:
CREATE DATABASE %Имя_Базы%;
Создайте нового пользователя с паролем с помощью команды:
CREATE USER %Имя_Пользователя% WITH PASSWORD '%Пароль_Пользователя%';
Установите права владельца для созданного пользователя на созданную базу с помощью команды:
ALTER DATABASE %Имя_Базы% OWNER TO %Имя_Пользователя%;
Выйдите из командной оболочки psql и сессии пользователя postgres с помощью команды:
exit
Перезапустите сервис PostgreSQL с помощью команды:
systemctl restart postgresql-15.service
В случае инсталляций в режиме контроля мандатного доступа ("Воронеж" и "Смоленск") может потребоваться дополнительная конфигурация операционной системы. Подробнее о настройках PostgreSQL и мандатном управлении доступа.
Установите PostgreSQL из репозитория с помощью команды:
sudo apt install postgresql-11
Проверьте статус сервиса PostgreSQL с помощью команды:
sudo systemctl status postgresql
При необходимости запустите сервис с помощью команды:
sudo systemctl start postgresql
Чтобы разрешить удаленное подключение к СУБД, в файле конфигурации /etc/postgresql/11/main/postgresql.conf
параметр listen_addresses
должен соответствовать значению '*'
:
Отображение параметров на скриншоте может отличаться. Зависит от версии PostgreSQL. |
Чтобы разрешить удаленное подключение к СУБД с паролем, добавьте в файл конфигурации /etc/postgresql/11/main/pg_hba.conf
строку:
host all all 0.0.0.0/0 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 и сессии пользователя с помощью команды:
exit
Перезапустите сервис PostgreSQL с помощью команды:
sudo systemctl restart postgresql
Для подготовки окружения:
Разверните серверы:
для брокера. На этой ВМ будет устанавливаться сервис;
для терминального сервера;
(Опционально) для сервера баз данных. Можно использовать существующий сервер.
Проверьте доступ к службе каталогов и PostgreSQL.
Проверьте с помощью команд nslookup
, ping
, что брокер зарегистрирован на DNS-сервере и доступен. В выводе команды не должно быть ошибок.
Добавьте терминальный сервер в домен службы каталогов.
В каталоге пользователей создайте "сервисную" учетную запись для чтения таких объектов, как пользователи и группы. Обязательно отключите опцию "User must change password at next logon" и включите "Password never expires".
В каталоге пользователей создайте группы в соответствии с требованиями вашего предприятия.
В каталоге пользователей добавьте в состав групп, созданных на предыдущем шаге, учетные записи пользователей для взаимодействия с СТД "Термит".
В этом разделе описано, как установить брокер под управлением РЕД ОС и Astra Linux.
Перед установкой брокера выполните следующие действия:
Чтобы установить Docker, Docker Compose, выполните команду:
sudo dnf install docker-ce docker-ce-cli docker-compose
Чтобы установленные компоненты добавить в автозагрузку, выполните команду:
sudo systemctl enable docker --now
Перед установкой брокера выполните следующие действия:
Чтобы установить Docker, Docker Compose, выполните команду:
sudo apt install docker.io docker-compose
Чтобы запустить сервис, выполните команду:
sudo systemctl start docker
Чтобы установить брокер:
Скопируйте дистрибутив на сервер.
При необходимости выдайте права на запуск скрипта с помощью команды:
sudo chmod +x ./install.sh
Запустите скрипт:
sudo ./install.sh install
Введите пароль.
Укажите имя узла брокера. Имя может быть любым, например "broker.example.com".
Появится сообщение:
"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".
Введите адрес FQDN брокера (инсталляция Standalone) или балансировщика (инсталляция с несколькими брокерами), например "broker.example.com". Портал будет доступен по этому адресу.
Укажите имя хоста базы данных (БД), например "db.example.com".
Укажите порт "5432".
Укажите имя БД, например "example".
Укажите имя пользователя БД, например "termit".
Введите пароль для БД.
Установка брокера занимает около двух минут. Во время запуска отображается ключ шифрования БД, который необходимо сохранить. Этот ключ нужен для установки дополнительных брокеров.
Для подтверждения успешной операции в браузере, в адресной строке, введите адрес брокера https://broker.example.com. В появившемся окне аутентификации укажите логин "admin" и пароль "admin" от учетной записи по умолчанию.
|
В этом разделе описано, как установить второй и следующий брокеры под управлением РЕД ОС и Astra Linux.
Перед установкой дополнительного брокера выполните следующие действия:
Чтобы установить Docker, Docker Compose, выполните команду:
sudo dnf install docker-ce docker-ce-cli docker-compose
Чтобы установленные компоненты добавить в автозагрузку, выполните команду:
sudo systemctl enable docker --now
Перед установкой дополнительного брокера выполните следующие действия:
Чтобы установить Docker, Docker Compose, выполните команду:
sudo apt install docker.io docker-compose
Чтобы запустить сервис, выполните команду:
sudo systemctl start docker
Перед добавлением брокеров скопируйте дистрибутив на сервер и подготовьте ключ шифрования. Рекомендуется создать три брокера для повышения отказоустойчивости.
При необходимости выдайте права на запуск скрипта с помощью команды:
sudo chmod +x ./install.sh
Запустите скрипт:
sudo ./install.sh install
Введите пароль.
Укажите имя узла брокера. Имя может быть любым, например "broker2.example.com".
Появится сообщение:
"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".
Введите пароль для БД.
Вставьте скопированный ключ шифрования.
Введите адрес, выбранный на шаге 7, и проверьте статус брокера в меню после аутентификации.
Установка брокера занимает около двух минут. Для подтверждения успешной операции перейдите на страницу "broker.example.com" и проверьте, что брокер доступен и отображается страница аутентификации.
В этом разделе содержатся инструкции по установке Java и X2Go на терминальный сервер.
Чтобы установить Java 11 на терминальный сервер, выполните команду:
sudo dnf install java-11-openjdk
Чтобы изменить версию Java, используемую по умолчанию, выполните команду:
sudo alternatives --config java
И выберите пункт меню, соответствующий Java 11.
Чтобы установить X2Go server на терминальный сервер, выполните команду:
sudo dnf install x2goserver-xsession x2goserver-fmbindings x2goserver-common x2goserver x2goagent -y
Установите агент, используя скрипт, полученный при создании сервера в консоли администратора СТД "Термит".
Установите компоненты OpenJDK с помощью команды:
sudo apt install openjdk-11-jdk
В случае если ранее были установлены другие версии OpenJDK, выполните дополнительную конфигурацию, выбрав установленную 11 версию с помощью команды:
sudo update-alternatives --config java
Установите компоненты X2Go сервера с помощью команды:
sudo apt install x2goserver-xsession x2goserver-fmbindings x2goserver-common x2goserver-x2goagent
Установите агент, используя скрипт, полученный при создании сервера в консоли администратора СТД "Термит".
Подробнее об установке OpenJDK можно прочесть на официальном сайте Astra Linux. |
В этом разделе описано, как установить балансировщик нагрузки HAProxy для операционных систем РЕД ОС и Astra Linux. Вы можете использовать другой балансировщик нагрузки.
Рекомендуемый тип балансировки — привязка пользователя к конкретному серверу (balance source и hash-type consistent). Подробнее о типах балансировки. |
Установите ПО HAProxy с помощью команды:
sudo dnf install haproxy
Добавьте в конец файла конфигурации /etc/haproxy/haproxy.cfg
настройку серверов для балансировки.
Пример конфигурации:
В примере приведен файл конфигурации с типом балансировки Source IP Hash. |
frontend termit
mode tcp
bind :80
default_backend termit_servers
backend termit_servers
option httpchk
http-check connect port 8080
http-check send meth GET uri /
mode tcp
balance source
hash-type consistent
server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:80 check
server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:80 check
server %Имя_Термит_Брокера_3% %IP_Адрес_Термит_Брокера_3%:80 check
frontend termit_https
mode tcp
bind :443
default_backend termit_servers_https
backend termit_servers_https
option httpchk
http-check connect port 8080
http-check send meth GET uri /
mode tcp
balance source
hash-type consistent
server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:443 check
server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:443 check
server %Имя_Термит_Брокера_3% %IP_Адрес_Термит_Брокера_3%:443 check
frontend termit_8443_https
mode tcp
bind :8443
default_backend termit_servers_8443_https
backend termit_servers_8443_https
option httpchk
http-check connect port 8080
http-check send meth GET uri /
mode tcp
balance source
hash-type consistent
server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:8443 check
server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:8443 check
server %Имя_Термит_Брокера_3% %IP_Адрес_Термит_Брокера_3%:8443 check
Проверьте созданный файл конфигурации с помощью команды ниже. Вывод команды не должен содержать ошибок. Предупреждения (warnings) не являются ошибками.
sudo haproxy -f /etc/haproxy/haproxy.cfg -c
Перезапустите сервис HAProxy с помощью команды:
sudo systemctl restart haproxy
Проверьте доступность СТД "Термит" по URL адресу, указанному при установке брокер серверов.
Для установки используется последняя доступная в репозитории Astra Linux версия HAProxy (2.2.29-2astra13). Подробнее о конфигурации можно ознакомиться на официальном сайте Astra Linux.
Установите ПО HAProxy с помощью команды:
sudo apt install haproxy
Добавьте в конец файла конфигурации /etc/haproxy/haproxy.cfg
настройку серверов для балансировки.
Пример конфигурации:
В примере приведен файл конфигурации с типом балансировки Source IP Hash. |
frontend termit
mode tcp
bind :80
default_backend termit_servers
backend termit_servers
option httpchk
http-check connect port 8080
http-check send meth GET uri /
mode tcp
balance source
hash-type consistent
server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:80 check
server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:80 check
server %Имя_Термит_Брокера_3% %IP_Адрес_Термит_Брокера_3%:80 check
frontend termit_https
mode tcp
bind :443
default_backend termit_servers_https
backend termit_servers_https
option httpchk
http-check connect port 8080
http-check send meth GET uri /
mode tcp
balance source
hash-type consistent
server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:443 check
server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:443 check
server %Имя_Термит_Брокера_3% %IP_Адрес_Термит_Брокера_3%:443 check
frontend termit_8443_https
mode tcp
bind :8443
default_backend termit_servers_8443_https
backend termit_servers_8443_https
option httpchk
http-check connect port 8080
http-check send meth GET uri /
mode tcp
balance source
hash-type consistent
server %Имя_Термит_Брокера_1% %IP_Адрес_Термит_Брокера_1%:8443 check
server %Имя_Термит_Брокера_2% %IP_Адрес_Термит_Брокера_2%:8443 check
server %Имя_Термит_Брокера_3% %IP_Адрес_Термит_Брокера_3%:8443 check
Проверьте созданный файл конфигурации с помощью команды ниже. Вывод команды не должен содержать ошибок. Предупреждения (warnings) не являются ошибками.
sudo haproxy -f /etc/haproxy/haproxy.cfg -c
Перезапустите сервис HAProxy с помощью команды:
sudo systemctl restart haproxy
Проверьте доступность СТД "Термит" по URL адресу, указанному при установке брокер серверов.
В этом разделе описано, как установить шлюз удаленного доступа для аутентификации по LDAP для операционных систем РЕД ОС и Astra Linux.
Для установки шлюза удаленного доступа выполните следующие действия:
Установите компонент openssh-server
с помощью команды:
sudo dnf install openssh-server
Проверьте статус сервиса с помощью команды:
sudo systemctl status sshd.service
Если статус сервиса отличается от "Active", запустите его с помощью команды:
sudo systemctl start sshd.service
Установите компоненты аутентификации и авторизации с помощью команды:
sudo dnf install sssd sssd-tools oddjob-mkhomedir
Создайте файл конфигурации с помощью команды:
sudo touch /etc/sssd/sssd.conf
Назначьте права созданному файлу с помощью команд:
sudo chmod 600 /etc/sssd/sssd.conf
sudo chown root:root /etc/sssd/sssd.conf
Добавьте параметры конфигурации в созданный файл:
Строки с параметрами настройки, отмеченные знаком |
%Имя_Домена% — имя домена в виде FQDN, например "example.com".
%Домен_Поиска% — имя домена в формате Distinguished Name (DN), например "DC=subexample,DC=example,DC=com".
%LDAP_URI% — параметр LDAP URI целевого контроллера домена, например "ldaps://dc1.example.com".
%Сервисная_Учетная_Запись% — полное DN имя сервисной учетной записи, например "CN=GatewayService,CN=Users,DC=example,DC=com".
%Группа_Пользователей_Термит% — группа пользователей Термит из каталога LDAP, которой разрешено подключение, например "TermitUsers".
%Пароль% — на этом шаге оставьте поле пустым.
[sssd]
config_file_version = 2
services = nss, pam, ssh
domains = %Имя_Домена%
#debug_level = 8
[nss]
filter_users = nobody,root
filter_groups = nobody,root
[pam]
[domain/%Имя_Домена%]
# General
#debug_level = 8
enumerate = false
case_sensitive = false
cache_credentials = false
fallback_homedir = /home/%u
default_shell = /bin/bash
#Providers
id_provider = ldap
auth_provider = ldap
access_provider = simple
chpass_provider = ldap
sudo_provider = ldap
autofs_provider = ldap
resolver_provider = ldap
#LDAP General
ad_gpo_access_control = disable
ldap_id_mapping = True
ldap_schema = ad
use_fully_qualified_name = False
#LDAP user search settings
ldap_search_base = %Домен_Поиска%
#ldap_user_search_base = ou=users,dc=termit,dc=test
#ldap_group_search_base = ou=groups,dc=termit,dc=test
#LDAP connection settings
ldap_uri = %LDAP_URI%
ldap_default_bind_dn = %Сервисная_Учетная_Запись%
ldap_default_authtok_type = obfuscated_password
ldap_default_authtok = %Пароль%
#LDAPS
#ldap_id_use_start_tls = True
#ldap_tls_cacertdir = /etc/openldap/certs
#ldap_tls_reqcert = hard
ldap_tls_reqcert = allow
# Access settings via simple
simple_allow_groups = %Группа_Пользователей_Термит%
Задайте зашифрованный пароль сервисной учетной записи с помощью команды:
sudo sss_obfuscate --domain=%Имя_Домена%
Где: %Имя_Домена% — имя домена в виде FQDN, например "example.com".
Утилита дважды запросит пароль и запишет его в файл конфигурации.
Разрешите создание профилей с помощью команды:
authselect select sssd with-mkhomedir
Запустите сервисы с помощью команд:
sudo systemctl enable --now oddjobd
sudo systemctl enable --now sssd
При внесении дополнительных изменений в файл конфигурации необходимо удалить кэш конфигурации с помощью команды:
sudo rm -f /var/lib/sss/db/* && rm -f /var/lib/sss/mc/*
И перезапустить сервисы командами из предыдущего шага.
Для установки шлюза удаленного доступа выполните следующие действия:
Установка и настройка шлюза удаленного доступа приведена на примере компонентов |
Установите компонент openssh-server
с помощью команды:
sudo apt install openssh-server
Проверьте статус сервиса с помощью команды:
sudo systemctl status ssh.service
Если статус сервиса отличается от "Active", запустите его с помощью команды:
sudo systemctl start ssh.service
Установите компоненты аутентификации и авторизации с помощью команды:
sudo apt install sssd sssd-tools oddjob-mkhomedir
Создайте файл конфигурации с помощью команды:
sudo touch /etc/sssd/sssd.conf
Назначьте права созданному файлу с помощью команд:
sudo chmod 600 /etc/sssd/sssd.conf
sudo chown root:root /etc/sssd/sssd.conf
Добавьте параметры конфигурации в созданный файл:
Строки с параметрами настройки, отмеченные знаком |
%Имя_Домена% — имя домена в виде FQDN, например "example.com".
%Домен_Поиска% — имя домена в формате Distinguished Name (DN), например "DC=subexample,DC=example,DC=com".
%LDAP_URI% — параметр LDAP URI целевого контроллера домена, например "ldaps://dc1.example.com".
%Сервисная_Учетная_Запись% — полное DN имя сервисной учетной записи, например "CN=GatewayService,CN=Users,DC=example,DC=com".
%Группа_Пользователей_Термит% — группа пользователей Термит из каталога LDAP, которой разрешено подключение, например "TermitUsers".
%Пароль% — на этом шаге оставьте поле пустым.
[sssd]
config_file_version = 2
services = nss, pam, ssh
domains = %Имя_Домена%
#debug_level = 8
[nss]
filter_users = nobody,root
filter_groups = nobody,root
[pam]
[domain/%Имя_Домена%]
# General
#debug_level = 8
enumerate = false
case_sensitive = false
cache_credentials = false
fallback_homedir = /home/%u
default_shell = /bin/bash
#Providers
id_provider = ldap
auth_provider = ldap
access_provider = simple
chpass_provider = ldap
sudo_provider = ldap
autofs_provider = ldap
resolver_provider = ldap
#LDAP General
ad_gpo_access_control = disable
ldap_id_mapping = True
ldap_schema = ad
use_fully_qualified_name = False
#LDAP user search settings
ldap_search_base = %Домен_Поиска%
#ldap_user_search_base = ou=users,dc=termit,dc=test
#ldap_group_search_base = ou=groups,dc=termit,dc=test
#LDAP connection settings
ldap_uri = %LDAP_URI%
ldap_default_bind_dn = %Сервисная_Учетная_Запись%
ldap_default_authtok_type = obfuscated_password
ldap_default_authtok = %Пароль%
#LDAPS
#ldap_id_use_start_tls = True
#ldap_tls_cacertdir = /etc/openldap/certs
#ldap_tls_reqcert = hard
ldap_tls_reqcert = allow
# Access settings via simple
simple_allow_groups = %Группа_Пользователей_Термит%
Задайте зашифрованный пароль сервисной учетной записи с помощью команды:
sudo sss_obfuscate --domain=%Имя_Домена%
Где: %Имя_Домена% — имя домена в виде FQDN, например "example.com".
Утилита дважды запросит пароль и запишет его в файл конфигурации.
Запустите сервисы с помощью команд:
sudo systemctl enable --now oddjobd
sudo systemctl enable --now sssd
При внесении дополнительных изменений в файл конфигурации необходимо удалить кэш конфигурации с помощью команды:
sudo rm -f /var/lib/sss/db/* && rm -f /var/lib/sss/mc/*
И перезапустить сервисы командами из предыдущего шага.
Для установки клиента выполните следующие действия:
В браузере, в адресной строке введите адрес, по которому доступна СТД "Термит", например https://broker.example.com.
Введите имя пользователя и пароль.
Пользователь входит под доменной учетной записью. |
Выберите операционную систему:
Скачайте Термит клиент для Windows и выполните шаги по установке.
Скачайте Клиент X2Go для MS Windows и выполните шаги по установке.
Скачайте Термит клиент для Mac OS и выполните шаги по установке.
Скачайте Клиент X2Go для Mac OS, соответствующий вашей ОС, и выполните шаги по установке.
Скачайте XQuartz и выполните шаги по установке.
Перед запуском клиента в настройках необходимо разрешить использование СТД "Термит". Для этого выберите в меню | , затем в боковом меню нажмите Конфиденциальность и безопасность, прокрутите вниз до параметра Разрешить использование приложений, загруженных из:.
Скачайте Термит клиент для Linux deb и выполните шаги по установке.
Чтобы установить клиент X2Go из репозитория, выполните команду:
sudo apt install x2goclient
Скачайте Термит клиент для Linux rpm и выполните шаги по установке.
Чтобы установить клиент X2Go из репозитория, выполните команду:
sudo dnf install x2goclient
Для успешного подключения к СТД "Термит" необходимо, чтобы используемый SSL-сертификат был добавлен в список доверенных на клиенте.
Если используется цепочка сертификатов из промежуточного центра сертификации, то повторите действия, описанные ниже. |
Выполните следующие действия:
Скопируйте файл корневого сертификата в каталог /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
Перезапустите браузер и проверьте доверие сертификату, открыв адрес брокера Термит.
Сертификат должен быть в формате |
Если формат сертификата отличается, необходимо выполнить его конвертацию используя утилиту 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:
|
Запустите сертификат двойным нажатием на него, сертификат будет добавлен в приложение Связка ключей.
Найдите в приложении добавленный сертификат или цепочку сертификатов.
Укажите необходимый уровень доверия.
Запустите сертификат двойным нажатием на него и выберите опцию Установить сертификат.
Выберите опцию Текущий пользователь:
При работе с правами администратора установка возможна в хранилище сертификатов компьютера (для всех пользователей). |
Выберите опцию Поместить все сертификаты в следующие хранилище, нажмите Обзор и выберите Доверенные корневые центры сертификации.
При наличии промежуточного центра сертификации повторите шаги выше, выбрав хранилище Промежуточные центры сертификации на шаге 3. |
Перезапустите браузер и проверьте доверие сертификату, открыв адрес брокера Термит.
Деинсталляция компонентов СТД "Термит" включает в себя удаление:
брокера;
агента;
десктоп-клиента.
При необходимости удалите XQuartz и X2Go клиенты. |
Чтобы удалить брокер терминального сервера:
Перейдите в каталог, куда был распакован дистрибутив.
Запустите скрипт с параметром uninstall
:
sudo ./install.sh uninstall
При деинсталляции брокера база данных удаляется вручную. Повторное использование базы данных для новой инсталляции невозможно. |
Чтобы удалить агент:
Перейдите в каталог /opt/termit-agent
.
Запустите скрипт с параметром uninstall
:
sudo sh ./uninstall.sh
Чтобы удалить агент:
Перейдите в каталог /opt/termit-agent
.
Запустите скрипт с параметром uninstall
:
sudo sh ./uninstall.sh
Чтобы удалить десктоп-клиент, введите команду:
sudo dnf remove termit-desktop
Чтобы удалить десктоп-клиент, введите команду:
sudo dpkg -r termit-desktop
Чтобы удалить десктоп-клиент:
Откройте Finder.
В боковом меню Finder нажмите Программы.
Удалите десктоп-клиент.
Чтобы удалить десктоп-клиент:
Введите Панель управления в поле поиска на панели задач, а затем в списке результатов выберите Панель управления.
Перейдите в
.Удалите десктоп-клиент.