Настройка TLS для RDP подключений | Блог Александра Ткаченко

Настройка TLS для RDP подключений | Блог Александра Ткаченко Сертификаты

Group policy configuration

3. In the same GPO node, configure the Require use of specific security layer for remote (RDP) connections to use SSL.

4. Wait for the GPO to replicate, then refresh the GPO on a test server. Wait a minute, then open the Certificates MMC snap-in for the computer account. Look in the PersonalCertificates store for a certificate that has the Intended Purposes of Remote Desktop Authentication.

8. From another computer (domain joined) now RDP into this server and verify that you no longer get the certificate warning. In fact, it should just sail right through to your desktop.

Rdp certificate template

5. Now we need to create an application policy to limit the usage to RDS authentication, then remove the other application uses for the certificate. On the Extensions tab click on Application Policies then click on Edit.

6. Click on Add, then click on New.  Set the value of Name to Remote Desktop Authentication. Change the object identifier (OID) to 1.3.6.1.4.1.311.54.1.2.

7. From the Application Policies list, select Remote Desktop Authentication and click OK.

8. Back on the certificate template properties, remove all other entries. Only Remote Desktop Authentication should be present.

9. You probably want to secure your domain controllers as well, so for that we need to modify the security setting on the template. Open the Security tab and add the group Domain Controllers and give the group ​Enroll (not Autoenroll). Close out the certificate.

Про сертификаты:  «Вестник Просвещения» – База знаний: Получение электронного сертификата

10. Open the MMC snap-in for managing your Certificate Authority and locate the Certificate Templates node. Right click, select New, then Certificate Template to Issue. Choose the RemoteDesktopComputer template.

Summary

The procedure for Windows Server 2021 and Windows 10 is basically the same as 5 years ago when I documented it for Windows Server 2008 R2/2021/Win7. But it’s good to validate that the procedure still works, and give the audience a fresh post. You can check out my 2021 post titled: Create Trusted Remote Desktop Services (RDP) SSL Certificate if you want it for 2008 R2/2021 servers.

Доверие сертификатам ca из корпоративной сети

Помимо настройки клиента Remote Desktop Connection, необходимо убедиться, что рабочая станция доверяет сертификатам, выданным центром сертификации в корпоративной сети. Для этого требуется выполнить следующие действия:

Запрос сертификата для сервера терминала

Прежде чем использовать SSL для соединения с сервером терминала, необходимо запросить соответствующий сертификат из центра сертификации корпоративной сети:

  1. Открыть оснастку Certificates консоли управления Microsoft Management Console (MMC) на сервере терминалов от имени учетной записи локального компьютера.
  2. Выбрать Certificates (Local Computer) в корневом каталоге консоли, затем перейти к пункту Options меню View. Выбрать Certificate Purpose в разделе Organize view mode by и нажать кнопку OK.
  3. Щелкнуть правой кнопкой мыши Server Authentication и выбрать Request new certificate в разделе All tasks.
  4. Нажать кнопку Next на экране приветствия. Выбрать режим Server Authentication (или Domain Controller Authentication). Установить флажок Advanced и нажать кнопку Next.
  5. Убедиться, что в качестве поставщика службы шифрования выбран Microsoft RSA SChannel Cryptographic Provider, а длина ключа – 1024. Нажать кнопку Next.
  6. Перейти к центру сертификации корпоративной сети (если он еще не выбран) и выбрать его. Нажать кнопку Next.
  7. Ввести понятное имя и описание сертификата. Нажать кнопку Next, а затем Finish.
Про сертификаты:  Как установить сертификат из облачного хранилища КриптоПро DSS в КриптоАРМ

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

Защита rdp соединения при помощи ssl.

Настройка TLS для RDP подключений | Блог Александра Ткаченко

Какие преимущества дает нам защита 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 (за исключением отсутствующих возможностей).

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

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

Использование сертификата let’s encrypt для remote desktop services

Если вы используете для подключения внешних пользователей в корпоративную сеть шлюз Remote Desktop Gateway/ RD Web Access, вы можете использовать нормальный SSL сертификат Let’s Encrypt вместо обычного самоподписанного сертификата. Рассмотрим, как корректно установить сертификат Let’s Encrypt для зажиты служб Remote Desktop Services в Windows Server.

Про сертификаты:  5 лучших программ для создания сертификатов, которые стоит приобрести - gadgetshelp,com

