Как настроить сервер ISA для работы Web-соединений, использующих протокол SSL/TLS

В различных организациях все чаще применяется Microsoft Internet Security and Acceleration (ISA) Server 2000 и более новые версии в качестве proxy-сервера и сетевого экрана для информационной инфраструктуры. Хотя ISA Server является наследником Microsoft Proxy Server 2.0, он не похож на своего предшественника, который представлял собой прежде всего решение для кэширования Web-страниц. При необходимости ISA Server может служить и полнофункциональным сетевым экраном. В дополнение ко всему ISA Server обеспечивает расширенную фильтрацию пакетов и выполняет функции сетевого экрана и посредника для приложений. Сетевой экран на базе ISA Server обеспечивает безопасность за счет механизма защищенной трансляции сетевых адресов (Secure Network Address Translation, SNAT). Поближе познакомиться с возможностями ISA Server можно на сайтах, посвященных Microsoft ISA Server (http://www.microsoft.com/isaserver и http://www.isaserver.org).

Организации могут задействовать ISA Server в качестве proxy-сервера либо сетевого экрана. ISA Server также может быть настроен на одновременное выполнение обеих функций. ISA Server защищает Web-серверы от опасностей, исходящих из Internet, и обеспечивает кэширование содержимого часто посещаемых Web-страниц для пользователей Web (кэширование) и Web-серверов (обратное кэширование). Хотя такие производители, как Cisco Systems, поставляют выделенные аппаратные решения для сетевого экрана и proxy-серверы со встроенным программным обеспечением HTTP-proxy, ISA Server можно рекомендовать как простое программное решение.

Давайте рассмотрим процесс установки протоколов Secure Sockets Layer (SSL)/Transport Layer Security (TLS) с целью обеспечения безопасности Web-соединений. Наиболее подробно я расскажу об SSL-сценариях, которые можно будет применить с HTTP-proxy. Кроме того, мы обсудим процессы запроса и получения сертификатов SSL, а также то, как настроить ISA Server для организации мостов SSL и SSL-туннелей. Рассмотрим также ключевые факторы в обеспечении безопасности ISA Server при загрузке SSL.

Система ISA Server, описанная в этой статье, использует ISA Server Service Pack 1 (SP1), для установки которого требуется Windows 2000 SP2, и ISA Server Feature Pack 1. Microsoft выпустила feature pack годом раньше, его можно загрузить с сайта http://www.microsoft.com/isaserver/featurepack1/ default.asp.

Обеспечение безопасности OWA

На рис. 1 показана типичная конфигурация Microsoft Exchange 2000 Server Outlook Web Access (OWA). OWA позволяет пользователям Exchange получать доступ к данным почтовых ящиков непосредственно через браузер Internet. В такой среде ISA Server сочетает в себе функции сетевого экрана и proxy-сервера и работает как программная реализация мощного HTTP proxy-сервера. Вместо прямой связи непосредственно с Web-сервером OWA Web-клиент соединяется с ним через HTTP proxy-сервер, который обеспечивает более защищенную инфраструктуру OWA. ISA Server также осуществляет кэширование и анализирует содержимое OWA Web.

С точки зрения обеспечения защиты периметра пользователи Outlook Web Access (OWA) находятся в небезопасной сети (например, в Internet), а внешний Web-сервер OWA и Exchange-сервер находятся в зоне доверия (например, во внутренней корпоративной сети). ISA Server отделяет зоны безопасности, которым можно доверять, от зон, которым доверять нельзя. Для обеспечения безопасности ISA Server можно предпринять ряд других шагов (включая добавление демилитаризованной зоны, DMZ), но эти преобразования выходят за рамки нашей статьи.

Значение SSL/TLS

Web-сайты, содержащие конфиденциальную информацию (например, номера кредитных карт), часто используют SSL для обеспечения безопасной передачи информации через Web. SSL — это протокол, обеспечивающий безопасность и работающий на транспортном уровне в модели межсетевых взаимодействий Open System Interconnection (OSI). SSL обеспечивает авторизацию, конфиденциальность и полную защиту протоколов уровня приложения (таких, как HTTP, SMTP). В стандартах 1999 года комитет Internet Engineering Task Force (IETF) Request for Comments (RFC) 2246 стандартизировал SSL как протокол Transport Layer Security (TLS) (см. http://www.ietf.org/rfc/rfc2246.txt). TLS также известен как SSL 3.1. Далее в статье термин SSL относится как к протоколу SSL, так и к TLS.

SSL и HTTP-proxy

Настраивая HTTP-proxy, можно настроить SSL одним из двух способов, называемых туннель SSL и SSL-мост. В таблице показаны различия между вариантами настройки SSL, а также преимущества и недостатки каждого из них.

Туннель SSL обеспечивает действительную SSL-защиту от начальной до конечной точки соединения, как показано на рис. 2. Туннель SSL начинается в браузере и заканчивается на Web-сервере. Туннель SSL требует сертификата SSL-авторизации на Web-сервере. Клиентский сертификат SSL на клиенте необязателен. Главное неудобство использования туннеля SSL состоит в том, что из процесса обеспечения безопасности исключаются возможности HTTP-proxy, который обычно проверяет содержимое запросов HTTP перед передачей на Web-сервер. Когда используется SSL, HTTP-proxy не может проверить запрос HTTP, поскольку туннель SSL шифрует содержимое HTTP. Поскольку SSL действует на транспортном уровне модели сетевого стека OSI, а HTTP работает на уровне приложения, трафик туннеля SSL достигает целевого хоста всегда раньше трафика уровня приложений HTTP.

Для создания туннеля SSL, проходящего через HTTP-proxy, поддерживающие SSL приложения используют метод, называемый HTTP CONNECT. При этом HTTP-proxy настраивается так, чтобы не проверять содержимое сессии SSL и просто передавать пакеты SSL на целевой хост (в нашем примере — на внешний OWA Web-сервер). RFC 2817 дает подробное описание метода HTTP CONNECT.

Мост SSL, в отличие от туннеля SSL, позволяет создать безопасный маршрут с использованием средств обеспечения безопасности HTTP-proxy, поскольку туннель SSL начинается и заканчивается на HTTP-proxy. Мост SSL можно установить тремя способами.

Вариант 1. Один туннель SSL, который начинается на клиентской стороне и заканчивается на HTTP-proxy, как показано на рис. 3. Этот вариант требует наличия сертификата SSL на HTTP-proxy; также можно использовать сертификат SSL и на клиентской стороне, когда там необходима строгая аутентификация.

Вариант 2. Один туннель SSL начинается на HTTP-proxy и заканчивается на Web-сервере, как показано на рис. 4. Этот вариант требует наличия сертификата SSL на Web-сервере; также можно использовать сертификаты SSL на HTTP-proxy, когда необходима строгая аутентификация на клиентской стороне.

Вариант 3. Один туннель SSL начинается на клиенте и заканчивается на HTTP-proxy, а другой начинается на HTTP-proxy и заканчивается на Web-сервере, как показано на рис. 5. Этот вариант требует сертификата SSL на HTTP-proxy и сертификата SSL на Web-сервере; также можно использовать сертификаты SSL на HTTP-proxy, когда необходима строгая аутентификация на клиентской стороне.

Исходя из приведенного описания только мосты SSL, созданные по вариантам 1 и 2, действительно обеспечивают безопасность. С точки зрения обеспечения безопасности мост SSL варианта 2 не обеспечивает безопасного трафика между клиентом и HTTP-proxy (т. е. трафика, который обычно проходит через общедоступные сети), и поэтому не имеет практической пользы. Этот вариант обеспечивает безопасность трафика только между HTTP-proxy и Web-сервером (т. е. трафика, который обычно проходит внутри доверенных сетей, таких как демилитаризованная зона и т. д.).

Давайте коротко рассмотрим процесс настройки ISA Server для поддержки мостов SSL и туннелей SSL. Из этих двух вариантов мост SSL наиболее востребован, поэтому обратимся именно к нему.

Получение сертификата SSL для ISA Server

Перед тем как настраивать ISA Server для организации мостов SSL по вариантам 1 или 3, необходимо установить на компьютер с запущенным на нем ISA Server сертификат SSL. В своей тестовой среде Windows 2000 я установил корпоративный удостоверяющий центр Certificate Authority (CA) в доверительной зоне безопасности (т. е. во внутренней сети). Этот центр СА выпускает сертификаты SSL для серверов. В средах, которые не имеют внутреннего центра выпуска сертификатов, можно получить их с общедоступного центра сертификации, например такого, как VeriSign.

Далее я объясню только, как получить сертификат SSL для ISA Server. Описание того, как обеспечить доверие пользователей ISA/OWA сертификатам SSL, которые выпущены СА, выходит за рамки данной статьи. Документация к продукту ISA Server Feature Pack 1 содержит необходимые инструкции по этому вопросу.

Запрос на получение серверного сертификата SSL для ISA Server начинается с запуска в Microsoft Management Console (MMC) на СА оснастки Internet Services Manager (ISM) и открытия страницы Properties Web-сайта по умолчанию. Из закладки Directory Security нужно нажать Server Certificate для запуска мастера запросов сертификатов Certificate Request Wizard. Выберите вариант Create a new certificate. В этом примере можно также выбрать вариант Send the request immediately to an online certification authority, поскольку в нашем случае CA является корпоративным центром CA, который публикуется в Active Directory (AD) и, соответственно, становится видимым для Web-сервера. Убедитесь, что вы ввели полное имя DNS (например, OWA.mycorp.com) для внешнего Web-сервера OWA в поле Common Name. После того как будет успешно создан сертификат SSL, потребуется экспортировать сертификат и соответствующий ему частный ключ с сервера СА и импортировать их в систему ISA Server.

Главной причиной получения ISA Server сертификата SSL с Web-сервера является облегчение процесса настройки. IIS поставляется с мастером запроса сертификатов SSL. Также можно запустить запрос сертификата SSL с ISA Server, в этом случае частный ключ ISA Server никогда не покидает машину, однако процедура запроса сертификата становится более сложной.

Для экспорта серверного сертификата SSL и соответствующего частного ключа с Web-сервера следует открыть свойства Web-сайта по умолчанию и перейти на закладку Directory Security. Затем нужно нажать View Certificate. На закладке Details нажмите Copy to File для запуска мастера экспорта сертификатов Certificate Export Wizard. Выберите вариант Yes, export the private key. Для Public Key Cryptography Standard #12 (PKCS#12) export file format следует выбрать параметр Enable strong protection (после этого мастер выведет приглашение ввести пароль) и параметр Delete the private key if export is successful. Необходимо сохранить файл в формате PKCS#12 и затем скопировать его на действующий ISA Server.

Для импорта серверного сертификата SSL и соответствующего частного ключа в хранилище частных ключей и сертификатов ISA Server требуется дважды щелкнуть на файле сертификата в формате PKCS#12 в Windows Explorer для запуска мастера импорта сертификатов Certificate Import Wizard. Следует оставить в мастере все установки по умолчанию и убедиться, что пароль введен правильно. Мастер автоматически сохранит сертификат в локальном хранилище сертификатов системы ISA Server.

Затем нужно настроить ISA Server для использования сертификатов SSL. Запустите оснастку MMC ISA Management, найдите объект, соответствующий вашему серверу ISA, щелкните на объекте правой кнопкой мыши и выберите пункт Properties объекта. Выберите закладку Incoming Web Requests. Затем следует выбрать пункт Use the same listener configuration for all IP addresses или пункт Configure listeners individually per IP address. Выбор зависит от настройки ISA Server и от того, безопасность каких соединений необходимо обеспечить с помощью SSL. Требуется указать нужный сервер из списка и нажать Edit, чтобы открыть окно Add/Edit Listeners. Выберите и отметьте пункт Use a server certificate to authenticate to web clients. Нажмите Select и укажите соответствующий сертификат (в нашем примере это единственный выпущенный сертификат для OWA.mycorp.com).

ISA Server и мост SSL

После того как сертификат SSL будет готов, можно приступить к созданию моста SSL. Первым делом необходимо обеспечить прием ISA Server входящих SSL-запросов. Дабы убедиться в том, что SSL-приемник ISA Server включен и работает, выберите и отметьте пункт Enable SSL listeners на закладке Incoming Web Requests в диалоговом окне свойств объекта ISA Server. По умолчанию SSL-приемники ISA Server отключены. Когда они включены, ISA Server прослушивает порт 443 на предмет входящих SSL-запросов.

После этого необходимо сформировать набор приемников информации ISA Server destination set и правила Web-публикации для Outlook Web Access. Набор приемников — это группа серверов, для которых ISA Server будет выполнять определенные действия. В нашем примере мы хотим, чтобы ISA Server выполнял функции моста SSL в то время, когда к нему приходит запрос HTTP Secure (HTTPS) для получения доступа к Web-страницам OWA. Чтобы создать список приемников для OWA, нужно развернуть контейнер Policy Elements в оснастке ISA Management, правой кнопкой щелкнуть на контейнере приемников Destination Sets, затем выбрать New, перейти на пункт открытия диалога New Destination Set. Теперь следует присвоить набору имя (например, OWA), а затем нажать Add для начала добавления адресатов-приемников Outlook Web Access. В этом примере имя DNS внешнего Web-сервера OWA, который опубликован для пользователей Outlook Web Access, будет OWA.mycorp.com. Поскольку OWA требуется набор приемников для трех Web-путей (/exchweb/*, /public/*, /exchange/*), необходимо добавить эти пути. Для каждого пути следует ввести полное имя DNS приемника информации (в нашем случае OWA.mycorp.com) и соответствующий путь.

Чтобы перенаправить все запросы HTTP, идущие по адресу OWA.mycorp.com, на внешний Web-сервер OWA с IP-адресом 10.0.0.45, необходимо создать правила Web-публикации OWA. Для создания правила нужно развернуть контейнер Publishing в оснастке ISA Management, щелкнуть правой кнопкой на контейнере Web Publishing Rules, затем выбрать New, Rule. Запустится мастер New Web Publishing Wizard. Дайте правилу имя (например, OWA), после чего примените это правило к набору приемников OWA, который только что создали. Нужно применить это правило ко всем запросам и предписать перенаправлять запросы на внешний Web-сервер OWA (например, на фронтальный Web-сервер OWA c IP-адресом 10.0.0.45). Необходимо убедиться, что выбран пункт Send the original host header to the publishing server instead of the actual one (specified above).

Следующим шагом в настройке моста SSL по варианту 1 будет задание свойств моста для правил OWA-Web-публикации. Настройка должна обеспечить окончание туннеля SSL на HTTP-proxy ISA, причем не должны создаваться новые SSL-туннели к OWA-Web-серверу. Выберите закладку Bridging в диалоговом окне Properties для правил, затем укажите HTTP requests в окне Redirect SSL requests as.

Для того чтобы мост SSL варианта 1 мог работать с OWA, придется добавить некоторые установки в системный реестр компьютера с ISA Server. Эти изменения в реестре работают только в версиях ISA Server SP1 и выше. Нужно перейти к следующему разделу реестра: HKEY_LOCAL_MACHINESYSTEM CurrentControlSetServicesW3ProxyParameters. В меню Edit следует выбрать New, тип параметра DWORD, имя параметра Add Front EndHttpsHeader. Установите значение в 1. Статья Microsoft «Secure OWA Publishing Behind ISA Server May Require Custom HTTP Header» (http://support.microsoft.com/?kbid=307347) содержит дополнительную информацию о параметрах реестра. Дабы убедиться, что сделанные установки были применены, следует остановить и перезапустить службы ISA Server Web Proxy and Firewall.

Настройку ISA Server для использования моста по вариантам 2 и 3 можно осуществить через закладку Bridging диалогового окна свойств OWA (Properties). Чтобы добавить туннель SSL для незащищенных запросов HTTP (мост SSL по варианту 2), нужно выбрать кнопку SSL requests (establish a secure channel to the site) в окне Redirect HTTP requests as. Чтобы добавить туннель SSL между HTTP-proxy и внешним Web-сервером OWA (мост SSL по варианту 3), следует выбрать параметр SSL requests (establish a new secure channel to the site) в окне Redirect SSL requests as. Не забудьте, что оба варианта мостов требуют сертификата SSL на внешнем Web-сервере OWA.

Закладка Bridging содержит еще две важные возможности, относящиеся к настройке SSL. Если желательно, чтобы ISA Server соединялся только с опубликованными Web-сайтами при условии, что пользователь набирает HTTPS URL в строке адреса браузера, нужно выбрать пункт Require secure channel (SSL) for published site. Эта установка применима только к мостам SSL по вариантам 1 и 3. Если требуется, чтобы ISA Server при обращении к внешнему Web-серверу OWA выполнял строгую аутентификацию, основанную на сертификатах SSL, следует выбрать пункт Use a certificate to authenticate to the SSL Web server и указать сертификат. Эта установка применима только для мостов SSL по вариантам 2 и 3. В последнем случае необходимо установить на системе с ISA Server клиентский сертификат SSL в хранилище сертификатов службы W3Proxy.

Чтобы облегчить настройку моста SSL в среде OWA, разработчики Microsoft включили в состав ISA Server Feature Pack 1 мастер публикации OWA Publishing Wizard, который можно загрузить с сайта Microsoft http://www.microsoft.com/downloads/details.aspx?familyid=2f92b02c-ac49-44df-af6c-5be084b345f9&displaylang=en. Этот новый мастер, изображенный на экране 1, доступен из контейнера ISA Web Publishing. Для его вызова нужно просто щелкнуть правой кнопкой на контейнере, затем выбрать New, Publish Outlook Web Access Server. Мастер проведет вас по шагам процесса настройки и автоматически добавит в реестр параметр AddFrontEndHttpsHeader.

Экран 1. Запуск мастера OWA Publishing

Настройка ISA Server для использования туннеля SSL

Чтобы настроить ISA Server на использование туннеля SSL, требуется задействовать функцию ISA Server Server Publishing. По сравнению с настройкой моста SSL установка туннеля SSL проще, поскольку нет необходимости создавать сертификаты SSL для ISA Server.

Для начала убедимся в том, что SSL-приемники ISA Server отключены. SSL-приемники не должны быть активированы, потому что они используются для функции ISA Server, называемой Web-publishing. Для того чтобы убедиться, что SSL-приемники отключены, нужно снять флажок Enable SSL listeners на закладке Incoming Web Requests диалогового окна свойств ISA Server.

После этого надо создать правило публикации для внешнего Web-сервера OWA. В оснастке ISA Management разверните контейнер публикаций, затем щелкните правой кнопкой мыши на контейнере Server Publishing Rules. Выберите New, Rule для запуска мастера новых публикаций серверов New Server Publishing Rule Wizard, как показано на экране 2. Введите имя правила (например,OWA), после чего нажмите Next. На странице Address Mapping нужно ввести IP-адрес внешнего Web-сервера OWA в окне IP address of internal server, далее указать в поле External IP address on ISA Server IP-адрес, по которому ваш ISA Server будет доступен из внешнего мира. На странице Protocol Settings следует выбрать протокол HTTPS Server. На странице Client Type выберите Any request. Чтобы убедиться, что конфигурация ISA Server изменилась, остановите и запустите вновь службы ISA Server Web Proxy and Firewall.

Экран 2. Запуск мастера New Server Publishing

Дополнительная нагрузка от SSL-процессов

На протяжении всей статьи мы обсуждали конфигурацию сервера ISA для поддержки различных вариантов туннелей и мостов SSL, но я не затрагивал вопросов влияния работы SSL на производительность ISA Server. Эти вопросы особенно актуальны в случае установки мостов SSL по вариантам 1 или 3 в больших средах OWA (в табл. 1 приведено более детальное описание различных вариантов мостов SSL). В подобной ситуации стоит подумать об использовании карты криптоакселератора или выделенной специальной SSL-аппаратуры, которая поможет освободить ISA Server от обслуживания SSL-процессов.

Жан де Клерк - Член Security Office компании HP. Специализируется на управлении идентификационными параметрами и безопасности в продуктах Microsoft. Автор книги Windows Server 2003 Security Infrastructures (издательство Digital Press). jan.declercq@hp.com