rdp что это значит
Протокол Remote Desktop. Архитектура и возможности
Данная статья открывает цикл статей, посвященных устройству и безопасности протокола RDP. В первой статье этого цикла анализируется устройство, использование и основные технологии, заложенные в данный протокол.
Автор: Сергей Рублев
Эксперт по информационной безопасности «Positive Technologies»
Данная статья открывает цикл статей, посвященных устройству и безопасности протокола RDP. В первой статье этого цикла анализируется устройство, использование и основные технологии, заложенные в данный протокол.
В следующих статьях будут подробно рассмотрены следующие вопросы:
История появления RDP
Протокол Remote Desktop создан компанией Microsoft для обеспечения удаленного доступа к серверам и рабочим станциям Windows. Протокол RDP рассчитан на использование ресурсов высокопроизводительного сервера терминалов многими менее производительными рабочими станциями. Впервые сервер терминалов (версия 4.0) появился в 1998 году в составе Windows NT 4.0 Terminal Server, на момент написания статьи (январь 2009 года) последней версией терминального сервера является версия 6.1, включенная в дистрибутивы Windows 2008 Server и Windows Vista SP1. В настоящее время RDP является основным протоколом удаленного доступа для систем семейства Windows, а клиентские приложения существуют как для OC от Microsoft, так и для Linux, FreeBSD, MAC OS X и др.
Говоря об истории появления RDP, нельзя не упомянуть компанию Citrix. Citrix Systems в 1990-х годах специализировалась на многопользовательских системах и технологиях удаленного доступа. После приобретения лицензии на исходные коды Windows NT 3.51 в 1995 году эта компания выпустила многопользовательскую версию Windows NT, известную как WinFrame. В 1997 году Citrix Systems и Microsoft заключили договор, по которому многопользовательская среда Windows NT 4.0 базировалась на технологических разработках Citrix. В свою очередь Citrix Systems отказалась от распространения полноценной операционной системы и получала право на разработку и реализацию расширений для продуктов Microsoft. Данные расширения изначально назывались MetaFrame. Права на ICA (Independent Computing Architecture), прикладной протокол взаимодействия тонких клиентов с сервером приложений Citrix, остались за Citrix Systems, а протокол Microsoft RDP строился на базе ITU T.120.
В настоящее время основная конкурентная борьба между Citrix и Microsoft разгорелась в области серверов приложений для малого и среднего бизнеса. Традиционно решения на базе Terminal Services выигрывают в системах с не очень большим количеством однотипных серверов и схожих конфигураций, в то время как Citrix Systems прочно обосновалась на рынке сложных и высокопроизводительных систем. Конкуренция подогревается выпуском облегченных решений для небольших систем компанией Citrix и постоянным расширением функционала Terminal Services со стороны Microsoft. [11]
Рассмотрим преимущества этих решений.
Сильные стороны Terminal Services:
Сильные стороны решений Citrix:
Устройство сети, использующей Terminal Services
Microsoft предполагает два режима использования протокола RDP:
RDP в режиме администрирования
RDP в режиме доступа к серверу терминалов
Данный режим доступен только в серверных версиях Windows. Количество удаленных подключений в данном случае не лимитируется, но требуется настройка сервера лицензий (License server) и его последующая активация. Сервер лицензий может быть установлен как на сервер терминалов, так и на отдельный сетевой узел. Возможность удаленного доступа к серверу терминалов открывается только после установки соответствующих лицензий на License server.
При использовании кластера терминальных серверов и балансировки нагрузки требуется установка специализированного сервера подключений (Session Directory Service). Данный сервер индексирует пользовательские сессии, что позволяет выполнять вход, а также повторный вход на терминальные серверы, работающие в распределенной среде. [5]
Принцип работы RDP
RDP поддерживает несколько виртуальных каналов в рамках одного соединения, которые могут использоваться для обеспечения дополнительного функционала:
Характеристики виртуальных каналов согласуются на этапе установки соединения.
Обеспечение безопасности при использовании RDP
Спецификация протокола RDP предусматривает использование одного из двух подходов к обеспечению безопасности:
Standard RDP Security
При данном подходе аутентификация, шифрование и обеспечение целостности реализуется средствами, заложенными в RDP- протокол. [1]
Аутентификация
Аутентификация сервера выполняется следующим образом:
Аутентификация клиента проводится при вводе имени пользователя и пароля.
Шифрование
В качестве алгоритма шифрования выбран потоковый шифр RC4. В зависимости от версии операционной системы доступны различные длины ключа от 40 до 168 бит.
Максимальная длина ключа для операционных систем Winodws:
При установке соединения после согласования длины генерируется два различных ключа: для шифрования данных от клиента и от сервера.
Целостность
Целостность сообщения достигается применением алгоритма генерации MAC (Message Authentication Code) на базе алгоритмов MD5 и SHA1.
Начиная с Windows 2003 Server, для обеспечения совместимости с требованиями стандарта FIPS (Federal Information Processing Standard) 140-1 возможно использование алгоритма 3DES для шифрования сообщений и алгоритма генерации MAC, использующего только SHA1, для обеспечения целостности. [15]
Enhanced RDP Security
В данном подходе используются внешние модули обеспечения безопасности:
При использовании TLS сертификат сервера можно генерировать средствами Terminal Sercives или выбирать существующий сертификат из хранилища Windows. [13][16]
Протокол CredSSP представляет собой совмещение функционала TLS, Kerberos и NTLM.
Рассмотрим основные достоинства протокола CredSSP:
Возможности CredSSP можно использовать только в операционных системах Windows Vista и Windows 2008 Server. Данный протокол включается флагом Use Network Level Authentication в настройках сервера терминалов (Windows 2008 Server) или в настройках удаленного доступа (Windows Vista). [14]
Схема лицензирования Terminal Services
При использовании RDP для доступа к приложениям в режиме тонкого клиента требуется настройка специализированного сервера лицензий.
Постоянные клиентские лицензии могут быть установлены на сервер только после прохождения процедуры активации, до ее прохождения возможна выдача временных лицензий, лимитированных по сроку действия. После прохождения активации серверу лицензий предоставляется цифровой сертификат, подтверждающий его принадлежность и подлинность. Используя этот сертификат, сервер лицензий может осуществлять последующие транзакции с базой данных Microsoft Clearinghouse и принимать постоянные клиентские лицензии для сервера терминалов. [6]
Виды клиентских лицензий:
Временная лицензия
Данный вид лицензии выдается клиенту при первом подключении к серверу терминалов, срок действия лицензии 90 дней. При успешном входе клиент продолжает работать с временной лицензией, а при следующем подключении сервер терминалов пробует заменить временную лицензию постоянной, при ее наличии в хранилище.
Лицензия «на устройство»
Эта лицензия выдается для каждого физического устройства, подключающегося к серверу приложения. Срок действия лицензии устанавливается случайным образом в промежутке от 52 до 89 дней. За 7 дней до окончания срока действия сервер терминалов пытается обновить лицензию с сервера лицензий при каждом новом подключении клиента.
Лицензия «на пользователя»
Лицензирование «на пользователя» обеспечивает дополнительную гибкость, позволяя пользователям подключаться с различных устройств. В текущей реализации Terminal Services нет средств контроля использования пользовательские лицензий, т.е. количество доступных лицензий на сервере лицензий не уменьшается при подключении новых пользователей. Использование недостаточного количества лицензий для клиентских подключений нарушает лицензионное соглашение с компанией Microsoft. Чтобы одновременно использовать на одном сервере терминалов клиентские лицензии для устройств и для пользователей, сервер должен быть настроен для работы в режиме лицензирования «на пользователя».
Лицензия для внешних пользователей
Это специальный вид лицензии, предназначенный для подключения внешних пользователей к корпоративному серверу терминалов. Данная лицензия не налагает ограничений на количество подключений, однако, согласно пользовательскому соглашению (EULA), сервер терминалов для внешних подключений должен быть выделенным, что не допускает его использования для обслуживания сессий от корпоративных пользователей. Из-за высокой цены данный вид лицензии не получил широкого распространения.
Для сервера лицензий может быть установлена одна из двух ролей:
Перспективные технологии Terminal Services
Решения для серверов приложений активно продвигаются компанией Microsoft, расширяется функционал, вводятся дополнительные модули. Наибольшее развитие получили технологии, упрощающие установку приложений и компоненты, отвечающие за работу сервера терминалов в глобальных сетях. [5]
В Terminal Services для Windows 2008 Server введены следующие возможности:
Литература
Об авторе:
Сергей Рублев закончил МГТУ им. Баумана. Эксперт в области криптографии и протоколов защищенного обмена данными. В компании Positive Technologies специализируется на анилизе уязвимостей в сетевых службах и разработке расширений к сканерам XSpider и MaxPatrol 8.
Что такое RDP и как подключиться к серверу
RDP — это протокол для подключения к удаленному рабочему столу. Для его настройки не требуются специальные знания. Если вы пользуетесь Windows, то у вас уже есть все необходимые инструменты, чтобы установить соединение с удаленной машиной. В этой статье вы узнаете, как настроить подключение, на каких портах работает сервис ( rdp ports ) и какие есть особенности у протокола RDP.
Что такое RDP
Remote Desktop Protocol — протокол удаленного рабочего стола от Microsoft. С его помощью вы можете установить соединение с удаленным компьютером и управлять его операционной системой, используя графический интерфейс.
RDP можно использовать не только на Windows. Для macOS, Android и iOS есть официальное приложение, на Ubuntu и Debian можно установить сторонние клиенты.
Режим подключений
Есть два режима, в которых применяется протокол:
В режиме администрирования RDP есть во всех версиях Windows. На серверных версиях доступны два подключения и один локальный вход, на клиентских версиях — один вход.
Для подключения к серверу протокол можно использовать только в серверных версиях Windows. На количество подключений лимита нет. Но для работы нужен активированный сервер лицензий.
Принцип работы
RDPl основан на протоколе TCP. Порядок его работы в общих чертах выглядит так:
Приоритетный способ — передача вывода графическими примитивами: прямоугольниками, линиями, текстами, эллипсами и так далее. Это позволяет экономить трафик. Если договориться о параметрах передачи примитивов не удалось, то клиенту передается изображение графического экрана.
RDP-клиент обрабатывает команды от сервера терминалов и использует собственную графическую подсистему для для вывода изображения. Пользовательский ввод передается благодаря скан-кодам. Сигналы нажатий и отпусканий кнопок передаются отдельно с помощью специального флага.
Remote Desktop Protocol поддерживает несколько виртуальных каналов внутри одной сессии. Это дает доступ к дополнительным возможностям для управления. Можно использовать принтер или порты, перенаправлять файловую систему, работать с единым буфером, использовать подсистему аудио для передачи звука.
Безопасность RDP
RDP такой же безопасный, как и другие протоколы удаленного доступа. Но для сохранения конфиденциальности его надо правильно настроить.
Учитывая эти уязвимости и другие возможные направления атак, посмотрим, как повысить уровень безопасности.
Шифрование
Эта настройка просто включает шифрование. Теперь нужно выбрать, какой алгоритм будет применяться.
Напоследок нужно установить такие же высокие требования безопасности ко всем клиентам, которые будут подключаться к удаленному серверу.
Смена порта
По умолчанию в RDP ports установлен порт 3389. Оставлять его небезопасно. Изменить порт можно через редактор реестра.
Теперь для подключения к этому компьютеру нужно будет указывать другой порт, который вы указали в реестре, а не 3389.
Кроме того, не следует открывать доступ к указанному порту за пределами своей сети. Используйте брандмауэр для ограничения. Если нужно открыть порт за пределами сети, используйте VPN в качестве альтернативы.
Изменение имени администратора
Создайте уникальное имя для учетной записи, с помощью которой вы будете подключаться к удаленному рабочему столу.
Чтобы переименовать учетную запись:
Используйте для удаленного подключения имя учетной записи, которую вы переименовали.
Блокировка подключений учетных записей с пустыми паролями
Для усиления безопасности можно также запретить подключаться учетным записям с пустым паролем.
Аутентификация на уровне сети
По умолчанию можно подключаться через RDP без ввода логина и пароля. Пользователь видит экран удаленного десктопа, где ему предлагают залогиниться. Это тоже небезопасно, так как открывает возможности для DDoS-атак. Исправим недостаток:
Теперь никто не будет видеть экран удаленного рабочего стола, пока не введет логин и пароль.
Есть ограничение на количество одновременных сессий. В одно время работать может только один удаленный пользователь. При попытке установить второе соединение появится сообщение о том, что необходимо завершить первый сеанс.
Администратор первого сеанса может принять решение: завершить свой сеанс и пустить нового пользователя или отказать в доступе и продолжить пользоваться подключением.
Система может отвергать подключения с учетными данными пользователя, если у него нет прав администратора. Чтобы исправить эту ошибку, нужно либо дать пользователю права администратора, либо подключаться с учетной записью, у которой уже есть права администратора.
Подключение на Windows
На всех версиях Windows доступны для использования клиент и сервер RDP. Для запуска клиента дополнительная настройка не требуется. На сервере протокол может быть отключен, а доступ к порту ограничен или заблокирован.
Запуск протокола на сервере
Через окно «Выполнить»:
Можно указать конкретных пользователей, которым доступ разрешен. Чтобы сделать это, нажмите «Выбрать пользователей». Пользователи, которые входят в группу «Администраторы», могут подключаться по умолчанию. Вы можете добавить других пользователей. Укажите их имена и нажмите на кнопку «Проверить имена». После успешной проверки нажмите «ОК» для добавления указанных пользователей.
Через графический интерфейс (на примере Windows 10):
После включения удаленного рабочего стола появятся дополнительные настройки. Вы можете оставлять компьютер в режиме бодрствования для подключения, когда он подключен к электросети. Также можно сделать так, чтобы компьютер был доступен для обнаружения в частных сетях.
Ссылка «Дополнительные параметры» ведет к настройкам безопасности, про которые мы говорили выше. Здесь можно включить аутентификацию на уровне сети и посмотреть, какой порт используется для подключения.
Настройка клиента RDP на Windows
В запущенном окне пропишите IP-адрес сервера с настроенным RDP. Если у хоста настроено несколько IP-адресов, используйте для соединения любой. Чтобы установить связь, нажмите «Подключить». Укажите имя учетной записи и пароль пользователя.
При попытке установить соединение может появиться уведомление о недоверенном сертификате. Поставьте галочку возле опции «Больше не выводить…» и нажмите на кнопку «Да». После успешного подключения на экране появится окно, внутри которого будет удаленный рабочий стол.
Клиент mstsc также имеет дополнительные параметры. С их помощью можно, например, использовать общие принтер, диски, буфер обмена. Это удобно для обмена информацией. Допустим, вы можете копировать фрагмент текста на удаленном компьютере, а затем вставлять его в документ на локальной машине. Эти настройки выставляются до подключения на вкладке «Локальные ресурсы».
На других вкладках тоже есть полезные параметры. На пример, в разделе «Экран» вы можете настроить размер удаленного рабочего стола. Если нужен полноэкранный режиме, передвиньте ползунок в крайнюю правую позицию.
Здесь также можно включить использование всех мониторов для удаленного сеанса, указать глубину цвета и включить/выключить отображение панели управления в полноэкранном режиме. С ее помощью можно:
Этих возможностей достаточно для базового управления подключением.
Во вкладке «Взаимодействие» доступны настройки для оптимизации соединения. По умолчанию качество соединения определяется автоматически. Но вы можете его повысить или понизить и гибко настроить используемые функции вроде фона рабочего стола и сглаживания шрифтов. Для оптимизации работы также можно включить постоянное кэширование точечных рисунков и автоматическое восстановление подключения при разрыве.
Во вкладке «Дополнительно» скрываются настройки безопасности. Здесь можно включить/выключить предупреждение о том, что подлинность удаленного сервера не удается подтвердить. Можно подключаться без предупреждения или не соединять при обнаружении проблем.
Подключение через графический интерфейс
Если вы предпочитаете все делать через консоль, то используйте утилиту mstsc без графического интерфейса. Для гибкой настройки соединения можно использовать опции, описанные в таблице ниже.
Опция | Результат |
“файл подключения” | Имя RDP-файла, нужно для установки соединения |
/v: | Адрес удаленной машины, к которой подключаемся |
/g: | Сервер шлюза удаленных десктопов. Опция используется только в том случае, если удаленный компьютер конечной точки указан с использованием /v. |
/admin | Подключение к сеансу администрирования. |
/f | Запуск в полноэкранном режиме. |
/w: | Установка ширины экрана удаленного рабочего стола. |
/h: | Установка высоты экрана удаленного рабочего стола. |
/public | Запуск удаленного десктопа в публичном режиме. |
/span | Сравнивает ширину и высоту удаленного десктопа с параметрами локального виртуального рабочего стола. При необходимости развертывает изображения на несколько мониторов, если они размещены так, что образуют прямоугольник. |
/multimon | Располагает элементы на рабочем столе так, чтобы они соответствовали текущей конфигурации на стороне клиента. |
/edit | Открывает RDP-файл для изменения. |
/restrictedAdmin | Подключает в режиме ограниченного администрирования*. |
/remoteGuard | Подключает с помощью Remote Guard**. |
/prompt | Запрос данных пользователя при подключении к удаленной машине. |
/shadow: | Определение сеанса, которому требуется теневое управление. |
/control | Управление сеансом при теневом управлении. |
/noConsentPrompt | Теневое управление, не требуется согласие пользователя. |
* Ограниченное администрирование — в этом режиме учетные данные не отправляются на удаленную машину. Благодаря этому повышается безопасность даже при подключение к компьютеру, который был скомпрометирован.В то же время такие подключения могут не проходить проверку подлинности со стороны других компьютеров, что может влиять на функциональность.
** Remote Guard — инструмент предотвращает отправку учетных данных на удаленный компьютер. В отличие от ограниченного администрирования, здесь поддерживается соединение с удаленного компьютера (все запросы перенаправляются обратно на устройство).
Подключение на macОS
Для macOS Microsoft выпустила официальный клиент для подключения к серверу по RDP. Он называется Microsoft Remote Desktop и доступен для скачивания в App Store.
Подключение настраивается так же просто, как на Windows.
После завершения настройки новое подключение сохранится в списке. Чтобы запустить его, кликните дважды левой кнопкой. После запуска появится уведомление о недоверенном сертификате. Это не страшно. Нажмите на кнопку «Показать сертификат» и отметьте опцию «Всегда доверять … при подключении к …».
После принятия самоподписанного сертификата вы увидите в отдельном окне рабочий стол удаленного компьютера.
Подключение на Ubuntu
В отличие от Windows и macOS на Ubuntu нет официального клиента для подключения к серверу по RDP. Однако это не проблема. Зато разработаны неофициальные приложения. Многие хостеры в своих базах знаний советуют использовать для подключения программу Remmina.
Для установки Remmina запустите терминал и выполните три команды.
Установите пакет 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, нужно перезапустить программу. Для этого убейте процесс:
sudo killall remmina
Если эта команда вернет ошибку с сообщением о том, что ничего похожего в списке запущенных процессов нет, то это тоже хорошие новости — значит можно запускать программу.
Все соединения сохраняются в одном списке. Выберите нужное подключение. При первой попытке установить соединение появится сообщение о недоверенном сертификате. Чтобы использовать его, нажмите «ОК». После успешного соединения вы увидите рабочий стол удаленного компьютера.
Альтернативные клиенты на Ubuntu
Если приложение Remmina работает нестабильно, попробуйте другие клиенты для подключения по RDP:
sudo apt install freerdp2-x11 freerdp2-shadow-x11
Для подключения к удаленному компьютеру используйте команду
xfreerdp /f /u:ИМЯ-ПОЛЬЗОВАТЕЛЯ /p:ПАРОЛЬ /v:ХОСТ[:ПОРТ]
Клиент rdesktop устанавливается командой:
sudo apt install rdesktop
Для подключения к удаленному рабочему столу используйте команду
При первом подключении появится предупреждение о недоверенном сертификате. Введите с клавиатуры yes, чтобы принять его.
Для работы с rdesktop на сервере должны быть настроена аутентификация на уровне сети. Иначе при подключении будет вылетать ошибка. О настройках аутентификации на уровне сети мы говорили в разделе «Безопасность».
Подключение на Debian
На Debian для соединения с сервером через RDP тоже можно взять приложение Remmina. Чтобы его установить:
Все сохраненные подключения хранятся в одном списке. Найдите нужное и нажмите на него для старта. На экране появится предупреждение о недоверенном сертификате. Щелкните «Ок» или «Принять». После удачного соединения вы попадете на рабочий стол удаленного хоста.
На Debian тоже можно использовать клиенты freerdp и rdesktop вместо Remmina. Устанавливаются они теми же командами, что и на Ubuntu. Процесс настройки соединений также не отличается.
Подключение со смартфона
Для соединения с удаленными хостами по RDP Microsoft выпустила приложения для двух основных мобильных ОС:
Подключение в этих приложениях настраиваются по одному принципу. Сначала вам нужно добавить новое соединение:
Итоги
RDP — удобный инструмент для создания удаленного подключения. Он позволяет быстро и гибко настроить соединение в локальной сети или через интернет. Невзирая на то, что протокол разработан корпорацией Microsoft, использовать его можно и на других платформах: macOS, Ubuntu, Debian, Android, iOS.
Чтобы еще раз повторить, как настраивается подключение в среде Windows, посмотрите это видео. Оно на английском, но каждый шаг очень наглядно продемонстрирован:
А из этого видео вы узнаете, как настроить RDP на мобильном устройстве и управлять с него компьютером: