Termit 2.1 под микроскопом. Рассматриваем новую версию отечественной системы терминального доступа
Всем привет! На связи Алексей Ватутин, руководитель практики инфраструктуры рабочих мест в компании К2Тех.
Полгода назад я писал о выходе версии 2.0 решения терминального доступа Termit. В апреле этого года вышел очередной релиз этого продукта, в котором появился новый функционал, и в этой статье я бы хотел рассказать про некоторые из этих возможностей.
Для тех, кто не может или не хочет читать старое, короткое «ранее в сериале»: Termit — это решение для организации терминального доступа к приложениям и рабочим столам на базе ОС Linux, которое развивается с 2018 года и внесено в реестр отечественного ПО. Разработчиком выступила отечественная компания Orion soft, известная на рынке своей платформой виртуализации zVirt. Сам разработчик позиционирует решение как отечественную замену аналогичного решения от Citrix, но это скорее заявлено как цель, к которой коллеги идут, так как невозможно создать за год-полтора что-то аналогичное решению, развивавшемуся десятилетиями.
Что нового и чуть-чуть про роадмапы
В прошлом релизе Termit продемонстрировал базовый функционал для системы терминального доступа — поддержка ферм терминальных серверов, доставка столов и приложений, интеграция с LDAP, проброс различных устройств в сессии, реализация отказоустойчивости для брокера. И все это работало только с терминальными серверами на Linux.
При выходе версии 2.0 разработчики опубликовали свою карту развития, в которой были обещания и на вышедший релиз 2.1:
Разработчикам удалось выполнить обещанное. Коллеги заявляют, что в версии 2.1 появились следующие возможности:
Публикация приложений и рабочего стола на Windows-серверах
Переподключение к терминальной сессии
Управление таймаутами сессий
Сортировка и фильтрация на страницах интерфейса
Свой клиент X2Go для Windows и Linux
SSO для терминальной сессии
Поддержка файлов подключений
Проброс смарт-карт при использовании терминальных серверов на базе Windows
Мы провели тестирование в нашей лабе и теперь хотим поделиться его результатами. Не весь новый функционал имеет смысл разбирать в рамках статьи, поэтому расскажу о самом интересном.
Доставка столов и приложений Windows
Тут, наверное, было ожидание какого-то чуда, хотя и ничем не подкрепленное ☺. В общем, в Termit 2.1 действительно появилась доставка приложений и рабочих столов для Windows. Но работает это только в связке с ролью Remote Desktop Session Host (RDSH) службы RDS из состава Windows Server.
На данный момент поддерживаются RDSH на базе ОС Windows Server 2012 R2, Windows Server 2016 и Windows Server 2019. Но брокером подключений в таком случае выступает Termit, а на терминальные серверы Windows необходимо устанавливать его агента. Windows выступает в роли именно терминального сервера, без использования ролей RD Connection Broker и RD Gateway. Для внешних подключений используется шлюз Termit, как и в случае с Linux-приложениями.
Возникает вопрос: «А для чего вообще это нужно, если там все равно RDS?». По нашему опыту есть несколько сценариев, когда такой подход оправдан:
Компания находится в процессе импортозамещения и часть ПО может быть перенесена на Linux, а часть останется на Windows, т.к. на текущий момент нет возможности его заменить на что-то аналогичное. В этом случае Termit позволит организовать единую точку входа для всех терминальных пользователей, независимо от того, какие приложения они будут запускать. Единообразие в процессах — это достаточно важный момент для пользователей;
Ограниченность в количестве доступных лицензий на терминальные подключения — есть компании, которые продолжают рост, происходит набор сотрудников и новым сотрудникам нужно предоставить доступ к тем же сервисам, что и у остальных. Лицензии Microsoft или Citrix сейчас приобрести либо тяжело, либо невозможно, поэтому компании рассматривают вариант, при котором часть ПО переезжает на Linux, за счет этого высвобождаются лицензии на «старой» терминальной службе, которые используются для новых сотрудников.
Оба сценария похожи между собой, но причины, по которым заказчики ищут новые решения, в них разные — либо требования по импортозамещению, либо нехватка имеющегося пула лицензий. Вполне возможно, что в будущем появятся и другие сценарии, и тогда про какие-то интересные мы расскажем в следующих статьях.
Процесс подготовки терминальных серверов достаточно прост — на серверы Windows устанавливается роль RDSH, выполняется настройка локального Firewall, устанавливается Java. Далее с помощью скрипта ставится агент Termit. Сам скрипт генерируется автоматически в консоли администрирования Termit при добавлении записи о новом терминальном сервере. Вся процедура достаточно подробно описана в документации вендора и приводить пошаговый гайд не видим смысла. Тут важно помнить, чтобы до начала процедуры добавления терминального сервера в Termit, он был включен в домен, а в DNS существовали корректные A-записи.
Публикация и назначение приложений также не вызывает затруднений — те, кто ранее работали с терминальными службами, смогут выполнить данную операцию без труда. При публикации приложений Windows лучше указывать полный путь до исполняемого файла, кавычки допустимы, но не обязательны — наши тесты показали, что пробелы в пути корректно экранируются/обрабатываются.
Далее пользователи запускают клиент Termit на своем рабочем месте, аутентифицируются и выбирают нужное приложение либо рабочий стол для запуска. С Windows подключение выполняется с помощью стандартного клиента RDP, правда тут теперь есть варианты, но про это чуть позже.
Ну и в качестве завершения темы с публикацией приложений Windows. Наверняка у вас возникнет вопрос — «А можно ли было обойтись вообще без терминальных серверов Windows?». Такой вопрос возник и у нас, и мы не стесняясь задали его разработчикам ☺. Ответ был простой: «Тема с Wine прорабатывалась, но работа части приложений достаточно нестабильна и требует индивидуальной проработки. Технически доставка таких приложений возможна и работает, но гарантировать работу приложений в Wine мы пока не можем…». В общем, надежда на вендорское решение еще остается… Однако пока, как решение можно продолжать упаковывать нужные приложения на этапе внедрения силами команды внедрения или подрядчика.
Поддержка повторных подключений в сессию
Тут все просто — ранее этот функционал отсутствовал в Termit и это было больно. Мы знаем некоторых заказчиков, которые посмотрев предыдущую версию решения сказали: «Не, ну вы как себе это представляете…». Да, одно дело подключаться только в офисе по протянутым до розетки кабелям, совсем другое — подключение из дома или в дороге, где связь может быть не самой стабильной и вероятность потерять результаты работы велика.
В общем, теперь оно есть и работает. В случае, если связь пропала, при повторном подключении появится такой вот запрос:
И тут пользователь может выбрать возврат в старую сессию. При этом нужно не забывать про другую функциональность, появившуюся в этой версии, — таймауты сессий. Если перерыв был больше настроенных таймаутов, то пользователь может и не найти свое старое подключение. Но опять-таки, все, кто ранее работали с терминальными решениями, обычно это учитывают при настройке параметров автоматического отключения сессий.
Есть у переподключения и еще одна особенность, про которую нужно упомянуть, — оно не будет работать в случае, если пользователь запустил Win-приложение с ОС Windows, а потом пробует переподключиться с Linux. Это ограничение касается только запуска приложений, но не полных рабочих столов, и только Win-приложений.
Управление таймаутами сессий
Это новая функциональность, которая позволяет управлять поведением сессий и своевременно отключать бездействующие и завершать отключенные сессии. Это позволяет экономить ресурсы терминальных серверов.
Настройка таймаутов выполняется на уровне группы серверов и имеет следующие возможности:
Администратор выбирает для каждого типа сессий период и действие, которое будет автоматически совершено в отношении сессии по истечении указанного периода времени. При необходимости в дальнейшем значения могут быть изменены.
SSO
Уменьшение случаев ввода пароля всегда положительно влияет на ментальное состояние пользователей — это факт. Особенно, если по действующей политике длина пароля должна быть не менее 27 символов, и минимум 9 должны быть неповторяющимися спецсимволами, а буквенные сочетания прогоняются через словари ☺. В общем, SSO — это удобно.
Да, в Termit 2.1 появился Single Sign-On. Пользователь разово вводит свою учетную запись при запуске клиента, далее его данные автоматически пробрасываются во все открываемые сессии. Но есть в SSO на Windows и нюанс — при определенных условиях групповые политики могут ломать его работу. На данный момент такова особенность реализации, но в дальнейшем коллеги обещаю переделать эту часть.
Файлы подключений
Очень удобная вещь эти файлы подключений — положил пользователю на стол, он его запускает и даже не догадывается, что приложение установлено не на его ПК ☺. Они теперь тоже есть. На данный момент готовить их нужно вручную, при открытии такого файла должен будет запускаться клиент Termit и выполнять подключение к терминальному серверу (на самом деле чуть сложнее, но, впрочем, как и с обычным терминальным подключением).
Формат файлов описан в документации разработчика, но фактически необходимо указать имя точки подключения, имя пользователя и идентификатор приложения. Не очень понравилось, что информация об идентификаторе отсутствует на странице с описанием самого приложения, но если посмотреть в URL страницы или на события, связанные с приложением, то он быстро находится. В следующей версии вендор обещает добавить генератор файлов подключений прямо в интерфейс, что сделает этот функционал удобнее.
Бочка и ложка
Все написанное выше в основном было про хорошее. А теперь хотелось бы упомянуть и некоторые особенности, которые нужно учитывать при развертывании и эксплуатации Termit версии 2.1:
До развертывания брокера в DNS необходимо создать A-записи для всех серверов, которые будут участвовать в организации терминальной службы, — СУБД, брокер, терминальные серверы. Вроде бы требование разумное, но часто в условиях лабы все делается не по лучшим практикам, а просто чтобы быстро перейти к тестированию — например, сначала развернуть сервис, а потом уже создать для него записи в DNS. И в случае с Termit если, например, не создать записи для СУБД или брокера до запуска скрипта установки, то вы не сможете подключиться к консоли администрирования и файл hosts вам в этой ситуации не поможет, т.к. брокер поставляется в виде контейнера Docker.
Если по каким-то причинам с первого раза установка не прошла и необходимо все начинать заново, нужно обязательно удалять БД и перезапускать службу СУБД. Это нужно помнить, но когда-нибудь вендор наверняка про это напишет в документации.
Проброс подключенных носителей USB в ОС Linux выполняется через их монтирование в файловую систему на рабочем месте пользователя и предоставление доступа к ним как к локальным дискам. Да, это не проброс «сырых» устройств, но пока для носителей это работает только так.
И главная неприятная особенность, связанная с доставкой приложений и столов Windows, — для одновременного запуска нескольких приложений необходимо иметь количество терминальных серверов, равное максимальному количеству одновременно запущенных приложений от имени одного пользователя. Это ограничение связано с особенностями создания сессий на терминальных серверах и в будущем, как уверяют разработчики, будет устранено. Если вы попробуете под одной учетной записью запустить второе приложение, а RDSH у вас всего один, то увидите такое вот сообщение:
На текущий момент данное ограничение непреодолимо, поэтому при планировании архитектуры службы нужно правильно посчитать виртуальные серверы.
Заключение
По субъективным оценкам команды, проводившей тестирование, Termit в новом релизе сделал рывок в части своих возможностей. Да, некоторые вещи удивляют, но обещание вендора поправить недочеты в будущем, конечно, подкупает. Из доступных отечественных решений немногие смогут на сегодняшний день составить достойную конкуренцию.
По информации вендора, в следующей версии ожидаются:
Учитывая скорость выхода релизов (уже второй за полгода), надеюсь, скоро у нас появится возможность оценить новые фичи продукта. Будем ждать выхода 2.2 и после тестирования обязательно вернемся к вам с новостями.
Подробную инструкцию по развертыванию Termit 2.1 коллеги из Orion soft составили в статье Безопасный интернет через Termit: 11 шагов для развертывания СТД
Больше про инфраструктурное ПО:
Пункт назначения — Squadus. Наш опыт переезда на альтернативу Microsoft Teams
Без 5% VMware? Обзор свежего релиза платформы виртуализации zVirt 4.1
Обзор РЕД АДМ и Атом.Домен: новые альтернативы службе каталогов MS Active Directory