Безопасное подключение по rdp. RDP клиент Windows. Выполняем удаленное подключение к компьютеру! Для чего нужен протокол RDP

Бытует мнение, что подключение по удаленному рабочему столу Windows (RDP) очень небезопасно в сравнении с аналогами (VNC, TeamViewer, пр). Как следствие, открывать доступ из вне к любому компьютеру или серверу локальной сети очень опрометчивое решение - обязательно взломают. Второй аргумент против RDP как правило звучит так - «жрет трафик, для медленного интернета не вариант». Чаще всего эти доводы ничем не аргументированы.

Протокол RDP существует не первый день, его дебют состоялся еще на Windows NT 4.0 более 20 лет назад и с тех пор утекло много воды. На данный момент RDP не менее безопасен, чем любое другое решение для удаленного доступа. Что касается требуемой полосы пропускания, так в этом плане есть куча настроек, с помощью которых можно добиться отличной отзывчивости и экономии полосы пропускания.

Короче говоря, если знать что, как и где настроить, то RDP будет очень хорошим средством удаленного доступа. Вопрос в другом, а много ли админов пытались вникнуть в настройки, которые спрятаны чуть глубже, чем на поверхности?

Сейчас расскажу как защитить RDP и настроить его на оптимальную производительность.

Во-первых, версий RDP протокола существует много. Все дальнейшее описание будет применимо к RDP 7.0 и выше. Это значит, что у вас как минимум Windows Vista SP1. Для любителей ретро есть специальный апдейт для Windows XP SP3 KB 969084 который добавляет RDP 7.0 в эту операционку.

Настройка №1 - шифрование

На компьютере, к которому вы собираетесь подключаться открываем gpedit.msc Идем в Конфигурация компьютера - Административные шаблоны - Компоненты Windows - Службы удаленных рабочих столов - Безопасность

Устанавливаем параметр «Требовать использования специального уровня безопасности для удаленных подключений по методу RDP» в значение «Включено» и Уровень безопасности в значение «SSL TLS 1.0»

Этой настройкой мы включили шифрование как таковое. Теперь нам нужно сделать так, чтобы применялись только стойкие алгоритмы шифрования, а не какой-нибудь DES 56-bit или RC2.

Поэтому в этой же ветке открываем параметр «Установить уровень шифрования для клиентских подключений». Включаем и выбираем «Высокий» уровень. Это нам даст 128-битное шифрование.

Но и это еще не предел. Самый максимальный уровень шифрования обеспечивается стандартом FIPS 140-1. При этом все RC2/RC4 автоматически идут лесом.

Чтобы включить использование FIPS 140-1, нужно в этой же оснастке пойти в Конфигурация компьютера - Конфигурация Windows - Параметры безопасности - Локальные политики - Параметры безопасности.

Ищем параметр «Системная криптография: использовать FIPS-совместимые алгоритмы для шифрования, хэширования и подписывания» и включаем его.

И в завершении в обязательном порядке включаем параметр «Требовать безопасное RPC-подключение» по пути Конфигурация компьютера - Административные шаблоны - Компоненты Windows - Службы удаленных рабочих столов - Безопасность.

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

Теперь с шифрованием полный порядок, можно двигаться дальше.

Настройка №2 - смена порта

По умолчанию протокол RDP висит на порту TCP 3389. Для разнообразия его можно изменить, для этого в реестре нужно изменить ключик PortNumber по адресу

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

Настройка №3 - сетевая аутентификация (NLA)

По умолчанию, вы можете подключиться по RDP не вводя логин и пароль и увидеть Welcome-скрин удаленного рабочего стола, где уже от вас попросят залогиниться. Это как раз совсем не безопасно в том плане, что такой удаленный комп можно легко заDDoSить.

Поэтому, всё в той же ветке включаем параметр «Требовать проверку подлинности пользователя для удаленных подключений путем проверки подлинности на уровне сети»

Настройка №4 - что еще проверить

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

Во-вторых, не забудьте проверить список пользователей, которые могут подключаться по RDP

Настройка №5 - оптимизация скорости

Идем в раздел Конфигурация компьютера - Административные шаблоны - Компоненты Windows - Службы удаленных рабочих столов - Среда удаленных сеансов.

Здесь можно и нужно отрегулировать несколько параметров:

  • Наибольшая глубина цвета - можно ограничиться 16 битами. Это позволит сэкономить трафик больше чем в 2 раза по сравнению с 32х битной глубиной.
  • Принудительная отмена фонового рисунка удаленного стола - для работы он не нужен.
  • Задание алгоритма сжатия RDP - лучше установить значение Оптимизация использования полосы пропускания. В этом случае RDP будет жрать памяти чуть больше, но сжимать будет эффективнее.
  • Оптимизировать визуальные эффекты для сеансов служб удаленных рабочих столов - ставим значение «Текст». Для работы то что нужно.

В остальном при подключении к удаленному компу со стороны клиента дополнительно можно отключить:

  • Сглаживание шрифтов. Это сильно уменьшит время отклика. (Если у вас полноценный терминальный сервер, то этот параметр так же можно задать на стороне сервера)
  • Композицию рабочего стола - отвечает за Aero и пр
  • Отображение окна при перетаскивании
  • Визуальные эффекты
  • Стили оформления - если хочется хардкора

Остальные параметры типа фона рабочего стола, глубины цвета мы уже предопределили на стороне сервера.

Дополнительно на стороне клиента можно увеличить размер кэша изображений, делается это в реестре. По адресу HKEY_CURRENT_USER\SOFTWARE\Microsoft\Terminal Server Client\ нужно создать два ключа типа DWORD 32 BitmapPersistCacheSize и BitmapCacheSize

  • BitmapPersistCacheSize можно установить равным 10000 (10 Мб) По умолчанию этот параметр берет значение 10, что соответствует 10 Кб.
  • BitmapCacheSize так же можно установить равным 10000 (10 Мб). Вы вряд ли заметите, если RDP-подключение съест лишних 10 Мб от вашей оперативной памяти

Про проброс всяких принтеров и пр говорить ничего не буду. Кому что нужно, тот то и пробрасывает.

На этом основная часть настройки заканчивается. В следующих обзорах расскажу, как можно еще улучшить и обезопасить RDP. Используйте RDP правильно, всем стабильного коннекта! Как сделать RDP терминал сервер на любой версии Windows смотрите .

Служба Remote Desktop Services (RDS) в Windows Server 2008 R2 это не просто ребрендинг своего предшественника – службы Terminal Services. Новые функции, часть из которых появилась еще в Windows Server 2008, такие как RemoteApp, RD Gateway и RD Virtualization Host, позволяют просто и удобно обеспечить развертывание и функционирование как отдельных пользовательских приложений, так и целые рабочих столов в RDS и VDI решениях, причем функционал и удобство нисколько не хуже, чем у решений Citrix или комплексов других вендоров.

А как же обстоят дела с безопасностью службы Remote Desktop Services? Microsoft существенно обновила и усилила безопасность данной службы. В данной статье мы поговорим о механизмах безопасности RDS, об обеспечении безопасности терминальных служб средствами групповых политик и о практических аспектах обеспечения безопасности решений RDS.

Что нового в R2

Если вам приходилось работать с версиями служб терминалов в Windows Server 2003 и Windows Server 2008, то вы, вероятно, помните, что в Windows 2008 появился ряд новых возможностей, таких как (подключение через браузер), (доступ к терминальным службам через Интернет), (публикация отдельных приложений по протоколу RDP) и служба (обеспечение балансировки нагрузки).

В Windows Server 2008 R2 появился следующие функции:

  • Remote Desktop Virtualization для решений VDI
  • Провайдер RDS для PowerShell (теперь администратор может управлять конфигурацией и управлением RDS из командной строки или с помощью скриптов)
  • Remote Desktop IP Virtualization, позволяющей назначать подключениям IP адреса, основываясь на параметрах сессии или запускаемого приложения
  • Новая версия протокола RDP и клиента Remote Desktop Connection (RDC) — v. 7.0
  • Управление ресурсами CPU для динамического выделения процессорных ресурсов на основе количества активных сессий
  • Совместимость с Windows Installer, позволяющая устанавливать программы с возможностью донастройки параметров приложения на стороне пользователя.
  • Поддержка на стороне клиента до 16 мониторов.

Кроме того, были доработаны функции работы с видео и аудио, и полноценная поддержка технологии Windows Aero (отметим, что Aero не поддерживается при мультимониторном режиме работы).

Естественно, вопросы безопасности службы RDS зависят от конкретного решения. Например, если публиковать рабочий стол для пользователей, подключающихся через Интернет или с помощью браузера, то вопрос безопасности встает намного более остро, чем при стандартном решении, когда клиенты подключаются с помощью клиента RDC по локальной сети LAN.

Network Level Authentication

Для обеспечения большей безопасности для всех подключений необходимо задействовать механизм аутентификации Network Level Authentication (NLA). NLA требует от пользователя авторизоваться на сервере RD Session Host еще до того, как сессия создана. Этот механизм позволяет защитить сервер от обработки лишних сессий, которые могут генерироваться злоумышленниками или программами-ботами. Для того, чтобы воспользоваться NLA, клиентская операционная система должна поддерживать протокол Credential Security Support Provider (CredSSP), что подразумевает ОС Windows XP SP3 () и выше, а также клиента RDP 6.0 или выше.

Настроить NLA можно на сервере RD Session, открыв консоль Administrative Tools -> Remote Desktop Services -> Desktop Session Host Configuration.

  1. Щелкните правой кнопкой мыши по подключению
  2. Выберите Properties
  3. Перейдите на вкладку General
  4. Отметьте опцию “Allow connections only from computers running Remote Desktop with Network Level Authentication”
  5. Нажмите OK.

Transport Layer Security (TLS)

В сессии RDS можно задействовать один из трех механизмов безопасности, позволяющих защитить соединение между клиентов и сервером RDS Session Host:

  • RDP security layer – используется встроенное шифрование протокола RDP, является менее безопасным.
  • Negotiate – шифрование TLS 1.0 (SSL) будет использоваться в случае поддержки клиентом, если клиент его не поддерживает, будет использоваться обычный уровень безопасности RDP.
  • SSL – шифрование TLS 1.будет использоваться для аутентификации сервера и шифрования передаваемых данных между клиентом и сервером. Это наиболее безопасный режим.

Для обеспечения высокого уровня безопасности необходимо использовать шифрование SSL/TLS. Для этих целей необходимо иметь цифровой сертификат, он может быть самоподписанным либо выданным центром сертификации CA (что предпочтительнее).

В дополнении к уровню безопасности можно выбрать уровень шифрования соединения. Доступны следующие виды шифрования:

  • Low – используется 56 битное шифрование данных, отправляемых с клиента на сервер. Данные, передаваемые с сервера на клиент не шифруются.
  • Client Compatible – данный вид шифрования используется по умолчанию. В этом случае шифруется весь трафик между клиентом и сервером с максимальной длиной ключа, которую поддерживает клиент.
  • High – все данные передаваемые между клиентом и сервером в обе стороны шифруются 128 битным ключом
  • FIPS Compliant – все данные передаваемые между клиентом и сервером в обе стороны шифруются методом FIPS 140-1.

Стоит отметить, что если используются уровни шифрования High или FIPS Compliant, то все клиенты, не поддерживающие данный вид шифрования, не смогут подключиться к серверу.

Настроить тип аутентификации сервера и уровень шифрования можно следующим образом:

  1. На сервере RD Session Host, откройте окно конфигурации Remote Desktop Session Host и перейдите в окно свойств.
  2. На вкладке General, в выпадающих меню выберите необходимый уровень безопасности и тип шифрования.
  3. Нажмите OK.

Групповые политики

Для настройки параметров RDS в Windows Server 2008 R2 есть ряд опций групповой политики. Все они расположены в разделе Computer Configuration\Policies\Administrative Templates\Windows Components\Remote Desktop Services (скриншот консоли Group Policy Management Console отображен на картинке).

Как вы видите здесь есть политики управления лицензированием, политики настройки клиента RDC и самого сервера RD Session Host. К политикам безопасности RD Session Host относятся:

  • Set Client Connection Encryption Level: политика используется для управления уровнем шифрования. Если ее активировать, все соединения должны использовать указанный уровень шифрования (по умолчанию – High).
  • Always Prompt for Password upon Connection : данная политика используется, если необходимо всегда спрашивать пароль пользователя при подключении к сессии RD, даже если пароль был введен в клиенте RDC. По умолчанию, пользователи могут автоматически входить в сессию, если они указали пароль в клиенте RDC.
  • Require Secure RPC Communication : — при включенной политики разрешены только аутентифицированные и шифрованные запросы от клиентов.
  • Require Use of Specific Security Layer for Remote (RDP ) Connections : при включенной политике, все соединения между клиентом и сервером терминалов должны использовать уровень безопасности, указанный здесь (RDP, Negotiate или SSL/TLS)
  • Do Not Allow Local Administrators to Customize Permissions : политика отключает возможность администраторам настраивать параметры безопасности RD Session Host.
  • Require User Authentication for Remote Connections by using Network Level Authentication: Политика включает требование NLA для всех соединения с терминальным сервером (клиенты без поддержки NLA подключиться не смогут).

Параметры настройки клиента RDC находятся в подразделе Remote Desktop Connection Client :

  • Do not allow passwords to be saved : политика запрещает сохранять пароли в клиенте RDC, опция «Сохранить пароль» становится недоступна, все ранее сохраненные пароли будут удалены.
  • Specify SHA 1 thumbprints of certificates representing trusted .rdp publishers : эта политика позволяет создать список отпечатков SHA1 сертификатов, и если сертификат соответствует отпечатку в это списке, он считается доверенным.
  • Prompt for credentials on the client computer : политика активирует запрос учетных данных пользователя на клиентском компьютере, а не сервере RD Session.

RD Web Access

Пользователи компьютеров, на которых не установлен клиент RDC, могут получать доступ к опубликованным приложениям с помощью веб-браузера. Для этого пользователь должен в браузере открыть URL, на котором опубликованы ресурсы RDS. Сервер RD Web Access – это отдельная роль сервера RD, обычно он располагается на выделенном сервере.

Веб интерфейс сервера RD Web Access основан на использовании SSL и пользователи могут авторизоваться на нем с помощью своих учетных данных. Аутентифицированные пользователи видят лишь список тех опубликованных программ (RemoteApp), к которым у них есть доступ.

Сервер Web Access для шифрования использует сертификат X.509. По умолчанию используется самоподписанный сертификат.

Возможность осуществления удаленного доступа по протоколу RDP система Windows предусматривает давно. Такой штатный инструмент появился еще в версии Windows NT 4.0, вышедшей в 1996 году. Более-менее функционально он был доработан в версии Windows ХР, а свою завершенность обрел уже в составе Windows 7. Версии Windows 8/8.1 и 10 удаленный доступ по протоколу RDP от Windows 7 унаследовали без функциональных изменений.

Ниже подробно рассмотрим работу удаленного доступа по протоколу RDP в версиях Windows 7, 8.1 и 10.

1. Удаленный доступ по протоколу RDP

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

Подключение к удаленному компьютеру с задействованием протокола RDP возможно и за пределами локальной сети, по Интернету. Но для этого потребуются дополнительные действия – либо проброс порта 3389 на роутере, либо объединение с удаленным компьютером в единую сеть VPN. Ввиду этого подключиться к удаленному компьютеру по Интернету гораздо проще с использованием иных программных инструментов, не требующих лишних действий. Это, например, штатная утилита Windows «Удаленный помощник» для оказания компьютерной помощи по Интернету. Она работает по принципу отправки файла приглашения пользователю, который будет оказывать компьютерную помощь. Ее более функциональные аналоги на рынке софта для Windows – программы типа .

Протокол RDP также используется для подключения к виртуальным машинам . Удаленное подключение по протоколу RDP может предложить больше возможностей, нежели стандартное окно подключения штатного гипервизора. Окно подключения Hyper-V не предусматривает воспроизведение звука в гостевой ОС, не видит подключенные USB-носители информации, не может предложить большей связи с физическим компьютером, нежели вставка скопированного в нем текста. Тогда как подключение по RDP может обеспечить видимость виртуальной машиной различных устройств, подсоединенных к физическому компьютеру, более качественное изображение рабочего стола гостевой ОС, работу со звуком и т.д.

Для подключения по RDP необходимо, чтобы удаленный компьютер соответствовал таким требованиям:

  • На нем должна быть запароленная учетная запись;
  • В системе должны быть разрешены удаленные подключения;
  • Если нет желания каждый раз при подключении менять данные доступа при постоянно меняющемся динамическом IP-адресе, в настройках сети необходимо присвоить статический IP-адрес.

Удаленный доступ возможен только на компьютерах с установленными редакциями Windows Pro, Enterprise или Ultimate. Домашние версии Windows (Home) удаленный доступ по протоколу RDP не предусматривают.

2. Пароль на удаленном компьютере

Если на удаленном компьютере проводится работа с учетной записи Microsoft, при этом вместо длинного пароля используется короткий ПИН-код, при подключении по протоколу RDP необходимо вводить тот самый длинный пароль, а не четырехзначный ПИН-код.

Если на удаленном компьютере используется незапароленная локальная учетная запись, при этом в пароле особой необходимости нет, как например, при подключении к виртуальным машинам Hyper-V, хотя бы простейший пароль типа «777» или «qwerty» создать придется.

3. IP-адрес удаленного компьютера

При подключении по протоколу RDP потребуется ввести IP-адрес удаленного компьютера. Внутренний IP-адрес виден в сетевых параметрах системы. Но в версиях Windows 7, 8.1 и 10 это три разных пути. В системе Windows 7 это раздел панели управления, а в Windows 8.1 и 10 это приложение «Параметры» с присущей каждой из версий собственной организацией. Потому внутренний IP-адрес будем узнавать универсальным, подходящим для каждой из этих систем способом – посредством командной строки. Ярлык запуска командной строки в Windows 7 доступен в меню «Пуск». В Windows 8.1 и 10 командная строка запускается из контекстного меню на кнопке «Пуск».

В окне командной строки вводим:

После нажатия Enter получим сводку данных, где будет виден внутренний IP-адрес.

4. Разрешение удаленных подключений

Разрешение на удаленное подключение в системах Windows изначально, как правило, отключено. Во всяком случае это точно касается лицензионных сборок. Возможность подключения по протоколу RDP на удаленном компьютере активируется в настройках системы. Нам нужен раздел «Система». В версии Windows 7 к нему можно получить доступ с помощью поиска по меню «Пуск». А в Windows 8.1 и 10 в раздел «Система» можно попасть из контекстного меню на кнопке «Пуск».

Кликаем «Настройка удаленного доступа».

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

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

Ниже опции разрешения удаленных подключений есть кнопка «Выбрать пользователей». Жмем ее.

В поле внизу вводим имя пользователя, которому разрешается, чтобы к нему подключались по протоколу RDP. Для локальных учетных записей это их имя, а для учетных записей Microsoft – электронный адрес, с помощью которого происходит авторизация. Жмем «Ок».

Все – теперь к учетной записи этого пользователя будет доступ с любого компьютера внутри локальной сети.

5. Подключение к удаленному компьютеру

Все нужные действия на удаленном компьютере сделаны, переходим к основному компьютеру, с которого будет осуществляться подключение и управление. Запустить штатную утилиту подключения по протоколу RDP можно, отыскав ее ярлык с помощью поиска внутри системы. В Windows 7 это поиск по меню «Пуск».

В версиях Windows 8.1 и 10 жмем клавиши Win+Q.

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

В поле «Компьютер» вписываем IP-адрес удаленного компьютера. В поле ниже - «Пользователь» - соответственно, вводим имя пользователя. Если к удаленному компьютеру подключена учетная запись Microsoft, вписываем электронный адрес.

Если на компьютере проводится работа с обычной локальной учетной записи, имя пользователя необходимо вводить в формате:

Компьютер\Пользователь

Например, DESKTOP-R71R8AM\Вася , где DESKTOP-R71R8AM – это имя компьютера, а Вася – имя пользователя локальной учетной записи.

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

Вводим пароль от учетной записи удаленного компьютера.

Жмем «Да» в окошке ошибки сертификата.

Больше настроек подключения по протоколу RDP получим в окошке утилиты изначально, до установки соединения.

6. Подключение к другой учетной записи удаленного компьютера

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

После ввода нового имени пользователя и пароля данные авторизации для конкретного IP-адреса будут перезаписаны.

7. Настройки подключения

В раскрытом окне подключения к удаленному компьютеру обнаружим вкладки с настраиваемыми параметрами. Первые две касаются удобства и функциональности удаленного доступа.

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

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

Препятствием использования протокола RDP может стать его блокировка антивирусами. В таком случае работу протокола RDP необходимо разрешать в настройках антивирусных программ.

Отличного Вам дня!

По умолчанию во всех операционных системах Windows для подключения по протоколу RDP (Remote Desktop Protocol / Удаленный рабочий стол) использует порт TCP 3389 .

Если ваш компьютер подключен напрямую к интернету (например, VDS сервер), или вы настроили на своем пограничном маршрутизаторе порта 3389/RDP в локальную сеть на компьютер или сервер с Windows, вы можете изменить стандартный RDP порт 3389 на любой другой. Изменив номер RDP порта для подключения, вы можете спрятать ваш RDP сервер от сканеров портов, уменьшите вероятность эксплуатации RDP уязвимостей (последняя критическая уязвимость в RDP BlueKeep описана в ), уменьшите количество попыток удалённого подбора паролей по RDP (не забывает периодически ), SYN и других типов атак (особенно при ).

Замену стандартного RDP порта можно использовать, когда за маршрутизатором с одним белым IP адресом находится несколько Windows компьютеров, к которым нужно предоставить внешний RDP доступ. На каждом компьютере вы можете настроить уникальный RDP порт и настроить перенаправление портов на маршрутизаторе на локальные компьютеры (в зависимости от номера RDP порта сессия перенаправляется на один из внутренних ПК).

При выборе нестандартного номера порта для RDP обратите внимание, что желательно не использовать номера портов в диапазоне от 1 до 1023 (известные порты) и динамические порты из RPC диапазона (от 49152 до 65535).

Попробуем изменить порт, на котором ожидает подключения служба Remote Desktop на 1350 . Для этого:

  1. Откройте редактор реестра и перейдите в ветку HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp ;
  2. Найдите DWORD параметр реестра с именем PortNumber . В этом параметре указан порт, на котором ожидает подключения служба Remote Desktop;
  3. Измените значение этого порта. Я изменил RDP порт на 1350 в десятичном значении (Deciamal);
  4. Если на вашем компьютере включен Windows Firewall, вы должны создать новое правило, разрешающее входящее подключение на новый RDP порт (если вы перенастраиваете удаленный сервер через RDP, не создав правило в брандмауэре, вы потеряете доступ к серверу). Вы можете создать разрешающее входящее правило для нового TCP/UDP порта RDP вручную из консоли ‘Брандмауэр Защитника Windows’ (firewall.cpl ) или с помощью : New-NetFirewallRule -DisplayName "New RDP Port 1350" -Direction Inbound -LocalPort 1350 -Protocol TCP -Action allow И: New-NetFirewallRule -DisplayName "New RDP Port 1350" -Direction Inbound -LocalPort 1350 -Protocol UDP -Action allow
  5. Перезагрузите компьютер или перезапустите службу удаленных рабочих столов командой: net stop termservice & net start termservice
  6. Теперь для подключения к данному Windows компьютеру по RDP, в клиенте mstsc.exe нужно указывать порт RDP подключения через двоеточие следующим образом: Your_Computer_Name:1350 или по IP адресу 192.168.1.100:1350 или из командной строки: mstsc.exe /v 192.168.1.100:1350

    Если для управления множеством RDP подключений вы используете менеджер RDP подключений , заданный вами номер RDP порта для подключения можно указать на вкладке “Connection Settings”.

  7. В результате вы успешно подключитесь к рабочему столу удаленного компьютера по новому номеру RDP порта (с помощью команды nenstat –na | Find “LIST” убедитесь, что служба RDP теперь слушает на другом порту).

Полный код PowerShell скрипт для смены RDP порта, создания правила в брандмауэре и перезапуска службы RDP на новом порту может выглядеть так:




New-NetFirewallRule -DisplayName "New RDP Port $RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol UDP -Action Allow

Write-host "Номер RDP порта изменен на $RDPPort " -ForegroundColor Magenta

Можно изменить номер RDP удаленно на нескольких компьютерах в домене AD (определенной OU) с помощью Invoke-Command и :

Write-host "Укажите номер нового RDP порта: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
$PCs = Get-ADComputer -Filter * -SearchBase "CN=DMZ,CN=Computers,DC=winitpro,DC=ru"
Foreach ($PC in $PCs) {
Invoke-Command -ComputerName $PC.Name -ScriptBlock {
param ($RDPPort)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP\" -Name PortNumber -Value $RDPPort
New-NetFirewallRule -DisplayName "New RDP Port $RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "New RDP Port $RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
Restart-Service termservice -force
}

Это инструкция по смене стандартного RDP порта подойдёт для любой версии Windows, начиная с Windows XP (Windows Server 2003) и заканчивая Windows 10 (Windows Server 2019).

Протокол Remote Desktop. Архитектура и возможности

Alexander Antipov


Данная статья открывает цикл статей, посвященных устройству и безопасности протокола RDP. В первой статье этого цикла анализируется устройство, использование и основные технологии, заложенные в данный протокол.

В следующих статьях будут подробно рассмотрены следующие вопросы:

  • Работа подсистемы безопасности Remote Desktop
  • Формат обмена служебной информацией в RDP
  • Уязвимые места сервера терминалов и пути их устранения
  • Подбор учетных записей пользователей по RDP протоколу (разработки компании Positive Technologies в данной области)

История появления 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.

Рассмотрим преимущества этих решений.

Сильные стороны Terminal Services:

  • Простота установки приложений для клиентской части сервера приложений
  • Централизованное обслуживание сессий пользователя
  • Необходимость наличия лицензии только на Terminal Services

Сильные стороны решений Citrix:

  • Простота масштабирования
  • Удобство администрирования и мониторинга
  • Политика разграничение доступа
  • Поддержка корпоративных продуктов сторонних разработчиков (IBM WebSphere, BEA WebLogic)

Устройство сети, использующей Terminal Services

Microsoft предполагает два режима использования протокола RDP:

  • для администрирования (Remote administration mode)
  • для доступа к серверу приложений (Terminal Server mode)

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

Данный вид соединения используется всеми современными операционными системами Microsoft. Серверные версии Windows поддерживают одновременно два удаленных подключения и один локальный вход в систему, в то время как клиентские - только один вход (локальный или удаленный). Для разрешения удаленных подключений требуется включить удаленный доступ к рабочему столу в свойствах рабочей станции.

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

Данный режим доступен только в серверных версиях Windows. Количество удаленных подключений в данном случае не лимитируется, но требуется настройка сервера лицензий (License server) и его последующая активация. Сервер лицензий может быть установлен как на сервер терминалов, так и на отдельный сетевой узел. Возможность удаленного доступа к серверу терминалов открывается только после установки соответствующих лицензий на License server.

При использовании кластера терминальных серверов и балансировки нагрузки требуется установка специализированного сервера подключений (Session Directory Service). Данный сервер индексирует пользовательские сессии, что позволяет выполнять вход, а также повторный вход на терминальные серверы, работающие в распределенной среде.

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

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

RDP поддерживает несколько виртуальных каналов в рамках одного соединения, которые могут использоваться для обеспечения дополнительного функционала:

  • использование принтера или последовательного порта
  • перенаправление файловой системы
  • поддержка работы с буфером обмена
  • использование аудио- подсистемы

Характеристики виртуальных каналов согласуются на этапе установки соединения.

Обеспечение безопасности при использовании RDP

Спецификация протокола RDP предусматривает использование одного из двух подходов к обеспечению безопасности:

  • Standard RDP Security (встроенная подсистема безопасности)
  • Enhanced RDP Security (внешняя подсистема безопасности)

Standard RDP Security

При данном подходе аутентификация, шифрование и обеспечение целостности реализуется средствами, заложенными в RDP- протокол.

Аутентификация

Аутентификация сервера выполняется следующим образом:

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

Аутентификация клиента проводится при вводе имени пользователя и пароля.

Шифрование

В качестве алгоритма шифрования выбран потоковый шифр RC4. В зависимости от версии операционной системы доступны различные длины ключа от 40 до 168 бит.

Максимальная длина ключа для операционных систем Winodws:

  • Windows 2000 Server – 56 бит
  • Windows XP, Windows 2003 Server – 128 бит
  • Windows Vista, Windows 2008 Server – 168 бит

При установке соединения после согласования длины генерируется два различных ключа: для шифрования данных от клиента и от сервера.

Целостность

Целостность сообщения достигается применением алгоритма генерации MAC (Message Authentication Code) на базе алгоритмов MD5 и SHA1.

Начиная с Windows 2003 Server, для обеспечения совместимости с требованиями стандарта FIPS (Federal Information Processing Standard) 140-1 возможно использование алгоритма 3DES для шифрования сообщений и алгоритма генерации MAC, использующего только SHA1, для обеспечения целостности.

Enhanced RDP Security

В данном подходе используются внешние модули обеспечения безопасности:

  • TLS 1.0
  • CredSSP

Протокол TLS можно использовать, начиная с версии Windows 2003 Server, но только если его поддерживает RDP- клиент. Поддержка TLS добавлена, начиная с RDP -клиента версии 6.0.

При использовании TLS сертификат сервера можно генерировать средствами Terminal Sercives или выбирать существующий сертификат из хранилища Windows.

Протокол CredSSP представляет собой совмещение функционала TLS, Kerberos и NTLM.

Рассмотрим основные достоинства протокола CredSSP:

  • Проверка разрешения на вход в удаленную систему до установки полноценного RDP- соединения, что позволяет экономить ресурсы сервера терминалов при большом количестве подключений
  • Надежная аутентификация и шифрование по протоколу TLS
  • Использование однократного входа в систему (Single Sign On) при помощи Kerberos или NTLM

Возможности CredSSP можно использовать только в операционных системах Windows Vista и Windows 2008 Server. Данный протокол включается флагом Use Network Level Authentication в настройках сервера терминалов (Windows 2008 Server) или в настройках удаленного доступа (Windows Vista).

Схема лицензирования Terminal Services

При использовании RDP для доступа к приложениям в режиме тонкого клиента требуется настройка специализированного сервера лицензий.

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

Виды клиентских лицензий:

  • временная лицензия (Temporary Terminal Server CAL)
  • лицензия «на устройство» (Device Terminal Server CAL)
  • лицензия «на пользователя» (User Terminal Server CAL)
  • лицензия для внешних пользователей (External Terminal Server Connector)

Временная лицензия

Данный вид лицензии выдается клиенту при первом подключении к серверу терминалов, срок действия лицензии 90 дней. При успешном входе клиент продолжает работать с временной лицензией, а при следующем подключении сервер терминалов пробует заменить временную лицензию постоянной, при ее наличии в хранилище.

Лицензия «на устройство»

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

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

Лицензирование «на пользователя» обеспечивает дополнительную гибкость, позволяя пользователям подключаться с различных устройств. В текущей реализации Terminal Services нет средств контроля использования пользовательские лицензий, т.е. количество доступных лицензий на сервере лицензий не уменьшается при подключении новых пользователей. Использование недостаточного количества лицензий для клиентских подключений нарушает лицензионное соглашение с компанией Microsoft. Чтобы одновременно использовать на одном сервере терминалов клиентские лицензии для устройств и для пользователей, сервер должен быть настроен для работы в режиме лицензирования «на пользователя».

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

Это специальный вид лицензии, предназначенный для подключения внешних пользователей к корпоративному серверу терминалов. Данная лицензия не налагает ограничений на количество подключений, однако, согласно пользовательскому соглашению (EULA), сервер терминалов для внешних подключений должен быть выделенным, что не допускает его использования для обслуживания сессий от корпоративных пользователей. Из-за высокой цены данный вид лицензии не получил широкого распространения.

Для сервера лицензий может быть установлена одна из двух ролей:

  • Сервер лицензий для домена или рабочей группы (Domain or Workgroup License server)
  • Сервер лицензий предприятия (Entire Enterprise License Server)

Роли отличаются способом обнаружения сервера лицензий: при использовании роли Enterprise терминальный сервер выполняет поиск сервера лицензии по каталогу ActiveDirectory, в противном случае поиск выполняется при помощи широковещательного NetBIOS- запроса. Каждый найденный сервер проверяется на корректность при помощи RPC -запроса.

Перспективные технологии Terminal Services

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

В Terminal Services для Windows 2008 Server введены следующие возможности.



Просмотров