Как обеспечить безопасность удаленных соединений к компьютеру с помощью аутентификации TLS/SSL

Published on Февраль 3, 2009 by   ·   Один комментарий

Мы рады приветствовать в нашей команде авторов Мартина Кайера (Martin Kiaer), т.к. он представляет свою первую статью для читателей наших порталов. В этой статье рассказывается о том, как включить аутентификацию с помощью TLS/SSL при установлении соединения с удаленным рабочим столом компьютера, работающего под управлением операционной системы Windows Server 2003.

Не зависимо от того, включили ли вы терминальные службы Microsoft Windows Terminal Services для конечных пользователей, или для подключения к удаленному рабочему столу (remote desktop) в Windows Server 2003 в административных целях, в зависимости от того, как вы настроили свой сервер, могут возникнуть проблемы с безопасностью. Однако, с появлением пакета обновлений Service Pack 1 для операционной системы Windows Server 2003, у вас есть возможность установить безопасное соединение по протоколу Remote Desktop Protocol (RDP) к вашему серверу с помощью аутентификации TLS/SSL.

Основные угрозы

Давайте начнем с рассмотрения некоторых основных угроз.

Если ваша политика для паролей (password policy) в домене настроена таким образом, что после определенного количества попыток ввода паролей, учетная запись блокируется, то ваш сервер с включенными на нем терминальными службами Terminal Services (RDP) становится мишенью для атаки DoS (Denial of Service или отказ в обслуживании) против вашего домена. Некто может легко подключиться к терминальному серверу (terminal server) и попытаться войти с помощью различных имен пользователей и паролей. В зависимости от политики для паролей (password policies), имя пользователя (username), с помощью которого он попытается это сделать, может стать заблокированным, в результате чего настоящий пользователь не сможет войти в систему.

В дополнение к этому, если используется слабая политика для паролей, злоумышленник может воспользоваться таким инструментом, как TScrack 2.0, для подбора пароля для серверов, на которых включены терминальные службы Windows Terminal Services. Этот инструмент между прочим, также позволяет осуществить упомянутую выше атаку DoS (отказ в обслуживании).

Угроза становится еще опаснее, если сервер, на котором запущены терминальные службы Microsoft Windows Terminal Services доступен из интернет по RDP соединению по порту 3389, даже если вы используете для защиты такой мощный брандмауэр (firewall), как ISA Server. Этот сценарий наиболее часто встречается для пользователей серверов для малого бизнеса Microsoft Small Business Server.

Однако, есть и хорошая новость, которая заключается в том, что вы можете избежать эти атаки. Решение заключается в использовании компьютерной аутентификации, основанной на сертификатах (certificate based computer authentication). Если компьютер не может пройти аутентификацию при предоставлении правильного сертификата терминальному серверу (terminal server), к которому он пытается подключится, то соединение RDP будет прекращено до того, как у пользователя будет возможность войти.

Как подключить аутентификацию TLS/SSL

Перед тем, как начать, есть несколько предварительных условий, о которых вы должны узнать.

На серверной стороне необходимо следующее:

  • Убедитесь, что ваш терминальный сервер (terminal server) работает под управлением операционной системы Windows Server 2003 с установленным пакетом обновлений SP1
  • Вам также понадобится установить TLS/SSL сертификат со следующими спецификациями:
    • Сертификат должен быть связан с компьютером
    • Назначение сертификата должно заключаться в аутентификации сервера (server authentication)
    • Закрытый ключ сертификата (certificate private key) должен быть доступен
    • Т.к. сертификат связан с компьютером, то он должен хранится в хранилище сертификатов компьютера (computer account certificate store) на терминальном сервере (terminal server)

На клиентской стороне вам необходимо:

  • Компьютер клиента должен работать под управлением операционной системы Microsoft Windows 2000, Windows XP, Windows Server 2003 или Windows Vista
  • Для Windows 2000, XP и Windows Server 2003 клиент удаленного стола (remote desktop client) должен быть версии 5.2 или выше. Это клиент можно найти в следующей папке на сервере Windows Server 2003 SP1:

    %systemroot%\system32\clients\tsclient\win32\msrdpcli.msi

  • Последнее важное требование заключается в том, что клиент должен доверять корневому CA, который выпустил сертификат для компьютера, расположенного на терминальном сервере (terminal server). Это позволит гарантировать установление соединения TLS/SSL.

Теперь, когда вы знаете, что это такое, пришло время посмотреть, как все это работает.

Запрос сертификата TLS/SSL

Первое, что нам необходимо сделать, это установить сертификат TLS/SSL, связанный с компьютером на терминальный сервер. Сертификат можно получить двумя способами:

  • Вы можете использовать более простой и менее безопасный способ, для которого не нужно PKI или значение сертификата (certificate authority). Для этого можно использовать инструмент под названием SelfSSL.exe, который входит в состав IIS 6.0 resource kit. Вы можете загрузить resource kit отсюда.
  • Или вы можете получить сертификат SSL certificate от CA сторонних производителей
  • Еще один способ заключается в использовании вашего собственного сертификата из вашей PKI расположенной в Microsoft Certificate Services.

В этой статье, мы создадим сертификат SSL certificate, выпущенный PKI расположенной в Microsoft Certificate Services. И на это есть причины. Благодаря использованию вашего собственного Microsoft PKI, вы получаете четкий контроль над клиентами, которые должны доверять корневому CA, отвечающему за выпуск сертификата TLS/SSL. В результате этого мы обеспечим то, что только проверенным компьютерам будет позволено пройти аутентификацию на вашем терминальном сервере.

Предположим, что вы уже установили службу сертификатов Microsoft Certificate Services где-то в вашей инфраструктуре. Процесс, который вы должны использовать для запроса сертификата TLS/SSL, зависит от того, запрашиваете ли вы сертификат с корпоративной (enterprise) CA (интегрированной в Active Directory), или с отдельно стоящей CA. В этой статье мы предполагаем, что используется корпоративный CA.

  1. Из меню Start Menu (пуск) на терминальном сервере, выберите Run (выполнить), наберите mmc, а затем нажмите на кнопку OK.
  2. Из меню File Menu выберите Add/Remove Snap-in.

    Удаленный рабочий стол service pack

Рисунок 1

  1. Нажмите на кнопку Add (добавить). В окне Add Standalone Snap-in выберите Certificates (сертификаты), а затем нажмите на кнопку Add.
  2. Выберите Computer account (учетная запись компьютера), а затем нажмите на кнопку Next (далее).

    Сертификаты для терминального сервера

Рисунок 2

  1. Выберите Local computer (the computer this console is running on) и нажмите на кнопку Finish (завершить).
  2. В окне Add Standalone Snap-in нажмите на кнопку Close (закрыть), а затем нажмите на кнопку OK в окне Add/Remove Snap-in.
  3. В консоли MMC выберите Certificates (Local Computer)
  4. Выберите View Menu, и нажмите на Options (настройки).
  5. В диалоговом окне View Options выберите Certificate purpose (назначение сертификата), а затем нажмите на кнопку OK.

    Безопасное соединение с сервером терминалов

Рисунок 3

  1. Перейдите к Server Authentication (аутентификация сервера) в правом окне, выберите All Tasks (все задачи), и нажмите на кнопку
    Request New Certificate (запросить новый сертификат).
  2. Откроется помощник Certificate Request Wizard. Нажмите на кнопку Next.
  3. В списке типов сертификатов Certificate types list, выберите Server Authentication или Computer в зависимости от вашей установки служб сертификатов Certificates Services, поставьте галочку в поле Advanced (дополнительно), и нажмите на кнопку Next.

    Mssql ssl certsrv

Рисунок 4

Примечание: Если ваш сервер сертификатов (certificate server) также является контроллером домена (domain controller), что бывает очень часто для серверов Microsoft Small Business Server, то вы должны выбрать из списка Domain Controller Authentication (аутентификация на контроллере домена).

  1. (Этот этап и эго параметры могут изменяться в зависимости от типа сертификата).
    В следующем окне вы увидите Cryptographic Service Providers list (список криптографических поставщиков). Из него выберите поставщика Microsoft RSA SChannel Cryptographic Provider. Если возможно, то оставьте значение Key Length (длина ключа) равным 1024. И снова, если возможно, поставьте галочку в поле Mark this key as exportable, что позволит вам скопировать сертификат в случае необходимости на другой компьютер. Нажмите на кнопку Next.
  2. Найдите название вашей Certification Authority в окне CA и нажмите на кнопку Next. Наберите название для сертификата в поле Friendly name. Нажмите на кнопку Next, а затем нажмите на кнопку Finish (завершить).

Настройка терминальных служб Terminal Services

Давайте продолжим и подключим TLS/SSL в терминальных службах на сервере.

Из меню Administrative Tools (администрирование) запустите инструмент под названием Terminal Services Configuration Tools. Выберите в левом окне Connections (подключения). В правом окне щелкните правой кнопкой мыши на RDP-Tcp, и выберите Properties (свойства).

Certificate based authentication

Рисунок 5

Сперва мы должны выбрать сертификат, который мы создали в предыдущем разделе.

Как обеспечить безопасность удаленных соединений?

Рисунок 6

  1. В закладке General (общие) нажмите на кнопку Edit (редактировать).

    Как обеспечить безопасность удаленных соединений?

Рисунок 7

  1. Выберите сертификат и нажмите на кнопку OK.

    Как обеспечить безопасность удаленных соединений?

Рисунок 8

  1. В той же закладке General выберите SSL в качестве уровня безопасности (security layer) и установить уровень шифрования (encryption level) на High (высокий), после чего нажмите на кнопку OK.

Теперь сервер готов, поэтому давайте перейдем к рабочей станции (workstation).

Настройка рабочей станции

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

  1. В браузере (browser) вашего клиента введете следующий URL:

    http://server/certsrv

    где server необходимо заменить названием компьютера с CA.

    Сертификат терминальный сервер

Рисунок 9

  1. Нажмите на ссылку Download a CA certificate, certificate chain, or CRL (загрузить сертификат).
  2. Наверху экрана нажмите на ссылку Install this CA certificate chain (установить эту цепочку сертификатов).

    Замена сертификата rdp

Рисунок 10

  1. У вас могут запросить подтверждение – доверяете ли вы web сайту или нет. Выберите Yes и снова нажмите на кнопку Yes для того, чтобы установить сертификат.

Следующее, что нам нужно сделать на клиенте – обновить клиента удаленного рабочего стола (remote desktop client) до версии 5.2 или выше. Если вы используете операционную систему Windows Server 2003 с пакетом обновления SP1 или Vista, то шаг 1 и 2 можно пропустить.

  1. Как указано в необходимых требованиях, вы можете найти поддерживаемый клиент удаленного рабочего стола (remote desktop client) в следующем месте на терминальном сервере:

    %systemroot%\system32\clients\tsclient\win32\msrdpcli.msi

    Просто установите клиента удаленного рабочего стола (remote desktop client) из этого места.

  2. (Это шаг дополнительный). Новый удаленный клиент рабочего стола не обновит встроенный удаленный клиент рабочего стола в Windows XP. Поэтому, для того чтобы избежать появления двух различных версий клиента удаленного рабочего стола (remote desktop client) на вашем компьютере просто скопируйте два файла из папки %ProgramFiles%\Remote Desktop в папки, где вы сможете заменить существующие файлы:

    %Systemdrive%\Windows\System32\dllcache
    %
    Systemdrive%\Windows\System32

    Примечание: В результате работы защиты файлов Windows File Protection, может появится предупреждение. Нажмите на кнопку Yes для подтверждения того, что вы действительно хотите перезаписать файлы.

  3. Далее запустите клиента удаленного рабочего стола (Remote Desktop client) и выберите закладку Security (безопасность), которая появилась после обновления клиента удаленного рабочего стола (remote desktop client).

    Удаленный рабочий стол service pack

Рисунок 11

  1. Из списка аутентификаций Authentication list выберите либо Attempt Authentication (рекомендуется), либо Require Authentication.

    Сертификаты для терминального сервера

Рисунок 12

  1. Теперь вы можете подключится и войти на терминальный сервер, задав FQDN название терминального сервера (terminal server). Обратите внимание на маленький символ ключа в верхнем левой углу, если вы работаете в полноэкранном режиме.
  2. Если вы захотите, то можете протестировать работу с клиента, который не доверяет Certificate Authority в вашей инфраструктуре и увидеть различия. Если вы правильно настроили терминальный сервер, то от не проверенного компьютера вам не удастся подключится к серверу.

Перед тем, как вы приступите

Этапы, описанные в этой статье, подразумевают, что ваши терминальные службы работают в среде домена Active Directory, а также используют ваш собственный Microsoft PKI. Однако стоит заметить, что это необязательно, до тех пор, пока вы не фокусируетесь на безопасности, когда компьютеры должны доверять иерархии CA.

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

В нашем примере мы использовали встроенный mmc для запроса сертификата. Вы также можете выполнить расширенный запрос сертификата из браузера и указать сертификат по умолчанию для веб сайта на CA, выпускающем сертификаты. Еще один способ заключается в использовании помощника по запросам сертификатов Certificate Request Wizard, который находится в IIS, и который обычно используется для запроса SSL сертификатов.

Если вы уже установили SSL сертификат на сервере для других целей, то продолжайте и используйте этот сертификат для ваших терминальных служб Microsoft Terminal Services. Просто убедитесь, что вы по-прежнему контролируете, кто может доверять вашей иерархии CA, а также проверьте, что URL, связанный с существующим сертификатом SSL certificate, также является FQDN, которое можно использовать для установления RDP соединения к терминальному серверу (terminal server), как из внутренней сети, так и из интернет.

Источник www.windowsecurity.com





Смотрите также:

Tags: , , , , ,

Readers Comments (Один комментарий)

  1. SMTP Server Open mail relays:

    Предоставляю доступ к «SMTP Server Open mail relays»
    Более полная информация по параметрам серверов, при контакте.

    «ШКОЛЬНИКАМ», БОЛЬШАЯ ПРОСЬБА НЕ БЕСПОКОИТЬ!!!

    Обращайтесь в lCQ: 8два99616 или Refcat(x)yandex.ru




Да человек я, человек! =)




Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]