Терминальный сервер — способ дать многим сотрудникам доступ к общим приложениям: программы работают на сервере, пользователи подключаются к своим сеансам по сети. Разбираем, как он устроен, как настраивается на Windows Server, какие нужны лицензии, где у схемы предел и как тот же сценарий строится на Linux и российской платформе.

Что такое терминальный сервер

Терминальный сервер — сервер, на котором одновременно работают сеансы многих пользователей. Каждый сотрудник подключается к общей серверной операционной системе, получает свой сеанс — рабочий стол или отдельное приложение — и работает так, будто программа запущена у него на компьютере. Вычисления, программы и данные остаются на сервере; на устройство пользователя передаётся изображение экрана, обратно — нажатия клавиш и движения мыши.

За это отвечает служба сеансов — в терминологии Microsoft RDSH (Remote Desktop Session Host). Ключевое отличие от персонального компьютера и от VDI: десятки пользователей делят одну операционную систему, а не получают каждый свою. Поэтому схема дешёвая на старте и подходит для однотипных задач: бухгалтерия, склад, операционисты, работа с 1С через тонкий клиент.

Как работает терминальный сервер

В основе классического терминального сервера — протокол RDP (Remote Desktop Protocol). Пользователь запускает клиент подключения, проходит аутентификацию и попадает в свой сеанс. Сервер отрисовывает рабочий стол и приложения, сжимает изображение и отдаёт его клиенту; клиент возвращает действия пользователя.

Когда пользователей много, один сервер перестаёт справляться, и терминальные серверы объединяют в ферму. Появляются вспомогательные роли: брокер подключений распределяет сеансы между серверами и возвращает пользователя в его прежний сеанс, шлюз даёт безопасный доступ снаружи, сервер лицензирования выдаёт лицензии на подключение. Для пользователя это незаметно: он открывает свой рабочий стол.

Терминальный сервер на Windows Server (RDS)

Чаще всего под терминальным сервером понимают Windows Server с ролью Remote Desktop Services (RDS). Роль состоит из компонентов:

  • RD Session Host — сервер сеансов, на котором работают пользователи;
  • RD Connection Broker — распределение сеансов в ферме и возврат в прежний сеанс;
  • RD Gateway — шлюз для доступа извне по HTTPS;
  • RD Licensing — сервер лицензий подключения (RDS CAL);
  • RD Web Access — доступ к опубликованным приложениям через браузер.
Панельная дискуссия на отраслевой ИТ-конференции

Как настроить терминальный сервер на Windows Server

Порядок настройки терминального сервера в общем виде один и тот же независимо от версии Windows Server:

  1. Подготовить сервер. Установить Windows Server, ввести его в домен, выделить ресурсы под расчётное число одновременных сеансов.
  2. Установить роль RDS. Через диспетчер серверов добавить роль Remote Desktop Services и нужные компоненты; для одного сервера достаточно Session Host, Connection Broker и Web Access, для фермы брокер и шлюз выносятся отдельно.
  3. Создать коллекцию сеансов. Указать серверы сеансов и группы пользователей, которым разрешено подключение.
  4. Опубликовать рабочий стол или приложения. Полный рабочий стол либо отдельные программы через RemoteApp — тогда пользователь видит только окно приложения.
  5. Настроить лицензирование. Установить роль RD Licensing, активировать сервер лицензий, указать тип лицензий и привязать его к серверам сеансов.
  6. Настроить политики. Групповые политики: профили пользователей, ограничения буфера обмена и проброса устройств, тайм-ауты сеансов.
  7. Открыть доступ снаружи. Только через RD Gateway или иной шлюз с многофакторной аутентификацией; публиковать порт RDP напрямую в интернет нельзя.

На практике «поставил роль — и работает» не бывает: основное время уходит на пункты 5–7.

Лицензии терминального сервера

Каждое подключение к терминальному серверу Windows требует клиентской лицензии RDS CAL. Она бывает двух типов: на пользователя (per User) — для сотрудников, которые заходят с разных устройств, и на устройство (per Device) — для рабочих мест, за которыми работают посменно. Лицензии учитывает сервер лицензирования; без него сервер сеансов работает ограниченное время, затем перестаёт принимать подключения.

RDS CAL — отдельная статья расходов поверх лицензий на саму Windows Server и на прикладное ПО. При расчёте бюджета нужно считать три слоя: серверная ОС, клиентские лицензии подключения, лицензии приложений в сеансах.

Пользователи терминального сервера: сколько их потянет сервер

Число пользователей терминального сервера ограничено ресурсами хоста: чем тяжелее приложения, тем меньше сеансов выдержит один сервер. Когда предел достигнут, добавляют серверы в ферму и распределяют пользователей брокером. Поскольку все работают в одной ОС, «тяжёлый» пользователь или зависшее приложение влияют на соседей — ресурсы приходится резервировать с запасом.

Ограничения классического терминального сервера

  • Общая ОС. Сбой, обновление или вредоносное ПО в сеансе затрагивают всех пользователей сервера.
  • Безопасность. Открытый наружу RDP — постоянная цель для перебора паролей и шифровальщиков; обязателен шлюз и второй фактор.
  • Лицензии и поставки. Windows Server, RDS CAL и надстройки Citrix — зарубежные лицензии; после ухода Citrix и ограничения поставок Microsoft расширять такую инфраструктуру в России сложно.
  • Масштабирование и отказоустойчивость. Отказ сервера сеансов отключает всех его пользователей сразу.

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

На терминальном сервере пользователи делят одну серверную ОС и работают в сеансах: дёшево и просто, изоляция слабее. В VDI каждому сотруднику выделяется отдельная виртуальная машина: полная изоляция, свой набор ПО, сбой одного не задевает других, но ресурсов нужно больше.

Ориентир: терминальный доступ — для однотипных рабочих мест (операционисты, склад, колл-центр), VDI — там, где нужны изоляция, разные наборы ПО и повышенные требования к безопасности. Подробно — в статье VDI: что это, как работает и как внедрить.

Когда сотрудники работают из дома и из филиалов, выбор между терминальным сервером и VDI — часть более широкой задачи. Как организовать удалённые рабочие места и защитить доступ, разобрано в отдельной статье: удалённые рабочие места.

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

Терминальный сервер не обязан быть Windows. В платформе Inscale терминальный доступ построен на пакете RDSH — том же, что лежит в основе RDP, — и работает одинаково для Windows и для Linux. Терминальный сервер можно развернуть на Astra Linux, RED OS, Ubuntu или Debian: в систему доустанавливаются несколько пакетов, которых нет по умолчанию, после чего пользователи подключаются к ней так же, как к Windows Server, — в графический сеанс, а не только в консоль.

Как это настраивается:

  1. Создаётся виртуальная машина с нужной ОС, в мастере включается режим RDSH.
  2. В настройках машины указываются сетевой адаптер и домен, через которые идёт терминальное подключение.
  3. Если нужно опубликовать отдельное приложение, а не весь рабочий стол, оно публикуется средствами операционной системы, а в платформе для него задаётся псевдоним — пользователь получает подключение к приложению.
  4. Пользователям или группам из Active Directory / LDAP назначается доступ к машине.

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

Терминальный доступ на платформе Inscale

Что даёт российская платформа виртуализации в сценарии терминального сервера — по тому, что показывается на демо:

  • Два протокола на выбор. Терминальный доступ по RDSH либо собственный протокол доставки с профилями под канал: пользователь прямо в сеансе переключает качество картинки, если просел канал.
  • Шлюз в DMZ. Точка входа для пользователей снаружи; до авторизации не открывает порты во внутреннюю сеть, поддерживает второй фактор (RADIUS, OTP, смарт-карты). Потоки пользователей и администраторов разделены.
  • Политики безопасности на машину или пул: USB-устройства — запрет, разрешение или разрешение только конкретных идентификаторов (например, определённой модели смарт-карты); звук, микрофон, камера; буфер обмена — полностью, только текст с ограничением размера, файлы с ограничением размера; водяной знак на экране; отключение сеанса при нарушении политики. Если USB запрещён, в диспетчере устройств виртуальной машины USB-контроллера нет.
  • Пользователи из каталога. Группы и учётные записи берутся из Active Directory или LDAP; роли и привилегии назначаются в платформе, вплоть до отдельных действий с конкретной машиной или пулом. Пользователь с правами только на подключение не видит в интерфейсе кластеры, хранилища и сети — платформа их ему не отдаёт.
  • Клиент. Отдельное приложение для пользователя, в котором есть только выданные ему рабочие места; работает на Windows, Linux, macOS и на тонких клиентах.

Если у вас уже есть ферма RDS на Windows и нужен план перехода — он разобран в статье Замена терминального сервера на российский VDI. Из чего состоит платформа — в обзоре Российская система виртуализации.

Итог

Терминальный сервер — проверенный способ дать многим пользователям доступ к общим приложениям. На Windows Server это роль RDS: сеансы, лицензии CAL, фермы с брокером и шлюзом. Ограничения схемы — общая ОС, открытый RDP и зарубежные лицензии. Тот же сценарий можно построить на Linux и на российской платформе: терминальный доступ к Windows и Linux, шлюз с многофакторной аутентификацией, политики безопасности, а рядом — VDI для тех, кому нужна отдельная машина.

Хотите оценить терминальный доступ Inscale на своих задачах — запросите демо.