С ростом популярности виртуальных приложений и программ, предоставляемых как услуги (Software as a Service, SaaS), стираются различия между удаленными, локальными и виртуализованными приложениями. Среди многочисленных усовершенствований служб Terminal Services в Windows Server 2008 — возможность представить удаленные приложения так, как будто они выполняются локально на компьютерах пользователей, а не в окне удаленного рабочего стола, как в предшествующих версиях Windows Server.

Такая «локальность» дает несколько преимуществ, в частности повышается удобство работы, улучшается интеграция с рабочими столами пользователей и появляется возможность открывать программы на разных серверах терминалов одновременно без необходимости управлять окном удаленного рабочего стола на каждом сервере. Но у удобного визуального восприятия есть и оборотная сторона — иногда пользователям бывает трудно отличить локальные приложения от удаленных. Более того, сопоставляя локальные ресурсы с сервером терминалов, пользователи рискуют открыть конфиденциальные данные, неосмотрительно устанавливая связь с компьютером злоумышленника. Не следует возлагать на пользователя заботу о безопасности.

Чтобы устранить эту проблему, специалисты Microsoft предусмотрели возможность цифровой подписи файлов Remote Desktop Protocol (RDP) и определили список доверенных издателей в групповой политике. В результате администраторы могут принимать только файлы RDP, подписанные с использованием доверенных сертификатов. Таким образом уменьшается вероятность, что пользователи по ошибке подключатся и передадут данные на сервер терминалов вне компании.

Далее в статье будет показано, как запросить сертификат из удостоверяющего центра, интегрированного с Active Directory (AD), подписать файлы RDP удаленных приложений и настроить групповую политику на разрешение использования только файлов RDP, подписанных посредством указанного сертификата. Для этого требуется домен AD Windows Server 2008, член домена сервер Server 2008 с установленными службами терминалов и сертификатов AD и рабочая станция Windows Vista SP1 или Windows XP SP 3, присоединенная к домену.

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

Файлы RDP должны быть подписаны с использованием SSL или сертификата подписи кода. Пользователи Terminal Services Gateway могут подписывать файлы RDP с применением существующего сертификата SSL. В этом случае используется стандартный сервер служб терминалов и требуется получить сертификат подписи кода от внутреннего удостоверяющего центра. Это означает, что сертификату будут доверять только клиенты корпоративной сети, если он не подписан также общедоступным удостоверяющим центром.

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

  1. Нажмите кнопку Start, перейдите к Administrative Tools, Certification Authority и откройте консоль управления (MMC) центра сертификации.
  2. Разверните удостоверяющий центр в разделе Certification Authority (Local) и щелкните Certificate Templates, чтобы просмотреть текущие задействованные шаблоны.
  3. Щелкните правой кнопкой мыши на Certificate Templates и выберите пункт New, Certificate Template to Issue из контекстного меню.
  4. В диалоговом окне Enable Certificate Templates выберите элемент Code Signing из списка и нажмите OK.
  5. В консоли Certification Authority MMC, в списке шаблонов сертификатов, должен появиться элемент Code Signing. Закройте консоль Certification Authority MMC.

Теперь, когда можно запросить сертификат подписи кода у своего удостоверяющего центра, необходимо зарегистрироваться на сервере терминалов и запросить сертификат. Зарегистрируйтесь с правами администратора домена.

  1. Введите MMC в поле Search меню Start и нажмите Enter.
  2. В окне MMC выберите команду Add/Remove Snap-In из меню File.
  3. В диалоговом окне Add or Remove Snap-ins выберите элемент Certificates в разделе Available snap-ins и нажмите кнопку Add в центре окна. Выберите My user account в диалоговом окне Certificates snap-in и нажмите Finish.
  4. Щелкните OK.
  5. В консоли MMC разверните Certificates — Current User, затем Personal.
  6. Щелкните правой кнопкой мыши на папке Certificates под Personal и выберите All Tasks, Request New Certificate в контекстном меню.
  7. Нажмите кнопку Next на экране Before You Begin в диалоговом окне Certificate Enrollment. Выберите Code Signing в разделе Request Certificates и щелкните Enroll.
  8. В разделе Certificate Installation Results должно быть отображено состояние Succeeded. Нажмите кнопку Finish. Новый сертификат подписи кода должен появиться в личном хранилище сертификатов, как показано на экране 1.
  9. Дважды щелкните на сертификате подписи кода в центральной области и перейдите на вкладку Details.
  10. Убедитесь, что Show имеет значение All и просмотрите нижнюю часть поля, которое представляет собой отпечаток SHA1, показанный на экране 2. Запомните значение или скопируйте его в Notepad, так как оно потребуется позднее.
  11. Нажмите OK в диалоговом окне Certificates, а затем закройте консоль Certificates MMC.

Экран 1. Новый сертификат в хранилище сертификатов

Экран 2. Просмотр деталей сертификата 

Подписывание файлов RDP

Разместив сертификат подписи кода на сервере терминалов, можно создать подписанные файлы RDP для существующих или новых удаленных приложений. На сервере терминалов откройте диспетчер Terminal Services RemoteApp Manager.

  1. Чтобы открыть TS RemoteApp Manager, нажмите кнопку Start и перейдите к Administrative Tools, Terminal Services.
  2. Справа от Digital Signature Settings щелкните Change в разделе Overview окна TS RemoteApp Manager.
  3. В диалоговом окне RemoteApp Deployment Settings должна быть выбрана вкладка Digital Signature и установлен флажок Sign with a digital certificate.
  4. В разделе Digital certificate details нажмите Change. В диалоговом окне Select Certificate выберите из списка сертификат подписи кода и нажмите кнопку OK.
  5. Детали сертификата должны появиться в окне RemoteApp Deployment Settings, как показано на экране 3. Нажмите ОК.

Экран 3. Детали сертификата для файла RDP 

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

  1. Щелкните Add RemoteApp Programs в области Actions справа в диспетчере TS RemoteApp Manager. Нажмите кнопку Next в мастере RemoteApp Wizard.
  2. Выберите WordPad в списке RemoteApp Programs и щелкните Next.
  3. Нажмите кнопку Finish на экране Review Settings.
  4. WordPad должен появиться в нижней части окна TS RemoteApp Manager под RemoteApp Programs (экран 4). Выберите WordPad под RemoteApp Programs и щелкните Create.rdp File под WordPad в области Actions.
  5. Нажмите кнопку Next в мастере RemoteApp Wizard, оставив на экране Specify Package Settings параметры, принятые по умолчанию. Убедитесь, что файл подписан с использованием сертификата, и щелкните Next. Нажмите кнопку Finish на экране Review Settings.

Экран 4. Настройка WordPad в качестве запускаемого удаленно приложения 

Местоположение по умолчанию для файлов RDP, созданных диспетчером TS RemoteApp Manager (c:program filespackaged programs), должно быть открытым и содержать новый файл, wordpad.rdp.

Настройка доверенных издателей в групповой политике

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

  1. Откройте консоль управления групповой политики (GPMC) и разверните лес, домен и папку Group Policy Objects.
  2. Щелкните правой кнопкой мыши папку Group Policy Objects и выберите из меню пункт New. Дайте новому объекту GPO имя RemoteApp Trusted Publishers и нажмите OK.
  3. Щелкните правой кнопкой мыши новый объект GPO в разделе Group Policy Objects и выберите из меню команду Edit.
  4. В окне Group Policy Editor под Computer Configuration разверните Policies, Administrative Templates, Windows Components, Terminal Services и щелкните Remote Desktop Connection Client.
  5. В правой части окна отключите первые два параметра, Allow.rdp files from valid publishers and user's default.rdp settings и Allow.rdp files from unknown publishers.
  6. Перейдите в окно GPMC и привяжите новый объект GPO к домену. Щелкните правой кнопкой мыши на домене, в данном случае ad.contoso.com, в левой части GPMC и выберите из меню пункт Link an Existing GPO.
  7. В диалоговом окне Select GPO выберите RemoteApp Trusted Publishers GPO из списка и нажмите кнопку OK.

Зарегистрируйтесь на рабочей станции в качестве администратора домена и выполните обновление групповой политики, запустив

gpupdate/force

из командной строки. После обновления групповой политики запустите wordpad.rdp из папки Packaged Programs на сервере терминалов. Файл должен быть блокирован.

Продолжим настройку объекта GPO в редакторе Group Policy Management Editor. Сертификат подписи кода добавляется к списку доверенных издателей.

  1. Дважды щелкните Specify SHA 1 thumbprints of certificates representing trusted.rdp publishers в правой области окна редактора.
  2. Выберите Enabled в диалоговом окне параметров политики и введите отпечаток SHA 1 для сертификата подписи кода, сохраненного ранее. Отпечаток нужно вводить без пробелов.

На рабочей станции обновите групповую политику, как показано выше. На этот раз wordpad.rdp должен выполняться без предупреждений.

Ограничение доступа

Очень важно ограничивать такую мощную функциональность, как Remote Desktop Connection, на углубленном уровне. В дополнение к диспетчеру TS RemoteApp Manager компания Microsoft предоставляет инструмент командной строки для подписывания файлов RDP, rdpsign.exe. Если добавить Terminal Services Web Access к описанной выше конфигурации, сертификаты и групповая политика будут применяться также к удаленным приложениям, запускаемым из сайта TS Web Access. Как и политика ограничений программ, ограничение отдельных файлов RDP на основе цифровых сертификатов снижает вероятность подключения пользователей к любым серверам терминалов, кроме разрешенных системными администраторами.

Рассел Смит (rms@russell-smith.net) — независимый ИТ-консультант, специализируется на управлении системами


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

Решение
Используйте клиент Remote Desktop Connection 6.1 с файлами RDP с цифровой подписью, затем определите список доверенных издателей в групповой политике.

Необходимые ресурсы
Домен Windows Server 2008 Active Directory (AD), член домена Server 2008 с установленными службами Terminal Services и AD Certificate Services и рабочая станция Windows Vista SP1 или Windows XP SP 3, присоединенная к домену.

Этапы решения

  1. Добавьте подписывание кода к списку шаблонов сертификатов в удостоверяющем центре.
  2. Зарегистрируйтесь на сервере терминалов и запросите сертификат.
  3. Подготовьте подписанные файлы RDP удаленных приложений.
  4. Настройте доверенных издателей в групповой политике.

Уровень сложности
3 из 5