Протокол RDP широко используется в корпоративных Microsoft инфраструктурах для осуществления удаленных подключений к целевым системам. Его защита состоит из многих пунктов, один из которых — это использование TLS для RDP подключений. В этой заметке будет рассмотрен процесс конфигурирования данной возможности. Для этого потребуется развернутые инфраструктуры Active Directory Domain Services и Active Directory Certificate Services. Поехали.
Создание шаблона сертификата RDP в ADCS
Первый шаг состоит в создании шаблона сертификата, с помощью которого Windows клиенты будут автоматически генерировать сертификаты используемые в RDP подключениях. Для этого в оснастке ADCS переходим к управлению шаблонами сертификатов:
![Открытие оснастки управления шаблонами ADCS](https://ait.in.ua/wp-content/uploads/2019/06/Otkrytie-osnastki-upravleniya-shablonami-ADCS-792x450.png)
Дублируем сертификат Computer
![Дублирование шаблона компьютера](https://ait.in.ua/wp-content/uploads/2019/06/Dublirovanie-shablona-kompjutera-590x450.png)
Задаем имя будущего шаблона:
![Задание имени шаблона RDP](https://ait.in.ua/wp-content/uploads/2019/06/Zadanie-imeni-shablona-RDP-321x450.png)
Указываем настройки совместимости:
![Настройка совместимости шаблона сертификата RDP](https://ait.in.ua/wp-content/uploads/2019/06/Nastrojka-sovmestimosti-shablona-sertifikata-RDP-321x450.png)
В Extensions, необходимо задать правильные Application Policies для поддержки TLS в RDP протоколе
![Редактирование расширений шаблона сертификата RDP](https://ait.in.ua/wp-content/uploads/2019/06/Redaktirovanie-rasshirenij-shablona-sertifikata-RDP-321x450.png)
Для этого удаляем Client Authentication и Server Authentication и добавляем Remote Desktop Authentication с OID 1.3.6.1.4.1.311.54.1.2, как показано на скриншоте:
![Создание Application Policy для сертификата RDP](https://ait.in.ua/wp-content/uploads/2019/06/Sozdanie-Application-Policy-dlya-sertifikata-RDP-546x450.png)
Далее, необходимо задать группу безопасности, члены которой должны автоматически сгенерировать сертификат по этому шаблону. Для этого добавляем нужную группу безопасности в DACL и назначаем соответствующие права:
![Настройки безопасности шаблона сертификата RDP](https://ait.in.ua/wp-content/uploads/2019/06/Nastrojki-bezopasnosti-shablona-sertifikata-RDP-321x450.png)
Завершающим шагом будет его выпуск на выдающем корпоративном ЦС:
![Выпуск сертификата RDP](https://ait.in.ua/wp-content/uploads/2019/06/Vypusk-sertifikata-RDP-823x450.png)
Создание групповой политики для RDP подключений
Непосредственно сама конфигурация Windows машин будет централизовано выполнятся с помощью групповой политики. Я рекомендую создать отдельный экземпляр политики, в котором будет следующее:
- Задание имени шаблона сертификата для использования в RDP подключениях;
- Задание типа шифрования RDP подключений;
- Конфигурирование автоматического выпуска сертификатов.
Задание имени шаблона сертификата для использования в RDP подключениях
В экземпляре групповой политики переходим в Computer Configuration -> Policies -> Administrative Template -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Security и выбираем Server authentication certificate template. Задаем имя шаблона который был создан ранее:
![Задание имени шаблона для использования в RDP подключениях](https://ait.in.ua/wp-content/uploads/2019/06/Zadanie-imeni-shablona-dlya-ispolzovaniya-v-RDP-podkljucheniyah-887x450.png)
Задание типа шифрования RDP подключений
Переходим в Computer Configuration -> Policies -> Administrative Template -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Security и выбираем Require use of specific layer for remote (RDP) connection. Указываем использование SSL:
![Задание уровня безопасности RDP подключений](https://ait.in.ua/wp-content/uploads/2019/06/Zadanie-urovnya-bezopasnosti-RDP-podkljuchenij-485x450.png)
Конфигурирование автоматического выпуска сертификатов
Переходим в Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Public Key Policies и выбираем Certificate Services Client – Auto-Enrollment Включаем автоматический выпуск сертификатов а так же настройки по их автоматическому обновлению:
![Настройка политики автоматического выпуска сертификатов](https://ait.in.ua/wp-content/uploads/2019/06/Nastrojka-politiki-avtomaticheskogo-vypuska-sertifikatov-879x450.png)
Проверка работоспособности
После применения групповой политики Windows клиенты должны в автоматическом порядке получить сертификат. Если этого не произошло, стоит обратить внимание на:
- Отсутствие в правильной группе безопасности, которая указана в шаблоне;
- Отсутствие к ЦС необходимых сетевых портов от клиента. Напомню, это tcp/135 (RPC) и динамические порты tcp/49152—65535.
Проверить что сертификат был успешно выпущен можно в консоли ADCS:
![Успешно выданный сертификат RDP](https://ait.in.ua/wp-content/uploads/2019/06/Uspeshno-vydannyj-sertifikat-RDP-769x450.png)
При следующем RDP подключении, стоит обратить внимание на наличие “замка” в верхнем меню RDP подключения. Нажав на этот “замок” можно удостоверится что используется нужный сертификат.
![Проверка правильности сертификата в RDP подключении](https://ait.in.ua/wp-content/uploads/2019/06/Proverka-pravilnosti-sertifikata-v-RDP-podkljuchenii-800x450.png)
На этом все. Если у вас возникли какие-либо вопросы, пожалуйста, пишите в комментарии.
Добрый день.
А подскажите плз, как можно настроить подключение к ферме RemoteAPP используя сертификат пользователя выданного доменым СА.
Спасибо.
Добрый день, имеете ввиду аутентификацию используя смарт-карту?
Ок, смоделируем ситуацию. Есть RD GW который стоит в Dmz. Есть ряд приложений которые надо опубликовать через RemoteAPP (допустим 1с). Как повысить безопасность подключения, кроме логина/пароля пользователя? На ум приходит вариант с сертификатами пользователя или ПК. Так как про ПК которые стоят удаленно, мы мало знаем, то остается только по сертификатам пользователя.
Александр, в вашем кейсе, для повышения безопасности возможно воспользоваться двумя вариантами:
1) использование смарт-карт
2) Встраивание МФА в процес аутентификации пользователей
Первый требует наличия PKI инфраструктуры и самих смарт-карт. Второй потребует внешнего MFA провайдера, например, Azure – https://azure.microsoft.com/ru-ru/pricing/details/multi-factor-authentication/ . В этом случае, провайдер интегрируется с NPS сервером, который аутентифицирует пользователей, добавляя второй фактор.
Сертификаты пользователей могут быть только на смарт-картах. Компьютерные сертификаты не применимы в процессе аутентификации на RD GTW.
А можно выдавать пользователю персональный сертификат и разрешать подключение только с использованием списка подписанных сертификатов?