Аутентификация и шифрование с применением SSL
Протокол RDP с защитой на уровне сокетов Secure Sockets Layer (SSL) — малоизвестное новшество операционной системы Windows Server 2003 Service Pack (SP) 1 и более поздних версий. Однако с помощью протокола RDP with SSL можно организовать надежное шифрование передаваемых данных и подтверждать подключение пользователей к доверенному серверу терминала. В данной статье рассказывается о том, как настроить клиенты для подключения к серверу терминала с использованием SSL и подготовить сервер терминала для обслуживания RDP-соединений с защитой на уровне сокетов.
Особенности пакета SP1
RDP — фирменный протокол Microsoft для службы Windows Terminal Services. Сквозное шифрование RDP with SSL обеспечивает дополнительный уровень шифрования для конфиденциальных данных и позволяет клиентам проверить подлинность сервера, предотвращая атаки, в ходе которых мошенник вклинивается между клиентом и сервером (man-in-the-middle). Если клиент не доверяет центру сертификации (CA), выпустившему сертификат SSL для сервера, и/или подлинность имени сервера не может быть подтверждена, то перед подключением к серверу клиент выдает предупреждение.
Использование SSL для принудительной проверки подлинности сервера и сквозное шифрование данных для RDP отличаются от протокола RDP over HTTP (реализация запланирована в Longhorn Server), который обеспечивает соединение с сервером Windows Terminal Services через RDP-порт 443. В Windows 2003 SP1 и более поздних версиях для организации сеанса сервера терминала по-прежнему необходим RDP-порт 3389.
Даже при наличии сертификата, выданного центром сертификации корпоративной сети предприятия (в отличие от стороннего CA, например, VeriSign, которому Windows доверяет по умолчанию), SSL не обеспечивает подключение к серверу через RDP известных клиентов. Запросы клиентских сертификатов не поддерживаются. Туннель Secure Shell (SSH) или IPsec VPN остается лучшим способом подключения к серверу только доверенных клиентов.
Установка и настройка клиента RDP
В системах Windows 2003 SP1 и более поздних файлы для нового клиента Remote Desktop Connection (версия 5.2.3790.1830) можно найти в папке C:windowssystem32clients sclientwin32. Следует учесть, что в настоящее время исходные файлы для установки версии 5.2 клиентской программы в рабочей станции имеются только в Windows 2003 SP1.
Файлы нужно разместить в папке win32 на общем диске, доступном для рабочих станций в сети предприятия. После этого можно вручную установить обновленный клиент Remote Desktop Connection на рабочей станции Windows XP или Windows 2000, подключившись к общему диску, запустив файл setup.exe и следуя инструкциям программы.
В версии 5.2 клиента Remote Desktop Connection появилась вкладка Security (экран 1), на которой можно указать, следует ли клиенту проверять сертификат сервера перед подключением к серверу. Возможны три варианта.
Экран 1. Новая вкладка Security клиента Remote Desktop Connection |
- No authentication - клиент не пытается проверить сертификат сервера перед подключением. Если для связи с сервером требуется аутентификация SSL, то клиент не сможет установить соединение.
- Require authentication - клиент проверяет сертификат сервера перед подключением к серверу. Если клиент не может определить подлинность сервера, то соединение с сервером установлено не будет.
- Attempt authentication - клиент проверяет сертификат сервера перед подключением к серверу. Клиент может установить соединение с сервером с SSL-аутентификацией или без нее, в зависимости от конфигурации сервера, даже если клиенту не удается полностью удостоверить подлинность сервера.
В настоящее время в Group Policy нет параметра для нового режима безопасности клиента Remote Desktop Connection. Однако можно задать значение параметра AuthenticationLevelOverride типа DWORD в разделе реестра HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server Client, чтобы установить выбранный параметр. Значение 0 соответствует режиму No authentication, 1 — Require authentication, и 2 — Attempt authentication. Параметр AuthenticationLevelOverride типа DWORD в разделе HKEY_LOCAL_MACHINESOFTWARETerminal Server Client реестра поможет распространить действие на всех пользователей рабочей станции.
Доверие сертификатам CA из корпоративной сети
Помимо настройки клиента Remote Desktop Connection, необходимо убедиться, что рабочая станция доверяет сертификатам, выданным центром сертификации в корпоративной сети. Для этого требуется выполнить следующие действия:
- Перейти по адресу http://servername/certsrv, где servername - имя сервера, на котором размещается центр сертификации в intranet.
- Установить режим Download a CA certificate, certificate chain or CRL.
- Установить режим Install this CA certificate chain.
Если есть все основания доверять центру сертификации, следует принять все предупреждения, и на экране появится сообщение об успешной установке цепочки сертификации.
Запрос сертификата для сервера терминала
Прежде чем использовать SSL для соединения с сервером терминала, необходимо запросить соответствующий сертификат из центра сертификации корпоративной сети:
- Открыть оснастку Certificates консоли управления Microsoft Management Console (MMC) на сервере терминалов от имени учетной записи локального компьютера.
- Выбрать Certificates (Local Computer) в корневом каталоге консоли, затем перейти к пункту Options меню View. Выбрать Certificate Purpose в разделе Organize view mode by и нажать кнопку OK.
- Щелкнуть правой кнопкой мыши Server Authentication и выбрать Request new certificate в разделе All tasks.
- Нажать кнопку Next на экране приветствия. Выбрать режим Server Authentication (или Domain Controller Authentication). Установить флажок Advanced и нажать кнопку Next.
- Убедиться, что в качестве поставщика службы шифрования выбран Microsoft RSA SChannel Cryptographic Provider, а длина ключа - 1024. Нажать кнопку Next.
- Перейти к центру сертификации корпоративной сети (если он еще не выбран) и выбрать его. Нажать кнопку Next.
- Ввести понятное имя и описание сертификата. Нажать кнопку Next, а затем Finish.
После этого на экране должно появиться сообщение, что запрос к центру сертификации корпоративной сети был успешным.
Настройка сервера терминала на использование SSL with RDP
Чтобы настроить RDP для использования SSL, следует открыть Terminal Services Configuration из меню Administrative Tools на сервере терминала. В разделе Connections правой панели следует щелкнуть правой кнопкой мыши RDPTcp и выбрать пункт Properties, чтобы открыть диалоговое окно RDP-Tcp Properties (экран 2).
Экран 2. Настройка конфигурации RDP-Tcp |
Сначала необходимо выбрать сертификат, который будет использоваться соединением. Нажмите кнопку Edit на вкладке General. В диалоговом окне Select Certificate (экран 3) можно выбрать один из сертификатов, выданных серверу центром сертификации. Это должен быть сертификат, созданный на предыдущем этапе.
Экран 3. Выбор сертификата для использования с RDP |
В поле Security layer вкладки General появилось два новых параметра в дополнение к RDP Security layer. Параметр Negotiate устанавливает самый высокий уровень шифрования (TLS 1.0), который применяется, если его поддерживает клиент; в противном случае используется стандартный RDP. Этот режим полезен как временная мера на период развертывания на рабочих станциях нового клиента Remote Desktop Connection. В режиме SSL разрешается использовать только TLS 1.0. Следует отметить, что параметр SSL доступен только после того, как выбран сертификат. Параметр RDP Security layer обеспечивает стандартное для продуктов Microsoft шифрование данных, которое применялось в прошлых версиях RDP.
Тестируем соединение
После того как сервер терминала будет настроен на использование SSL, можно подключиться к серверу с рабочих станций. На экране 4 показан образец предупреждения, выдаваемого, если вместо указанного в сертификате полного имени домена введен IP-адрес сервера и если клиент не доверяет CA, выдавшему серверу сертификат.
Экран 4. Образец уведомления безопасности |
Следует всегда использовать полное имя сервера терминала в клиенте Remote Desktop Connection для безошибочного подключения. Предупреждение также указывает, что с сертификатом сервера не все в порядке. В действительности это не так; просто клиент не доверяет CA, выдавшему сертификат серверу. Обойти эту проверку и установить соединение нельзя, так как клиент Remote Desktop Connection установлен в режим Require authentication.
После загрузки и установки корневого сертификата центра сертификации на рабочей станции и ввода FQDN-сервера в клиенте Remote Desktop Connection будет установлено безопасное SSL-соединение с сервером. На безопасное соединение указывает маленький значок замка в правом верхнем углу экрана. Щелкнув на значке, можно получить информацию о сертификате сервера.
RDP with SSL — удачное дополнение Windows 2003 SP1, мало рекламируемое Microsoft. Полезность новой функции ограничена из-за невозможности сервера терминалов сделать запрос сертификата клиента. Есть надежда, что этот недостаток будет устранен в RDP over HTTP для Longhorn Server.
Рассел Смит - Независимый ИТ-консультант. Работает в области ИТ в течение пяти лет, специализируется на управлении системами. rms@russell-smith.net
Моментальный снимок решения
Задача: дать пользователям возможность проверить подключение к доверенному серверу Windows Terminal Services; обеспечить надежное принудительное шифрование RDP-трафика.
Решение: использовать SSL-функцию клиента Remote Desktop Connection в Windows 2003 SP1 и более поздних версиях ОС для проверки подлинности сервера и шифрования трафика.
Требуемые ресурсы: Windows 2003 SP1 или более поздняя версия ОС на сервере терминала; XP или Windows 2000 на клиентских ПК.
Уровень сложности: ***00.
Этапы решения:
- Установить и настроить программное обеспечение RDP-клиента на клиентской системе.
- Настроить клиентский компьютер на доверие к сертификатам, выданным CA корпоративной сети.
- Запросить сертификат для сервера терминала.
- Настроить сервер терминала на использование SSL.
- Протестировать соединение.