Открыть сервисСервис

RDP — протокол удалённого рабочего стола

RDP (Remote Desktop Protocol, протокол удалённого рабочего стола) — проприетарный сетевой протокол компании Microsoft, обеспечивающий удалённое управление рабочим столом компьютера по сети. Протокол передаёт графический интерфейс удалённого хоста на клиентское устройство и перенаправляет ввод пользователя (клавиатура, мышь) обратно. RDP работает поверх TCP/IP, по умолчанию использует порт 3389 и поддерживает шифрование трафика. Основная область применения — удалённая администрация серверов и рабочих станций под управлением Windows, а также доступ к виртуальным рабочим столам.

История

RDP появился в 1995 году как часть Windows NT 3.5.1 Terminal Server Edition. Протокол основан на стандарте T.120 и использует несколько каналов (virtual channels) для передачи данных. Первая версия протокола поддерживала разрешение до 8 бит на пиксель. В Windows 2000 Server появился терминальный сервер Terminal Services, построенный на RDP. В Windows XP RDP получил поддержку удалённого рабочего стола для настольных ОС.

В дальнейшем версии протокола развивались:

  • RDP 4.0 — базовая реализация в Windows NT 4.0 Terminal Server Edition;
  • RDP 5.0 — улучшенное сжатие, поддержка 256-цветного режима (Windows 2000);
  • RDP 5.1 — перенаправление принтеров и дисков (Windows XP);
  • RDP 6.0 — поддержка нескольких мониторов, Aero-эффектов, динамического разрешения (Windows Vista / Server 2008);
  • RDP 7.0 — RemoteApp, виртуализация рабочего стола (Windows 7 / Server 2008 R2);
  • RDP 8.0/8.1 — улучшенная работа через нестабильные сети, поддержка UDP (Windows 8 / Server 2012);
  • RDP 10 — поддержка GPU-виртуализации (GPU paravirtualization) и мультисенсорного ввода (Windows 10 / Server 2016).

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

RDP использует клиент-серверную архитектуру. Клиент (mstsc.exe в Windows) подключается к серверному компоненту (termsrv.exe) на удалённом хосте. Соединение устанавливается в три этапа:

  1. Handshake — обмен версиями протокола и согласование параметров.
  2. Secure Exchange — обмен ключами шифрования, проверка сертификата сервера.
  3. Connection Sequence — создание каналов данных, настройка сессии.

Для передачи графики RDP использует собственный набор примитивов (drawing orders) вместо передачи растровых изображений, что существенно снижает объём трафика. Протокол поддерживает динамическое сжатие, кэширование изображений на клиенте и перенаправление различных устройств: принтеров, дисков, последовательных портов, аудиоустройств, USB-устройств.

Безопасность

RDP поддерживает шифрование трафика. По умолчанию используется 128-битное шифрование, начиная с RDP 6.0 — 128-битное сессиное шифрование с поддержкой AES. Аутентификация выполняется через систему Windows (NTLM, Kerberos). Для повышения безопасности рекомендуется:

  • изменять стандартный порт 3389;
  • использовать VPN для доступа к RDP из интернета;
  • применять Network Level Authentication (NLA), требующую аутентификации до установления сессии;
  • ограничивать список пользователей, имеющих доступ к удалённому рабочему столу;
  • использовать сертификаты и двухфакторную аутентификацию.

Несоблюдение этих мер приводит к массовым атакам на открытые RDP-порты. По данным ряда исследований, тысячи серверов с открытым портом 3389 регулярно подвергаются перебору паролей (brute force). В 2019 году вспышка шифровальщика RobbinHood была связана с компрометацией RDP-доступа.

Альтернативы и кроссплатформенность

Существуют реализации RDP-совместимых клиентов для Linux, macOS, Android и iOS: Remmina, FreeRDP, Microsoft Remote Desktop. FreeRDP — открытая реализация протокола, написанная на C, поддерживающая RDP 7.1 и выше.

Конкурентные протоколы удалённого доступа:

ПротоколРазработчикОсобенности
VNC (RFB)AT&T / RealVNCКроссплатформенный, передаёт растр
SPICERed HatОптимизирован для виртуальных машин
SSH (X11-форвардинг)OpenSSHПеренаправление отдельных окон
TeamViewer / AnyDeskКоммерческиеРаботают через промежуточный сервер

Применение

RDP широко используется в корпоративной среде для администрирования серверов без физического доступа к ним. Технология Remote Desktop Services (RDS) на базе RDP позволяет разворачивать виртуальные рабочие столы (VDI) и публиковать отдельные приложения (RemoteApp). Облачные провайдеры (Microsoft Azure, Amazon AWS, виртуальные дата-центры) предоставляют доступ к виртуальным машинам преимущественно через RDP (для Windows) или SSH (для Linux).

Интересные факты

  • Клиент RDP встроен во все настольные версии Windows начиная с Windows XP.
  • Протокол поддерживает до 64 000 виртуальных каналов в одной сессии.
  • В Windows Server 2012 R2 появилась возможность перенаправления виртуальных дисков с клиентской стороны без предварительного подключения.

Источники

  • Официальная документация Microsoft по Remote Desktop Protocol
  • RFC 6143, RFC 4514 (спецификации T.120)
  • Документация проекта FreeRDP
  • Отчёты исследовательских лабораторий по безопасности RDP-трафика
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru