Подключение к рабочему столу удаленного хоста возможно несколькими способами. Например, при помощи сторонних приложений вроде UltraVNC. Но наиболее распространенным вариантом применения RDP (Remote Desktop Protocol) считается стандартная утилита Microsoft под простым названием Remote Desktop. В этом материале мы рассмотрим историю появления термина, принципов соединения, защиты данных, передаваемых при помощи протокола.
Протокол Remote Desktop – детище разработчика софта Microsoft. Он изначально был практически единственным способом удаленного доступа к удаленным хостам или к рабочим местам с ПК администратора. Было еще одно предназначение: подключение к ресурсам более мощного сервера со слабых локальных машин (например, для сложных вычислений). Сегодня протокол RDP – это скорее инструмент для организации удаленных рабочих мест.
Подробнее об истории развития системы:
Клиенты существуют практически для всех операционных систем - Linux, FreeBSD, macOS, iOS, Android, Symbian. На сегодняшний день существует версия RDP 10, хотя существующий софт поддерживает и предыдущие релизы. В новых появляются дополнительные функции, например, AutoSize масштабирование, улучшения сжатия графики с использованием кодека H.264/AVC.
Общие характеристики протокола:
Большую роль в появлении и развитии Remote Desktop сыграл бренд Citrix Systems. Он уже в начале 90-х гг. имел специализацию в сфере методов удаленного доступа к многопользовательским системам. Специалисты этой фирмы создали сетевую систему WinFrame, основанную на Windows NT 3.51. Для этого понадобилось выкупить права на исходный код. Результат – Microsoft уже в 1997 г. заключила контакт с Citrix Systems.
Его основная часть включала использование технологий в обновленном релизе Windows NT 4.0. Попутно компании договорились о том, что Citrix не будет распространять свои продукты, а переключится на создание модулей для платформ Майкрософт. Также проговорили разграничение прав на протоколы. За Citrix сохранился ICA (Independent Computing Architecture), а за Microsoft – RDP, построенный на базе ITU T.120.
Конкуренция между Citrix и Microsoft продолжается. Первая позиционирует себя как разработчик высокопроизводительных систем, хотя в линейке продуктов есть и «облегченные» решения. Вторая со своим Terminal Services вышла вперед на рынке однотипных конфигураций на серверах средней и малой мощности. Но постоянно работает над расширением функционала системы, чтобы охватить еще и сегмент, традиционно занятый такими компаниями, как Citrix.
Преимущества Terminal Services:
Продукты Citrix выделяет простое развертывание, доступное управление, понятная политика изменения доступа.
cloud
Продукты Microsoft позволяют применять протокол RDP в двух разных режимах: для коннекта к серверам приложений (Terminal Server Mode) или управления настройками (Remote Administration Mode). Рассмотрим оба варианта.
Схему поддерживают все выпущенные релизы ОС Microsoft Windows. Различие касается только количества одновременно поддерживаемых коннектов с удаленными хостами. В локальных релизах это всегда одно – локальный вход или подключение с удаленного хоста. На серверных «ассортимент» побогаче: два сетевых коннекта и один клиент, расположенный локально.
Второй вариант активен только на релизах Windows. Преимущество – нет лимитов на соединения, допускается любое их количество. Недостаток – для применения понадобится купить лицензии и настроить систему. Последний может устанавливаться как выделенный узел или сервер терминалов. Без перечисленного доступ предоставить не получится. Оба режима легко попробовать на облачных серверах Timeweb Cloud.
Система RDP – прикладной протокол TCP. Сначала компьютеры инициируют подключение. На транспортном уровне после подтверждения коннекта система инициализирует сессию RDP. После удачного завершения процедуры сервер терминалов включает трансляцию изображения рабочего стола и ввод с клавиатуры или мышки. Отображение возможно в виде картинки или отрисовкой графических примитивов.
Система поддерживает одновременную работу нескольких виртуальных каналов внутри одного физического соединения. Это необходимо, чтобы обеспечить работу следующих блоков:
Параметры, каким должны соответствовать создаваемые виртуальные каналы, задаются в начале, еще не этапе установления коннекта с хостом. При инициировании подключения применяют два варианта организации безопасности. Это интегрированная Standard RDP Security и подключаемая Enhanced RDP Security. Рассмотрим их функционал подробнее и разберемся, какими особенностями обладает каждая.
Подход к защите передаваемой информации предполагает аутентификацию, шифрация данных и мониторинг целостности за счет модулей, интегрированных в RDP. В кодировании применяют алгоритм RC4 со сложностью ключа 40-168 бит (зависит от релиза Windows). При создании коннекта система генерирует пару ключей – для шифрации информации, переданной клиентом и сервером.
Процесс аутентификации выглядит так:
Перечисленные действия активируются после указания аккаунта и его пароля, но только при подтверждении их корректности. Все передаваемые данные проходят проверку на целостность при помощи алгоритма MAC (Message Authentication Code). Он разработан на основе MD5 и SHA1. Есть возможность переключить систему на применение 3DES, ее поддержка появилась в Windows 2003 Server (необходима для соответствия стандарту FIPS).
Второй вариант предполагает подключение внешних модулей – это TLS 1.0 и CredSSP. Протокол TLS появился в Windows Server с релиза 2003. Его используют, когда RDP поддерживает клиентская машина. Поэтому перед подключением желательно проверить утилиту – нужен релиз 6.0 или выше. Доступен выбор между генерацией собственного сертификата или использованием имеющегося в системе Windows.
Протокол CredSSP – это комбинированный продукт, совмещающий возможности TLS, Kerberos и NTLM. Преимущества решения:
Выбрать CredSSP можно при помощи флажка Use Network Level Authentication, доступного во всех ОС начиная с Windows Vista/2008 Server.
Популярным способом доступа считается «тонкий клиент». Его особенность – это необходимость создания и активации сервера лицензий, без которого система функционировать не будет (возможно подключение через «толстого клиента» или к стандартному рабочему столу, но только в удаленном варианте).
Выдача лицензий осуществляется в двух режимах. Без активации пользователю дают временную лицензию на период текущей сессии или другое лимитированное время. После активации пользователю на сервере выдается «постоянная» лицензия. Процедура выглядит как предоставление цифрового сертификата, подтверждающего легитимность подключаемой рабочей машины.
Типы клиентских лицензий:
Рассмотрим варианты подробнее.
Выдается пользователю на момент первого коннекта с сервером терминалом. Срок ее действия – 90 календарных дней, независимо от активности клиента. Если второе соединение прошло успешно, сервер попытается оформить на клиентскую машину постоянную лицензию. Обязательно наличие свободных лицензий в серверном хранилище.
Вариант, предполагающий работу клиента с конкретного физического устройства. Срок работы лицензии выбирается в диапазоне от 52 до 89 дней. Если до его окончания осталось 7 и менее дней, сервер при любой попытке подключения будет пытаться заменить ее на постоянную. При смене устройства цикл будет запущен с нуля.
Наиболее гибкий вариант лицензирования, т.к. позволяет работать с любого устройства, создает комфортные условия для развертывания удаленных рабочих мест. В этом режиме есть особенность – в Terminal Services нет встроенного счетчика подключений. Поэтому при коннекте любого последующего клиента объем доступных лицензий останется прежним.
Это не соответствует правилам Microsoft, но факт есть факт. Если требуется запустить одновременную выдачу лицензий на устройство и на пользователя, надо настроить сервер на первый вариант лицензирования. В комбинированном варианте также не будет счетчика на соединение разных клиентов, ограничить их можно только привязкой к оборудованию.
Отдельный тип лицензии для выдачи прав посторонним лицам. Лицензия не ограничивает количество клиентов независимо от оформленного объема, потому что, по соглашению EULA, для их формирования обязателен выделенный сервер. Это ограничивает доступ внешних клиентов к корпоративным сессиям. Популярности такой тип лицензий не заслужил из-за завышенной цены.
Под операционные системы macOS компания Microsoft выпустила утилиту Remote Desktop, она доступна для скачивания в магазине приложений App Store. Процесс подключения с ней такой же, как и в Windows - сначала вводится IP-адрес сервера или его домен, затем при запросе логин и пароль пользователя, которому предоставлен доступ для удаленного управления.
После запуска возможна выдача сообщения о недоверенном сертификате. Все, что требуется от пользователя, это кликнуть “Показать сертификат” и отметить опцию “Всегда доверять…” После этого система всегда будет осуществлять соединение без дополнительных вопросов.
При подключении из Windows к удаленному хосту с установленной системой Ubuntu используют все ту же утилиту Remote Desktop. Единственное, нужно подготовить сервер — установить на него поддержку технологии:
sudo apt install xrdp
После инсталляции запустите сервис:
sudo systemctl status rdp
В обратной ситуации, когда локальная машина работает под управлением Linux, пригодится утилита Remmina. Только в ней надо поменять протокол VNC на RDP. Несмотря на разные системы пользователь работает как в «родной» среде. Также используют клиенты Linux – Gnome Connection, Vinagre, Xfreerdp, Rdesktop.
Процесс установки пакета Remmina:
sudo apt-add-repository ppa:remmina-ppa-team/remmina-next
sudo apt-get update
sudo apt-get install remmina remmina-plugin-rdp libfreerdp-plugins-standard
Подробнее о Remmina и других клиентах мы писали в статье «RDP-клиенты для Linux».
Подготовили для вас выгодные тарифы на облачные серверы
Мы завершили рассмотрение протокола RDP, узнали, что это такое и как работает. Остается лишь добавить, что серверу лицензий можно задать одну из двух возможных ролей. Первая предполагает работу в рамках домена или рабочей группы (Domain or Workgroup License Server). Вторая – работу внутри организации (Entire Enterprise License Server).
Выбор влияет на методику сканирования сервера лицензий. В первом случае система ищет его по Active Directory, во втором – через широковещательный запрос NetBIOS (в обоих вариантах корректность будет проверяться через RPC-запрос). Протестировать варианты можно на серверах Timeweb Cloud.
Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать.