Давайте дружить в Телеграме: рассказываем про новые фичи, общаемся в комментах, прислушиваемся к вашим идеям Подписаться

RDP-протокол: что это такое, для чего используется и как работает

Команда Timeweb Cloud
Команда Timeweb Cloud
Наши инженеры, технические писатели, редакторы и маркетологи
24 июня 2022 г.
2847
11 минут чтения
Средний рейтинг статьи: 5

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

Rdp Протокол  Что Это Такое, Для Чего Используется И Как Работает

История создания RDP

Протокол Remote Desktop – детище разработчика софта Microsoft. Он изначально был практически единственным способом удаленного доступа к удаленным хостам или к рабочим местам с ПК администратора. Было еще одно предназначение: подключение к ресурсам более мощного сервера со слабых локальных машин (например, для сложных вычислений). Сегодня протокол RDP – это скорее инструмент для организации удаленных рабочих мест.

Подробнее об истории развития системы:

  1. Впервые протокол стали применять в 1998 году, соответствующую утилиту интегрировали в Windows NT 4.0 Terminal Server.
  2. Программное обеспечение для поддержки RDP Майкрософт продолжает использоваться во всех серверных и настольных системах вплоть до Windows 11/22 Server.
  3. Протокол RDP, несмотря наличие других технологий вроде VNC, остается в Виндовс базовым вариантом доступа к удаленным хостам.

Клиенты существуют практически для всех операционных систем - Linux, FreeBSD, macOS, iOS, Android, Symbian. На сегодняшний день существует версия RDP 10, хотя существующий софт поддерживает и предыдущие релизы. В новых появляются дополнительные функции, например, AutoSize масштабирование, улучшения сжатия графики с использованием кодека H.264/AVC.

Общие характеристики протокола:

  1. Поддерживаются 32 битные цвета и ниже (8, 15, 16, 24 бита).
  2. Защита данных осуществляется со 128-битных шифрованием (алгоритм RC4).
  3. Перенаправление звука, файловой системы, принтера, портов.
  4. Поддержка функции буфера обмена между удаленным и локальным компьютером.

Большую роль в появлении и развитии 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:

  1. Простая установка приложений со стороны клиента.
  2. Обслуживание пользовательских сессий с одного рабочего места.
  3. Работоспособность при активной лицензии Terminal Services.

Продукты Citrix выделяет простое развертывание, доступное управление, понятная политика изменения доступа.

Устройство сети, работающей на Terminal Services

Продукты Microsoft позволяют применять протокол RDP в двух разных режимах: для коннекта к серверам приложений (Terminal Server Mode) или управления настройками (Remote Administration Mode). Рассмотрим оба варианта.

Режим администрирования

Схему поддерживают все выпущенные релизы ОС Microsoft Windows. Различие касается только количества одновременно поддерживаемых коннектов с удаленными хостами. В локальных релизах это всегда одно – локальный вход или подключение с удаленного хоста. На серверных «ассортимент» побогаче: два сетевых коннекта и один клиент, расположенный локально.

Режим доступа к серверу терминалов

Второй вариант активен только на релизах Windows. Преимущество – нет лимитов на соединения, допускается любое их количество. Недостаток – для применения понадобится купить лицензии и настроить систему. Последний может устанавливаться как выделенный узел или сервер терминалов. Без перечисленного доступ предоставить не получится. Оба режима легко попробовать на облачных серверах Timeweb Cloud.

Принцип работы RDP

Система RDP – прикладной протокол TCP. Сначала компьютеры инициируют подключение. На транспортном уровне после подтверждения коннекта система инициализирует сессию RDP. После удачного завершения процедуры сервер терминалов включает трансляцию изображения рабочего стола и ввод с клавиатуры или мышки. Отображение возможно в виде картинки или отрисовкой графических примитивов.

Система поддерживает одновременную работу нескольких виртуальных каналов внутри одного физического соединения. Это необходимо, чтобы обеспечить работу следующих блоков:

  1. Печать на принтере или обмен данными по последовательному порту.
  2. Работа буфера обмена и иных операций с дисковой подсистемой.
  3. Использование подсистемы воспроизведения-записи звука.

Параметры, каким должны соответствовать создаваемые виртуальные каналы, задаются в начале, еще не этапе установления коннекта с хостом. При инициировании подключения применяют два варианта организации безопасности. Это интегрированная Standard RDP Security и подключаемая Enhanced RDP Security. Рассмотрим их функционал подробнее и разберемся, какими особенностями обладает каждая.

Standard RDP Security

Подход к защите передаваемой информации предполагает аутентификацию, шифрация данных и мониторинг целостности за счет модулей, интегрированных в RDP. В кодировании применяют алгоритм RC4 со сложностью ключа 40-168 бит (зависит от релиза Windows). При создании коннекта система генерирует пару ключей – для шифрации информации, переданной клиентом и сервером.

Процесс аутентификации выглядит так:

  1. Сначала система генерирует пару RSA-ключей.
  2. Затем создает сертификат открытого ключа (Proprietary Certificate).
  3. Его подписывают RSA-ключом, «зашитым» в Windows.
  4. Клиенту передают Proprietary Certificate для доступа к серверу терминалов.
  5. После проверки сертификата передается открытый ключ сервера.

Перечисленные действия активируются после указания аккаунта и его пароля, но только при подтверждении их корректности. Все передаваемые данные проходят проверку на целостность при помощи алгоритма MAC (Message Authentication Code). Он разработан на основе MD5 и SHA1. Есть возможность переключить систему на применение 3DES, ее поддержка появилась в Windows 2003 Server (необходима для соответствия стандарту FIPS).

Enhanced RDP Security

Второй вариант предполагает подключение внешних модулей – это TLS 1.0 и CredSSP. Протокол TLS появился в Windows Server с релиза 2003. Его используют, когда RDP поддерживает клиентская машина. Поэтому перед подключением желательно проверить утилиту – нужен релиз 6.0 или выше. Доступен выбор между генерацией собственного сертификата или использованием имеющегося в системе Windows.

Протокол CredSSP – это комбинированный продукт, совмещающий возможности TLS, Kerberos и NTLM. Преимущества решения:

  1. Разрешение на вход проверяется до завершения коннекта по RDP, такой подход экономит мощности сервера при большом объеме запросов.
  2. Шифрация и идентификация аккаунтов будет осуществляться по стандартам TLS.
  3. Единовременный вход на хост работает на базе Kerberos или NTLM.

Выбрать CredSSP можно при помощи флажка Use Network Level Authentication, доступного во всех ОС начиная с Windows Vista/2008 Server.

Порядок лицензирования Terminal Services

Популярным способом доступа считается «тонкий клиент». Его особенность – это необходимость создания и активации сервера лицензий, без которого система функционировать не будет (возможно подключение через «толстого клиента» или к стандартному рабочему столу, но только в удаленном варианте).

Выдача лицензий осуществляется в двух режимах. Без активации пользователю дают временную лицензию на период текущей сессии или другое лимитированное время. После активации пользователю на сервере выдается «постоянная» лицензия. Процедура выглядит как предоставление цифрового сертификата, подтверждающего легитимность подключаемой рабочей машины.

Типы клиентских лицензий:

  1. Temporary Terminal Server CAL – временная, ограниченная сроком функционирования.
  2. Device Terminal Server CAL – с привязкой к конкретному устройству.
  3. User Terminal Server CAL – привязанная к указанному в настройках пользователю.
  4. External Terminal Server Connector – рассчитанная на внешние подключения.

Рассмотрим варианты подробнее.

Лицензия «по времени»

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

Лицензия на компьютер

Вариант, предполагающий работу клиента с конкретного физического устройства. Срок работы лицензии выбирается в диапазоне от 52 до 89 дней. Если до его окончания осталось 7 и менее дней, сервер при любой попытке подключения будет пытаться заменить ее на постоянную. При смене устройства цикл будет запущен с нуля.

Лицензия на пользователя

Наиболее гибкий вариант лицензирования, т.к. позволяет работать с любого устройства, создает комфортные условия для развертывания удаленных рабочих мест. В этом режиме есть особенность – в Terminal Services нет встроенного счетчика подключений. Поэтому при коннекте любого последующего клиента объем доступных лицензий останется прежним.

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

Лицензия на внешних пользователей

Отдельный тип лицензии для выдачи прав посторонним лицам. Лицензия не ограничивает количество клиентов независимо от оформленного объема, потому что, по соглашению EULA, для их формирования обязателен выделенный сервер. Это ограничивает доступ внешних клиентов к корпоративным сессиям. Популярности такой тип лицензий не заслужил из-за завышенной цены.

Подключение по RDP на macOS

Под операционные системы macOS компания Microsoft выпустила утилиту Remote Desktop, она доступна для скачивания в магазине приложений App Store. Процесс подключения с ней такой же, как и в Windows - сначала вводится IP-адрес сервера или его домен, затем при запросе логин и пароль пользователя, которому предоставлен доступ для удаленного управления.

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

Подключение к удаленному рабочему столу в Ubuntu

При подключении из 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-тренды, делятся полезными инструкциями и даже приглашают к себе работать. 

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону