У цій статті ми покажемо, як використовувати довірені SSL / TLS сертифікати для захисту RDP підключень до комп’ютерів і серверів Windows в домені Active Directory. Ці СЕРТФІКАТА ми будемо використовувати замість самоподпісанного RDP сертифікатів (у користувачів з’являється попередження про неможливість перевірки достовірності при підключенню до RDP хосту з таким сертифікатом). У цьому прикладі ми налаштуємо спеціальний шаблон для випуску RDP сертифікатів в Certificate Authority і налаштуємо групову політику для автоматичного випуску і прив’язки SSL / TLS сертифіката до служби Remote Desktop Services.

Попередження про самоподпісанного сертифікаті RDP

За замовчуванням в Windows для захисту RDP сесії генерується самоподпісанний

сертифікат. В результаті при першому підключенні до RDP / RDS сервера через клієнта mstsc.exe, у користувача з’являється попередження:

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

Щоб продовжити встановлення RDP підключенні користувач повинен натиснути кнопку Так. Щоб RDP попередження не з’являлося кожен раз, можна включити опцію “Більше не показувати запит про підключення до цього комп’ютера».
rdp підключення Помилка сертифіката: сертифікат виданий не мають довіри центром сертифікації

При цьому відбиток RDP сертифіката зберігається на клієнті в параметрі CertHash в гілці реєстру з історією RDP підключень (HKEY_CURRENT_USER Software Microsoft Terminal Server Client Servers ). Якщо ви приховали повідомлення про неможливість перевірити справжність RDP сервера, щоб скинути настройки, видаліть ключ з відбитком сертифіката з реєстру.

відбиток RDP СЕРТФІКАТА зберігається на клієнті в реєстрі

Незважаючи на те, що для підключення використовується самоподпісанний сертифікат, ваше RDP підключення захищене, а трафік зашифрований.

Створюємо шаблон RDP сертифіката в центрі сертифікації (CA)

Спробуємо використовувати для захисту RDP підключень довірений SSL / TLS сертифікат, виданий корпоративним центром сертифікації. За допомогою такого сертифіката користувач може виконати перевірку справжності RDP сервера при підключенні. Припустимо, що у вас в домені вже розгорнуто корпоративної центр сертифікації (Microsoft Certificate Authority), в цьому випадку ви можете налаштувати автоматичну видачу та підключення сертифікатів всім комп’ютерам і серверам Windows в домені.

Н на вашому CA потрібно створити новий тип шаблону сертифіката для RDP / RDS серверів.

  1. Запустіть консоль Certificate Authority і перейдіть в секцію Certificate Templates;
  2. Зробіть копію шаблону сертифіката Computer (Certificate Templates -> Manage -> Computer -> Duplicate);
    Microsoft Certificate Authority створити новий шаблон СЕРТФІКАТА для комп'ютерів і серверів
  3. на вкладці Загальні вкажіть ім’я нового шаблону сертифіката – RDPTemplate. Переконайтеся, що значення поля Назва шаблону повністю збігається з Відображувана назва шаблону;
    RDPTemplate - новий шаблон СЕРТФІКАТА для RDP підключень
  4. на вкладці Сумісність вкажіть мінімальну версію клієнтів у вашому домені (наприклад, Windows Server 2008 R2 для CA і Windows 7 для клієнтів). Тим самим будуть використовуватися більш стійкі алгоритми шифрування;
  5. Тепер на вкладці Розширення в політиці додатків (Application policy) потрібно обмежити область використання такого сертифіката тільки для Аутентифікація віддаленого робочого столу (Вкажіть наступний object identifier – 1.3.6.1.4.1.311.54.1.2). Натисніть Add -> New, створіть нову політику і виберіть її;
    політика СЕРТФІКАТА - для Remote Desktop Authentication
  6. В налаштуваннях шаблону сертифіката (Application Policies Extension) видаліть всі політики окрім Аутентифікація віддаленого робочого столу;шаблон сертифікату Remote Desktop Authentication
  7. Щоб використовувати цей шаблон RDP сертифікатів на контролерів домену, відкрийте вкладку Безпека, Додайте групу Контролери домену і включіть для неї опцію Зареєструйтесь і Автореєстрація;
    права для авто випуску сертифікатів rdp
  8. Збережіть шаблон сертифікату;
  9. Тепер в оснащенні Certificate Authority, клацніть по папці Certificate Templates, виберіть Нове -> Шаблон сертифіката для видачі -> виберіть створений шаблон RDPTemplate.
    новий шаблон СЕРТФІКАТА в CA для rdp

Налаштування групової політики для видачі RDP сертифікатів

Тепер потрібно налаштувати доменну політику, яка буде автоматично призначати RDP сертифікат комп’ютерів / серверів згідно налаштованого шаблону.

Передбачається, що всі комп’ютери домену довіряють корпоративному центру сертифікації, тобто кореневий сертифікат через GPO доданий в довірені кореневі центри сертифікації.
  1. Відкрийте консоль управління доменними груповими політиками gpmc.msc, створіть новий об’єкт GPO і призначте його на OU з RDP / RDS серверами або комп’ютерами, для яких потрібно автоматично видавати TLS сертифікати для захисту RDP підключення;
  2. Перейдите в раздел GPO: Конфігурація комп’ютера -> Політика -> Адміністративні шаблони -> Компоненти Windows -> Послуги віддаленого робочого столу -> Хост сеансу віддаленого робочого столу -> Безпека. Увімкніть політику Шаблон сертифіката автентифікації сервера. Вкажіть ім’я шаблону CA, який ви створили раніше (RDPTemplate);
    політика RDP сертифіката Server Authentication Certificate Template
  3. Потім в цьому ж розділі GPO включите політику Вимагати використання певного рівня безпеки для віддалених (RDP) з’єднань і встановіть для неї значення SSL;політика Вимагати використання певного рівня безпеки для віддалених (RDP) з'єднань
  4. Для автоматичного продовження RDP сертифіката, перейдіть в розділ GPO Computer configuration -> Windows settings -> Security Settings -> Public Key Policies і включіть політику Клієнт служб сертифікації – Властивості автоматичної реєстрації. Виберіть опції «Поновити сертифікати, термін дії яких минув, оновити сертифікати, що очікують на розгляд, та видалити скасовані сертифікати» та «Оновити сертифікати, що використовують шаблони сертифікатів»;
    політика автоподовження СЕРТФІКАТА Certificate Services Client - Auto-Enrollment Properties
  5. Якщо ви хочете, щоб клієнти завжди перевіряли сертифікат RDP сервера, вам потрібно налаштувати політику Налаштувати автентифікацію для клієнта = Попередити мене, якщо автентифікація не вдається (секція Конфігурація комп’ютера GPO -> Політика -> Адміністративні шаблони -> Компоненти Windows -> Налаштування віддаленого робочого столу -> Клієнт підключення віддаленого робочого столу);
  6. Якщо потрібно, можете через політики брандмауера відкрити вхідний RDP порт TCP / UDP 3389;
  7. Залишилося відновити політики на клієнті, запустити консоль сертифікатів комп’ютера (Certlm.msc), і перевірити, що в розділі Personal -> Certificates з’явився сертифікат для Remote Desktop Authentication, виданий вашим CA.
    Якщо політики не застосувались, для діагностики GPO скористайтеся утилітою gpresult і цією статтею.

    TLS СЕРТФІКАТА для Remote Desktop Authentication

Для застосування нового RDP сертифіката, запустіть службу Remote Desktop Services:

Get-Service TermService -ComputerName msk-dc01| Restart-Service –force –verbose

Тепер при RDP підключенні до сервера перестане з’являтися запит на Довірити сертифікату (щоб з’явився запит про довіру сертифікату, підключіться до сервера по IP адресою замість FQDN імені сервера, для якого випущений сертифікат). Натисніть кнопку “Подивитися сертифікат”, перейдіть на вкладку “Склад”, скопіюйте значення поля “Відбиток сертифіката”.
перевірка rdp підключення з новим СЕРТФІКАТА

Також можете в консолі Certification Authority в секції Видані сертифікати перевірити, що за шаблоном RDPTemplate був виданий сертифікат певного Windows комп’ютера / сервера. Також перевірте значення Thumbprint сертифіката:

Відбиток у сертифікаті

Тепер порівняйте отримані дані з відбитком сертифіката, який використовується службою Remote Desktop Service. Ви можете подивитися значення відбитка сертифіката служби RDS в реєстрі (гілка HKLM: SYSTEM CurrentControlSet Control Terminal Server WinStations, параметр TemplateCertificate) Або командою PowerShell: Get-WmiObject -Class "Win32_TSGeneralSetting" -Namespace rootcimv2terminalservices|select SSLCertificateSHA1Hash
отримати відбиток rdp сертифіката

Тепер, при підключенні до віддаленому столу будь-якого сервера або комп’ютера, на який діє ця політика, ви не побачите попередження про недовірених RDP сертифікаті.

Підписуємо RDP файл і додаємо відбиток довіреної RDP сертифіката

Якщо у вас відсутній CA, але ви хочете, щоб при підключенні до RDP / RDS сервера у користувачів не виникало попередження, ви можете додати сертифікат в довірені на комп’ютерах користувачів.

Як описано вище отримаєте значення відбитка (Thumbprint) RDP сертифіката:

Get-WmiObject -Class "Win32_TSGeneralSetting" -Namespace rootcimv2terminalservices|select|select SSLCertificateSHA1Hash

Використовуйте цей відбиток для підписування .RDP файлу за допомогою RDPSign.exe:

rdpsign.exe /sha256 65A27B2987702281C1FAAC26D155D78DEB2B8EE2 "C:UsersrootDesktoprdp.rdp"

Тепер через GPO додамо цей відбиток сертифіката в довірені у користувачів. Вкажіть відбитки (через крапку з комою) в політиці Вкажіть відбитки пальців SHA1 сертифікатів, що представляють довірених видавців .rdp (Вказати відбитки SHA1 сертифікатів, що представляють довірених видавців RDP) в секції Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Settings -> Remote Desktop Connection Client.

політика Вказати відбитки SHA1 сертифікатів, що представляють довірених видавців RDP

Щоб працював прозорих RDP вхід без введення пароля (RDP Single Sign On), потрібно налаштувати політику Allow delegation defaults credential і вказати в ній імена RDP / RDS серверів (див. Статтю).

Leave a Reply

Your email address will not be published. Required fields are marked *