Если на Remote Desktop Gateway сервере поднята также роль RDSH, нужно запретить пользователям Read доступ к каталогу, в котором у вас хранится WACS (в моем примере это c:inetpubletsencrypt ) и к каталогу с сертификатами сертификат Let’s Encrypt (C:

Затем на сервере RDP GW, запускаете wacs.exe, как описано выше, и вы выбираете нужный сайт IIS (обычно, Default Web Site). Let’s Encrypt выдает вам новый сертификат, который устанавливается для веб-сайта и в планировщике появляется задание на автоматические обновление сертификата.

Вы можете вручную экспортировать данный сертификат и привязать его к нужным службам RDS через SSL binding. Но вам придется выполнять эти действия вручную каждые 60 дней при перевыпуске сертификата Let’s Encrypt.

Нам нужен скрипт, который бы сразу после получения (продления) сертификата Let’s Encrypt применял бы его для RD Gateway.

Клиент wacs для установки tls сертификата let’s encrypt в iis на windows server

Самый простой способ получить SSL сертификат от Let’s Encrypt — воспользоваться консольной утилитой Windows ACME Simple (WACS) (ранее проект назывался LetsEncrypt-Win-Simple).

Конфигурирование автоматического выпуска сертификатов

Переходим в Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Public Key Policies и выбираем Certificate Services Client — Auto-Enrollment Включаем автоматический выпуск сертификатов а так же настройки по их автоматическому обновлению:

Настройка политики автоматического выпуска сертификатов
Настройка политики автоматического выпуска сертификатов

Особенности пакета sp1

RDP — фирменный протокол Microsoft для службы Windows Terminal Services. Сквозное шифрование RDP with SSL обеспечивает дополнительный уровень шифрования для конфиденциальных данных и позволяет клиентам проверить подлинность сервера, предотвращая атаки, в ходе которых мошенник вклинивается между клиентом и сервером (man-in-the-middle).

Проверка работоспособности

После применения групповой политики Windows клиенты должны в автоматическом порядке получить сертификат. Если этого не произошло, стоит обратить внимание на:

  1. Отсутствие в правильной группе безопасности, которая указана в шаблоне;
  2. Отсутствие к ЦС необходимых сетевых портов от клиента. Напомню, это tcp/135 (RPC) и динамические порты tcp/49152—65535.

Проверить что сертификат был успешно выпущен можно в консоли ADCS:

Успешно выданный сертификат RDP
Успешно выданный сертификат RDP

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

Проверка правильности сертификата в RDP подключении
Проверка правильности сертификата в RDP подключении

Создание групповой политики для rdp подключений

Непосредственно сама конфигурация Windows машин будет централизовано выполнятся с помощью групповой политики. Я рекомендую создать отдельный экземпляр политики, в котором будет следующее:

  1. Задание имени шаблона сертификата для использования в RDP подключениях;
  2. Задание типа шифрования RDP подключений;
  3. Конфигурирование автоматического выпуска сертификатов.

Создание шаблона сертификата rdp в adcs

Первый шаг состоит в создании шаблона сертификата, с помощью которого Windows клиенты будут автоматически генерировать сертификаты используемые в RDP подключениях. Для этого в оснастке ADCS переходим к управлению шаблонами сертификатов:

Открытие оснастки управления шаблонами ADCS
Открытие оснастки управления шаблонами ADCS

Дублируем сертификат Computer

Дублирование шаблона компьютера
Дублирование шаблона компьютера

Задаем имя будущего шаблона:

Задание имени шаблона RDP
Задание имени шаблона RDP

Указываем настройки совместимости:

Настройка совместимости шаблона сертификата RDP
Настройка совместимости шаблона сертификата RDP

В Extensions, необходимо задать правильные Application Policies для  поддержки TLS в RDP протоколе

Редактирование расширений шаблона сертификата RDP
Редактирование расширений шаблона сертификата RDP

Для этого удаляем Client Authentication и Server Authentication и добавляем Remote Desktop Authentication с OID 1.3.6.1.4.1.311.54.1.2, как показано на скриншоте:

Создание Application Policy для сертификата RDP
Создание Application Policy для сертификата RDP

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

Настройки безопасности шаблона сертификата RDP
Настройки безопасности шаблона сертификата RDP

Завершающим шагом будет его выпуск на выдающем корпоративном ЦС:

Выпуск сертификата RDP
Выпуск сертификата RDP

Установка своего сертификата для rdp

Чисто для себя заметка

Можно ли каким-то образом, в клиентской винде не входящей в AD, для сервера удалённых рабочих столов установить свой сертификат?

Немного подробнее:
После запуска службы (или если она у вас запущена, то после установки соответствующей галки на вкладке “Удалённый доступ” ) “Службы удаленных рабочих столов” создаётся самоподписанный сертификат (который помещается в хранилище Удалённый рабочий стол > Сертификаты) – хотелось бы его заменить на свой. 

Чего только не перепробовал, но после удаления сертификата и перезапуска “Службы удаленных рабочих столов” создаётся новый самоподписанный сертификат, а все мои игнорируются.

1. Идем (gpedit.msc) по пути PC ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSecurity: Require use of specific security layer for remote (RDP) connections выбираем SSL (TLS 1.0).
2. Импортируем сертификат в “Сертификаты (локальный компьютер)PersonalRegistryCertificates. Сертификат должен быть в формате PKCS12 (.p12). Выбираем, щелчок – All Tasks – Manage Private Keys… Добавляем NETWORK SERVICE (права Чтение). Сохраняем.
3. Идем в реестр “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp”, добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>). Сохраняем.
4. Идем в “Сертификаты (локальный компьютер)”Remote DesktopRegistryCertificates. Удаляем сертификат ПК. Перезагружаем ПК. (Сертификат ПК создастся заново автоматом (после рестарта компьютера), но использоваться уже не будет).
Собственно все!

terasto
Спасибище! 

Цитата:
Добавляем NETWORK SERVICE (права Чтение).
Про это я не знал!

Цитата:
Идем в реестр … добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>).
Для этого дела есть скрипт – запускать с такими параметрами:

Код:
cscript rdconfig.js <thumbprint of your certificate>

(если лень пробелы их хеша убирать, то можно в кавычки его)

§

Чисто для себя заметка

Можно ли каким-то образом, в клиентской винде не входящей в AD, для сервера удалённых рабочих столов установить свой сертификат?

Немного подробнее:
После запуска службы (или если она у вас запущена, то после установки соответствующей галки на вкладке “Удалённый доступ” ) “Службы удаленных рабочих столов” создаётся самоподписанный сертификат (который помещается в хранилище Удалённый рабочий стол > Сертификаты) – хотелось бы его заменить на свой. 

Чего только не перепробовал, но после удаления сертификата и перезапуска “Службы удаленных рабочих столов” создаётся новый самоподписанный сертификат, а все мои игнорируются.

1. Идем (gpedit.msc) по пути PC ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSecurity: Require use of specific security layer for remote (RDP) connections выбираем SSL (TLS 1.0).
2. Импортируем сертификат в “Сертификаты (локальный компьютер)PersonalRegistryCertificates. Сертификат должен быть в формате PKCS12 (.p12). Выбираем, щелчок – All Tasks – Manage Private Keys… Добавляем NETWORK SERVICE (права Чтение). Сохраняем.
3. Идем в реестр “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp”, добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>). Сохраняем.
4. Идем в “Сертификаты (локальный компьютер)”Remote DesktopRegistryCertificates. Удаляем сертификат ПК. Перезагружаем ПК. (Сертификат ПК создастся заново автоматом (после рестарта компьютера), но использоваться уже не будет).
Собственно все!

terasto
Спасибище! 

Цитата:
Добавляем NETWORK SERVICE (права Чтение).
Про это я не знал!

Цитата:
Идем в реестр … добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>).
Для этого дела есть скрипт – запускать с такими параметрами:

Код:
cscript rdconfig.js <thumbprint of your certificate>

(если лень пробелы их хеша убирать, то можно в кавычки его)

§

Чисто для себя заметка

Можно ли каким-то образом, в клиентской винде не входящей в AD, для сервера удалённых рабочих столов установить свой сертификат?

Немного подробнее:
После запуска службы (или если она у вас запущена, то после установки соответствующей галки на вкладке “Удалённый доступ” ) “Службы удаленных рабочих столов” создаётся самоподписанный сертификат (который помещается в хранилище Удалённый рабочий стол > Сертификаты) – хотелось бы его заменить на свой. 

Чего только не перепробовал, но после удаления сертификата и перезапуска “Службы удаленных рабочих столов” создаётся новый самоподписанный сертификат, а все мои игнорируются.

1. Идем (gpedit.msc) по пути PC ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSecurity: Require use of specific security layer for remote (RDP) connections выбираем SSL (TLS 1.0).
2. Импортируем сертификат в “Сертификаты (локальный компьютер)PersonalRegistryCertificates. Сертификат должен быть в формате PKCS12 (.p12). Выбираем, щелчок – All Tasks – Manage Private Keys… Добавляем NETWORK SERVICE (права Чтение). Сохраняем.
3. Идем в реестр “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp”, добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>). Сохраняем.
4. Идем в “Сертификаты (локальный компьютер)”Remote DesktopRegistryCertificates. Удаляем сертификат ПК. Перезагружаем ПК. (Сертификат ПК создастся заново автоматом (после рестарта компьютера), но использоваться уже не будет).
Собственно все!

terasto
Спасибище! 

Цитата:
Добавляем NETWORK SERVICE (права Чтение).
Про это я не знал!

Цитата:
Идем в реестр … добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>).
Для этого дела есть скрипт – запускать с такими параметрами:

Код:
cscript rdconfig.js <thumbprint of your certificate>

(если лень пробелы их хеша убирать, то можно в кавычки его)

Оцените статью
Мой сертификат
Добавить комментарий