RDP (Remote Desktop Protocol) — проприетарный протокол прикладного уровня от Microsoft для удаленного управления компьютером: клиент передает нажатия клавиш и движения мыши, сервер присылает изображение рабочего стола. Протокол работает поверх стандартов ITU-T T.120 и появился в Windows NT 4.0 Terminal Server Edition в 1998 году. Дальше — как RDP устроен технически, чем он отличается от RDS, VDI и клиентских приложений и как настроить подключение так, чтобы не открыть сервер для атак.
Содержание
Как работает RDP
RDP — это именно протокол передачи данных, а не программа и не служба. По умолчанию сервер слушает TCP-порт 3389; начиная с Windows 8 и Windows Server 2012 добавлена опциональная передача части графики по UDP на том же номере порта для снижения задержки на нестабильных каналах. Порт можно сменить в реестре, но это не замена реальной защите — смена порта прячет сервис от массового автосканирования, а не от целевой атаки.
Соединение шифруется TLS с версии протокола RDP 6.0 (Windows Vista/Server 2008). До запуска графической сессии выполняется NLA (Network Level Authentication) — проверка учетных данных на уровне сети, еще до загрузки рабочего стола. NLA включена по умолчанию в Windows 7 SP1 и новее и снижает нагрузку от анонимных попыток подключения, отсекая их до старта сессии.
Клиентское устройство работает в режиме тонкого клиента: почти все вычисления идут на сервере, а у клиента — только отрисовка картинки и передача ввода. Поэтому по RDP можно администрировать мощный сервер даже со слабого ноутбука.
RDP, RDS, VDI и клиенты — в чем разница
Эти термины часто путают, хотя они описывают разные уровни системы:
| Термин | Что это | Уровень |
|---|---|---|
| RDP | Протокол передачи экрана и ввода | Сетевой протокол |
| RDS (Remote Desktop Services) | Роль Windows Server для многопользовательских терминальных сессий поверх RDP (до Server 2008 R2 называлась Terminal Services) | Серверная служба |
| VDI (Virtual Desktop Infrastructure) | Архитектура, где каждому пользователю выделяется отдельная виртуальная машина, доступ к которой тоже идет по RDP | Инфраструктура виртуализации |
| mstsc, xfreerdp, Microsoft Remote Desktop | Клиентские приложения, которые устанавливают RDP-соединение | Клиентское ПО |
RDS — несколько сессий на одной ОС сервера: экономично, но ресурсы общие, софт с правами администратора системы не поставить. VDI — отдельная ВМ на пользователя: полная изоляция, но выше требования к ресурсам.
Для нескольких одновременных пользователей на RDS нужна отдельная лицензия RDS CAL; для двух административных сессий в Server она не требуется. Точное число CAL и условия зависят от редакции Server и модели лицензирования Microsoft.
Какие клиенты нужны для подключения
Сервер RDP (прием входящих подключений) есть в Windows Pro, Enterprise и во всех редакциях Windows Server; в Windows Home сервера RDP нет, только клиент. Клиентское ПО есть практически под любую платформу:
- Windows — встроенный
mstsc.exe, либо современное приложение Remote Desktop из Microsoft Store. - Linux —
xfreerdp(свободная реализация протокола, входит в пакет FreeRDP) или графические обертки поверх него. - macOS, iOS, Android — официальное приложение Microsoft Remote Desktop.
В Unix-мире для удаленного рабочего стола чаще встречается VNC на протоколе RFB (Remote Framebuffer) — другой протокол, несовместимый с RDP напрямую. Если нужно принимать именно RDP-подключения на Linux-сервере, поднимают XRDP — он реализует протокол RDP поверх системы Linux.
Как включить RDP на сервере
На Windows Server или Windows Pro/Enterprise минимальная настройка — это включить прием входящих RDP-подключений и разрешить порт в брандмауэре. Через PowerShell (с правами администратора):
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name "fDenyTSConnections" -Value 0
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Результат: fDenyTSConnections меняется на 0 (разрешить подключения), правила брандмауэра группы «Remote Desktop» переходят в Enabled. Сервер примет RDP-подключение с любого адреса на порту 3389 — поэтому следующий шаг, ограничение доступа, обязателен.
Для многопользовательской RDS-сессии в Server Manager дополнительно добавляют роль Remote Desktop Session Host через мастер «Добавить роли и компоненты» и перезагружают сервер; для одиночного административного доступа эта роль не нужна.
Как подключиться клиентом
С Windows: Win + R, ввести mstsc, указать IP или имя сервера, ввести логин и пароль учетной записи, которой разрешен удаленный доступ (группа «Пользователи удаленного рабочего стола» в локальных группах сервера).
С Linux через FreeRDP пароль лучше не указывать прямо в команде — он попадет в историю шелла и список процессов. Клиент сам запросит пароль, если его не передать флагом:
xfreerdp /v:203.0.113.10:3389 /u:Administrator /sec:tls
Результат: откроется окно с приглашением ввести пароль, после успешной проверки — окно с рабочим столом сервера 203.0.113.10. Флаг /sec:tls явно требует TLS-защиту канала вместо более старого согласования безопасности.
Безопасность: почему нельзя просто открыть порт 3389 в интернет
Порт 3389, открытый напрямую в интернет, — частая причина компрометации серверов Windows: его массово сканируют боты и перебирают пароли. Показательный пример — уязвимость BlueKeep (CVE-2019-0708, 2019 год): Microsoft выпустила патчи даже для снятых с поддержки Windows XP и Server 2003, настолько высок был риск червя через открытый RDP без участия пользователя. Обновленные системы от нее защищены, но пример показывает цену открытого порта.
Практический порядок защиты RDP:
- Не выставлять порт 3389 напрямую в интернет. Подключаться только через VPN или через RD Gateway (RDG) — службу, которая туннелирует RDP поверх HTTPS (порт 443) и не требует держать 3389 открытым снаружи вовсе.
- Держать NLA включенной — она отсекает часть анонимных попыток подбора до открытия сессии (проверить: свойства системы — Удаленный доступ — «Разрешить подключения только с проверкой подлинности на уровне сети»).
- Использовать длинные уникальные пароли и политику блокировки учетной записи после нескольких неудачных попыток входа — это защита именно от онлайн-перебора, отдельная от шифрования канала.
- Ограничивать доступ по IP-адресу в брандмауэре, если известен пул адресов, откуда подключаются легитимные пользователи (офис, VPN-шлюз).
- Включить двухфакторную аутентификацию для RDP-доступа — штатно через RD Gateway с NPS-расширением Azure MFA, либо через сторонние решения для VPN, за которым скрыт RDP.
Порядок для пункта 4 важен, чтобы не заблокировать себе доступ: сначала создается точечное разрешающее правило для доверенного адреса, и только потом отключается широкое правило по умолчанию, с проверкой из второй сессии перед закрытием первой:
New-NetFirewallRule -DisplayName "RDP-office-only" -Direction Inbound -Protocol TCP -LocalPort 3389 -RemoteAddress 203.0.113.0/24 -Action Allow
Set-NetFirewallRule -DisplayGroup "Remote Desktop" -Enabled False
Результат: по RDP смогут подключаться только адреса из подсети 203.0.113.0/24, остальным брандмауэр откажет. Перед второй командой стоит открыть тестовое подключение с доверенного адреса, иначе при ошибке в подсети можно потерять доступ к серверу.
Если подключение не проходит
- Ошибка сети или таймаут — чаще всего порт 3389 закрыт брандмауэром сервера или провайдера; проверить правило
Remote Desktopи доступность порта из сети клиента. - Ошибка учетных данных при верном пароле — учетная запись не входит в группу «Пользователи удаленного рабочего стола»; добавить ее через «Управление компьютером» — «Локальные пользователи и группы».
- Черный экран после входа — обычно проблема видеодрайвера или профиля пользователя на сервере, а не самого соединения; помогает переподключение с явным размером окна.
- Разрыв сессии на нестабильном канале — в настройках клиента стоит принудительно отключить UDP-транспорт, чтобы RDP шел только через TCP.
Выводы
- RDP — это протокол передачи экрана и ввода, а не программа; сервер и клиент — отдельные компоненты поверх него.
- RDS — многопользовательские терминальные сессии на одной ОС, VDI — отдельная виртуальная машина на пользователя; выбор зависит от нужного уровня изоляции и ресурсов.
- Сервер RDP есть в Windows Pro/Enterprise/Server, в Windows Home — только клиент.
- Открытый в интернет порт 3389 — основной источник компрометации; правильная защита — VPN или RD Gateway, NLA, сильные пароли, ограничение по IP, 2FA.
- Смена номера порта снижает шум от автосканеров, но не заменяет перечисленные выше меры защиты.
Где применяется / связь с практикой
Освойте тему на практике
Настройка и защита удаленного доступа по RDP — стандартная задача администратора Windows: терминальные серверы, администрирование без физического доступа, удаленные рабочие места сотрудников. Разобраться в администрировании Windows Server, RDS/VDI и политиках безопасности домена подробно можно на курсе Windows Professional в Otus. Формат обучения и вопросы преподавателям — на открытых уроках Otus.
Тема тесно связана с сетевой безопасностью, VPN и администрированием Windows Server.
FAQ
Можно ли подключаться по RDP с пустым паролем учетной записи?
Нет, Windows по умолчанию блокирует вход по RDP для учетных записей с пустым паролем.
Есть ли RDP-сервер в Windows Home?
Нет, прием входящих подключений доступен только в Pro, Enterprise и Windows Server; в Home есть только клиент.
Актуальна ли уязвимость BlueKeep сейчас?
Нет, патчи вышли еще в 2019 году, включая снятые с поддержки системы; на обновленных серверах риска от нее нет, но общие правила защиты открытого RDP это не отменяет.



