Защита RDP подключения. Протокол RDP Максимально доступный уровень шифрования rdp протокола

Возможность осуществления удаленного доступа по протоколу 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 необходимо разрешать в настройках антивирусных программ.

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

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

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

История появления

Протокол удаленного рабочего стола, а именно так расшифровывается аббревиатура RDP, появился в далеком 1998 году. Этот проприетарный протокол прикладного уровня, в то время входил в состав ОС Windows NT 4.0 Terminal Server, и позволял реализовать идею удаленного функционирования клиент-серверных приложений. Как вы понимаете, не всегда есть возможность обеспечить все рабочие места мощными компьютерами, а уж в те далекие годы производительность оставляла желать лучшего.

Решением этой проблемы выступает следующая конструкция: мощный сервер (или кластер серверов) осуществляет основную массу операций вычислений, а маломощные клиентские компьютеры/приложения подключаются к нему, используя протокол RDP, осуществляют свои задачи. Таким образом, на конечных пользовательских узлах появилась возможность работать со сложными приложениями и программами, даже при наличии ограниченных ресурсов — ведь основная нагрузка ложилась на сервер, а клиентский ПК получал только основной результат операции на мониторе.

Описание протокола RDP

  • По умолчанию, для подключения используется порт TCP 3389
  • Как уже упомянуто выше, при подключении предоставляется возможность работать с файлами на удаленном машине
  • Для обеспечения безопасности реализовано шифрование и 56 и 128 битным ключами
  • Также для функций безопасности, используется возможности протоколов TLS
  • Общий буфер обмена — вы можете копировать данные и удаленной машины, и вставлять их на локальный ПК.
  • Реализована возможность подключения локальных ресурсов к удаленному ПК.
  • Протокол RDP предоставляет доступ к портам локального компьютера (последовательные и параллельные)

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

Протокола RDP берет за основу функции стека протоколов TCP. Первым делом, устанавливается соединение между клиентом и сервером на транспортном уровне. Затем происходит инициация сессии RDP — на этом этапе согласовываются основные параметры: шифрование, подключенные устройства, настройки графики и тд.

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

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

Если настроена система обеспечения безопасности протокола RDP, аутентификация происходит следующим образом:

  1. При инициализации подключения формируется пара RSA ключей
  2. Далее создается специальный сертификат открытого ключа
  3. Операционная система проводит процесс подписи сертификата RSA ключем
  4. Далее клиент осуществляем подключение к серверу, получает от него сертификат, и если тот проходит проверку, инициализируется сессия удаленного управления

Как запустить

В операционных системах, таких как Windows XP, Vista, Seven, по умолчанию включено клиентское ПО Remote Desktop Connection. Для его запуска вам необходимо нажать сочетание клавиш Win+R , набрать mstsc и нажать Enter .

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

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

Что нового в R2

Если вы приступаете к работе с RDS после работы со службами терминалов Windows Server 2008 Terminal Services, вы не встретите там много значительных изменений, как при переходе с Windows Server 2003. WS 2008 добавил некоторые значительные улучшения в службы терминалов, включая TS Web Access для подключения через браузер, TS Gateway для пользователей, подключающихся через интернет, RemoteApp для доставки отдельных приложений пользователям через Remote Desktop Protocol (RDP) протокол и Session Broker, который включает функцию балансировки нагрузки.

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

Также есть улучшения в аудио/видео и поддержке Windows Aero в RD сеансе (однако обратите внимание, что Desktop Composition, которая обеспечивает работу Aero, не поддерживается в сеансах с несколькими мониторами).

Аспекты и механизмы безопасности

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

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

Проверка подлинности на сетевом уровне (Network Level Authentication)

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

NLA настраивается на сервере RD Session Host в следующем разделе: Инструменты администрирования (Administrative Tools) | Службы удаленного рабочего стола (Remote Desktop Services) | Конфигурация узла сеансов удаленного рабочего стола (Desktop Session Host Configuration). Для настройки подключения на использование NLA, выполните следующие шаги:

  1. Нажмите правой клавишей Подключение (Connection)
  2. Выберите Свойства
  3. Перейдите в закладку Общие (General)
  4. Отметьте флажком опцию " Разрешать подключения только от компьютеров с удаленным рабочим столом с сетевой проверкой подлинности (Allow connections only from computers running Remote Desktop with Network Level Authentication)", как показано на рисунке 1
  5. Нажмите OK.

Рисунок 1

Протокол Transport Layer Security (TLS)

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

  • Уровень безопасности RDP " этот уровень использует собственное RDP шифрование и является наименее безопасным. Сервер RD Session Host не проходит проверку подлинности.
  • Согласовать (Negotiate) " TLS 1.0 (SSL) шифрование будет использоваться, если клиент его поддерживает. Если нет, сеанс перейдет обратно на RDP безопасность.
  • SSL " TLS 1.0 шифрование будет использоваться для проверки подлинности сервера и шифрования данных, передаваемых между клиентом и Session Host сервером. Это самая безопасная опция.

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

  • Низкий (Low) " использует 56-разрядное шифрование для данных, пересылаемых с клиента на сервер. Не шифрует данные, пересылаемые с сервера клиенту.
  • Совместимый с клиентом (Client Compatible) " это опция по умолчанию. Она шифрует данные передаваемые между клиентом и сервером с самым надежным ключом, который поддерживает клиент.
  • Высокий (High) " эта опция шифрует данные в обоих направлениях между клиентом и сервером с помощью 128-битного шифрования.
  • FIPS-совместимый (FIPS Compliant) " эта опция шифрует данные передаваемые в обоих направлениях между клиентом и сервером с помощью FIPS 140-1 утвержденного алгоритма шифрования.

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

Вот, как настраивать параметры проверки подлинности и шифрования сервера:

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

Рисунок 2

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

Групповая политика

Есть ряд параметров групповой политики для RDS в Windows Server 2008 R2. Они расположены в разделе Конфигурация компьютера (Computer Configuration)\ Политики (Policies)\ Административные шаблоны (Administrative Templates)\ Компоненты Windows (Windows Components)\ Службы удаленного рабочего стола (Remote Desktop Services) в консоли управления групповой политикой вашего домена, как показано на рисунке 3.

Как вы видите, здесь есть политики для лицензирования RDC клиентов и сервера RD Session Host. Политики для сервера RD Session Host, связанные с безопасностью, включают:

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

Примечание: вот, как узнать, поддерживает ли клиентский компьютер проверку подлинности на сетевом уровне: откройте RDC клиент и нажмите значок в верхнем левом углу, затем выберите "О программе (about) ". Если NLA поддерживается, вы увидите строку "Network Level Authentication Supported".

Другие параметры групповой политики, о которых следует упомянуть, расположены в разделе клиентских соединений RD Connection Client. Они включают:

  • Не разрешать сохранение паролей (Do not allow passwords to be saved): включение этого параметра отключит опцию сохранения паролей в диалоге клиента RDC. Если пользователь откроет RDP файл и сохранит свои параметры, ранее сохраненные пароли будут удалены. Это заставляет пользователя вводить свой пароль при каждом входе.
  • Указывать отпечатки SHA1 сертификатов, представляющих доверенных издателей RDP (Specify SHA1 thumbprints of certificates representing trusted .rdp publishers): с помощью этого параметра можно указать список отпечатков SHA1 сертификатов, и если сертификат соответствует отпечаткам в списке, он будет считаться доверенным.
  • Запрашивать учетные данные на клиентском компьютере (Prompt for credentials on the client computer) : эта политика включает запрос учетных данных на клиентских компьютерах, а не на сервере RD Session Host.
  • Настроить проверку подлинности сервера для клиента (Configure server authentication for client) : с помощью этого параметра можно указать, сможет ли клиент создать подключение к RD Session Host серверу, когда не может проверить подлинность сервера RD Session Host. Самым безопасным параметром будет опция "Не подключаться при неудачной аутентификации (Do not connect if authentication fails)."

Можно также использовать групповую политику для настройки FIPS соответствия, но эту политику здесь не найти с другими RDS политиками безопасности. Она расположена в следующем разделе: Конфигурация компьютера (Computer Configuration)\Настройки Windows (Windows Settings)\Настройки безопасности (Security Settings)\ Локальные политики (Local Policies)\Опции безопасности (Security Options). В правой панели пролистайте вниз к: Системная криптография: использовать FIPS-совместимые алгоритмы для шифрования, хеширования и подписывания ("System Cryptography: use FIPS compliant algorithms for encryption, hashing and signing"). При включении этой политики она поддерживает только Triple DES (3DES) алгоритм шифрования для RDS соединений.

RD Web Access

На компьютерах, где не установлен RDC клиент, пользователи могут получать доступ к опубликованным приложениям, к которым они имеют доступ из веб браузера. Пользователь переходит на URL адрес, по которому опубликованы RDS ресурсы. Сервер веб доступа RD Web Access Server является отдельным от RD Session Host сервером. Вы указываете, какие RD Web Access серверы могут подключаться к каким RD Session Host серверам.

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

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

RD Gateway

The RD Gateway (RDG) используется для предоставления пользователям доступа к RD ресурсам через интернет. Сервер шлюза Gateway расположен на границе, и он фильтрует входящие RDS запросы в соответствии с Network Policy Server (NPS). NPS использует две политики: Политика авторизации подключений (Connection Authorization Policy - CAP), в которой указывается, какие пользователи могут иметь доступ к RDG и Политика авторизации ресурсов (Resource Authorization Policy - RAP), указывающая, к каким устройствам CAP пользователь может подключаться через RDG.

Заключение

Службы удаленного рабочего стола в Windows Server 2008 R2 значительно расширяют функционал своего предшественника, службы терминалов " но они также представляют некоторые новые аспекты безопасности, которые следует учитывать. Следуя рекомендациям к обеспечению максимальной безопасности при настройке компонентов RDS конфигурации " RD Session Host, RD Web Access Server, RD Gateway и клиент " а также используя групповую политику для управления конфигурацией, вы сможете получить безопасную среду и воспользоваться преимуществами RDS доставки приложений и обеспечить своим пользователям ощущение работы на полноценных компьютерах.

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

Какие преимущества дает нам защита RDP при помощи SSL? Во первых надежное шифрование канала, проверку подлинности сервера на основании сертификата и проверку подлинности пользователя на уровне сети. Последняя возможность доступна начиная с Windows Server 2008. Проверка подлинности на уровне сети позволяет повысить безопасность сервера терминалов за счет того, что проверка происходит еще до начала сеанса.

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

Для полноценного использования всех возможностей RDP через SSL клиентские ПК должны работать под управлением Windows XP SP3, Windows Vista или Windows 7 и использовать RDP клиент версии 6.0 или более поздней.

При использовании Windows Server 2003 SP1 и более поздних версий, будут доступны шифрование канала при помощи SSL (TLS 1.0) и проверка подлинности сервера, клиентские ПК должны иметь версию RDP клиента 5.2 или более позднюю.

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

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

Затем следует выполнить запрос сертификата подлинности сервера со следующими параметрами:

Имя - полное имя терминального сервера (т.е. server.domain.com если сервер входит в домен domain.com)

  • Тип сертификата - Сертификат проверки подлинности сервера
  • Установите опцию Создать новый набор ключей
  • CSP - Microsoft RSA SChannel Cryptographic Provider .
  • Установите флажок Пометить ключ как экспортируемый .
  • Для ЦС предприятия установите флажок Использовать локальное хранилище компьютера для сертификата . (В автономном ЦС данная опция недоступна).

Отправьте запрос центру сертификации и установите выданный сертификат. Данный сертификат должен быть установлен в локальное хранилище компьютера, иначе он не сможет быть использован службами терминалов. Чтобы проверить это запустим консоль MMC (Пуск - Выполнить - mmc ) и добавим оснастку Сертификаты (Файл - Добавить или удалить оснастку ) для учетной записи компьютера.

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

Если вы получали сертификат с помощью изолированного (автономного) ЦС (сеть не имеет доменной структуры) то он по умолчанию будет установлен в хранилище учетной записи пользователя и придется выполнить ряд дополнительных действий.

Откройте Internet Explorer - Свойства обозревателя - Содержимое - Сертификаты , выданный сертификат должен быть установлен в хранилище Личные .

Произведите его экспорт. При экспорте укажите следующие опции:

  • Да, экспортировать закрытый ключ
  • Удалить закрытый ключ после успешного экспорта

После чего удалите сертификат из данного хранилища. В оснастке Сертификаты (локальный компьютер) выберите раздел Проверка подлинности сервера , щелкните на него правой кнопкой мыши Все задачи - Импорт и импортируйте сертификат.

Теперь в Администрирование - Службы удаленных рабочих столов откройте Конфигурация узла сеансов удаленных рабочих столов (в Windows Server 2003 Администрирование - Настройка служб терминалов).

Выберите необходимое подключение и откройте его свойства. В самом низу нажмите кнопку Выбрать и выберите полученный на предыдущем шаге сертификат (в Windows Server 2003 это окно выглядит несколько по другому).

После выбора сертификата укажите остальные свойства:

  • Уровень безопасности SSL
  • Уровень шифрования Высокий или FIPS -совместимый
  • Установите флажок Разрешить подключаться только с компьютеров... (недоступно в Windows Server 2003)

Сохраните введенный параметры, на этом настройка сервера закончена.

На клиентском ПК создайте подключение к удаленному рабочему столу, в качестве адреса используйте полное имя сервера, которое указано в сертификате. Откройте свойства подключения и на закладке Подключение - Проверка подлинности сервера установите опцию Предупреждать .

Чтобы данный ПК доверял сертификатам выданным нашим центром сертификации не забудьте установить на него сертификат ЦС в хранилище Доверенные корневые центры сертификации .

В Windows 7 (при использовании RDP клиента версии 7) данный сертификат требуется установить в хранилище учетной записи компьютера , для этого импортируйте его через оснастку Сертификаты (локальный компьютер) в консоли MCC, аналогично тому, как это делали выше. В противном случае подключение будет невозможно и вы получите следующую ошибку:

Установив сертификат ЦС можете пробовать подключиться, обратите внимание, что имя пользователя и пароль будет предложено ввести еще до создания RDP сессии. При успешном соединении обратите внимание на замок в заголовке окна, который свидетельствует о работе через SSL. Нажав на него можно просмотреть информацию о сертификате.

И напоследок капля дегтя в бочке меда. Терминальные службы Windows не умеют проверять подлинность подключающихся клиентов, поэтому если стоит такая необходимость следует использовать дополнительные методы защиты, такие как SSH туннель или IPSec VPN.

По умолчанию во всех операционных системах 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).