Простая установка WPAD и клиентов брандмауэра

Как уже говорилось в статье «Аутентификация доступа в Internet с использованием сервера ISA» (см. Windows IT Pro/RE № 2 за 2006 г.), Microsoft Internet Security and Acceleration (ISA) Server поддерживает три метода предоставления управления доступом в Internet для внутренних клиентов: трансляция сетевых адресов Secure Network Address Translation (SecureNAT), Web-proxy и метод сетевого экрана, или брандмауэра. SecureNAT не требует выполнения каких-либо настроек на клиентском компьютере, кроме настройки шлюза по умолчанию, в качестве которого должен быть прописан ISA Server. Эта задача обычно автоматизируется с помощью сервера DHCP. В средах с использованием подсетей системе с ISA Server не нужно становиться шлюзом по умолчанию, однако маршрут по умолчанию должен проходить через систему с ISA Server. Следует отметить, что доступ с использованием SecureNAT не применяет авторизацию, основанную на имени пользователя. Таким образом, многие, возможно, отдадут предпочтение конфигурациям с использованием Web-proxy или брандмауэра, обеспечивающим управление доступом в зависимости от предоставления прав соответствующим пользователям.

Конфигурация с Web-proxy требует настройки клиентского браузера сети, а конфигурация с использованием брандмауэра предполагает установку на клиенте специального программного обеспечения, Firewall Client. Поэтому настройка Web-proxy и сетевого экрана на первый взгляд кажется непростой задачей, а поддержка удаленных клиентов и управление их конфигурациями при добавлении и удалении ISA Server может показаться администраторам и вовсе делом нелегким. Тем не менее можно установить службу Web-proxy и брандмауэр из состава ISA Server так, что настройка клиентов будет происходить автоматически.

Рисунок. Пример сети, в которой используется ISA Server

На рисунке показана топология сети нашего предприятия. К внутренней сети с адресом 10.0.0.0 подключены сервер с именем ALPHA (на нем запущены службы DHCP и DNS, он имеет адрес 10.0.0.2) и клиент с именем BETA-CLNT. Внутренняя сеть соединена с Internet через ISA Server с именем ISA-LEON. Моя задача — обеспечить доступ в Internet клиентской системы BETA-CLNT через ISA-LEON. Сначала настроим доступ через Web-proxy (разрешается только HTTP и защищенный HTTP (HTTPS) трафик), затем доступ через брандмауэр (разрешается доступ в Internet таким приложениям, как FTP и Telnet).

Обзор Web Proxy и сетевого экрана

Для начала кратко напомню суть методов доступа в Internet c использованием брандмауэра и Web-proxy. ISA Server имеет две службы: Web-proxy и службу сетевого экрана. Клиентские браузеры настроены на использование метода доступа Web-proxy, т. е. HTTP-запросы пересылаются непосредственно на систему с ISA, которая выполняет запросы клиента. Этот метод работает только с приложениями, которые могут использовать Web-proxy, такими как Microsoft Internet Explorer (IE). Чтобы обеспечить доступ в Internet для других приложений, таких как FTP и Telnet, в состав ISA Server включено приложение клиента брандмауэра. Клиент брандмауэра реализован в виде службы уровня Winsock, он обеспечивает доступ в Internet для клиентских приложений.

Для предоставления доступа в Internet администраторы часто настраивают клиентские системы с возможностью использования как клиента брандмауэра, так и Web-proxy. Администраторы часто применяют доступ через Web-proxy, поскольку он не требует установки дополнительного программного обеспечения. Однако такой способ доступа выводит пользователю запрос на ввод имени и пароля для авторизации на proxy-сервере. Клиент брандмауэра не требует от пользователя ввода специального пароля, а задействует вместо него имя и пароль, введенные при регистрации.

Если настроить браузер клиента на применение Web-proxy, клиент будет использовать proxy-сервер для запросов HTTP и HTTPS, независимо от того, имеется в наличии клиент брандмауэра или нет. Если же пользовательский браузер не был настроен на Web-proxy, Internet Explorer будет пытаться устанавливать прямые Internet-соединения, но, поскольку клиент брандмауэра перехватывает все вызовы Winsoсk, соединения Internet будут обеспечиваться при помощи брандмауэра ISA Server.

Настройка протокола WPAD c помощью DHCP

Для того чтобы системы внутри сети автоматически обнаруживали системы с ISA Server, выступающие в качестве Web-proxy, потребуется выполнить три задачи:

  1. Настроить систему с сервером ISA на поддержку протокола WPAD (протокол автоматического обнаружения Web-proxy-серверов).
  2. Обеспечить клиентским системам возможность находить компьютер с запущенным ISA Server, который предусматривает работу службы Web-proxy.
  3. Обеспечить поддержку браузером клиента протокола WPAD.

Чтобы настроить ISA Server на поддержку автоматического поиска proxy-серверов, в консоли MMC нужно выбрать оснастку ISA Management, нажать правую кнопку мыши на ISA-LEON (компьютере с установленным ISA Server), как показано на экране 1, после чего выбрать пункт Properties. Затем следует перейти на закладку Autodiscovery («Автообнаружение»), как показано на экране 2, выбрать Publish automatic discovery information (публиковать информацию автоматического обнаружения) и ввести порт для публикации информации автоматического обнаружения. ISA Server публикует информацию с результатами автоматического обнаружения на указанном порту. Этот порт будет использоваться для всех исходящих запросов. Вы можете увидеть номер используемого порта на закладке Outgoing Web Requests tab (исходящие Web-запросы). В моей системе это порт 8080. Закладка Auto Discovery делает доступной информацию для автоматического обнаружения на любом дополнительном порту, который будет выбран. В моей установке это порт 9090.

Экран 1. Консоль ISA Management
Экран 2. Установка параметра автоопределения на системе ISA Server

Описанные действия обеспечат клиентской системе возможность обнаруживать систему с сервером ISA в зависимости от архитектуры сети предприятия. Если в сети присутствует сервер DHCP, то для выполнения этой задачи используется широковещательное сообщение DHCPINFORM и параметр DHCP-запроса 252. Cервер DHCP хранит различные настройки конфигурации клиентов в виде параметров, которую он посылает на клиентскую систему после ее обращения к DHCP. Параметр 252 зарезервирован WPAD. В нашем примере на системе ALPHA запущен сервер DHCP, таким образом, вы имеете возможность добавить параметр 252 в настройки диапазона, распределяемого DHCP. Следует открыть в консоли ММC оснастку DHCP, правой кнопкой мыши нажать на ALPHA, выбрать Set Predefined Options (набор предустановленных параметров). При появлении окна Predefined Options and Values, нажмите add. На экране 3 показано, как добавить параметр 252, WPAD. Нажав OK, вы снова увидите то же окно Predefined Options and Values но теперь оно содержит информацию о новом параметре. Строка http://isa-leon:8080/wpad.dat представляет собой автоматически созданный URL, который будет использовать клиентский браузер для соединения со службой Web-proxy ISA Server для получения информации от Web-proxy. Вы ввели такую строку в качестве значения для DHCP-параметра 252. Обратите внимание, что URL указывает на конкретную систему с cервером ISA. Если среда имеет массив ISA Server, более эффективным будет использование сценариев автоматической настройки. О них я расскажу чуть позже.

Экран 3. Добавление параметров DHCP

Cервер DHCP будет посылать данный URL клиентскому браузеру в ответ на запрос клиента DHCPINFORM. Обратите внимание на номер порта. Он может быть таким же, как и номер порта исходящих вызовов ISA Server (в нашем случае это 8080), или может иметь номер, который был задан во время настройки автоматического определения (9090).

После окончания настройки параметра 252 на сервере DHCP необходимо разрешить его использование для соответствующего диапазона DHCP. Чтобы это сделать, в консоли управления DHCP нужно нажать правой кнопкой мыши на узел Scope Options (диапазон), расположенный под узлом внутреннего сервера DHCP, выбрать Configure Options (настройка параметров) на закладке General, пролистать список параметров и выбрать 252 WPAD.

Internet Explorer, начиная с версии 3.02, поддерживает WPAD, поэтому настройка клиентов, использующих Internet Explorer или любой другой браузер с поддержкой функции автоопределения, достаточно проста. Задачу настройки можно еще более упростить, если в сети используется DHCP. В меню браузера клиентского компьютера нужно перейти на пункт Tools, Internet Options, Connections. Нажмите LAN Settings (настройки сети) и установите флажок Automatically detect settings (автоматически определять настройки) в диалоговом окне Local Area Network (LAN) Settings, как показано на экране 4.

Экран 4. Установка параметра автоопределения службы Web-proxy в браузере IE

После того как будут выполнены эти три шага и пользователь на клиентской системе получит возможность доступа по любому адресу URL, браузер получает URL для WPAD (в моем случае это http://isa-leon:8080/wpad.dat) от сервера DHCP. Браузер читает содержимое файла wpad.dat. Чтобы посмотреть содержимое файла wpad.dat, нужно ввести URL http://isa-leon:8080/wpad.dat в клиентском браузере или открыть файл wpad.dat в Notepad.

Wpad.dat представляет собой файл в формате JavaScript. Он выполняет несколько функций. Эти функции рассмотрены в статье http://www.microsoft.com/technet/treeview/default.asp?url=/technet/ prodtechnol/ie/reskit/ie6/part6/c26ie6rk.as. Одним из ключей данного файла является ключ FindProxyForUrl, который сообщает браузеру, какой proxy-сервер будет использоваться для доступа к различным URL.

ISA Server создает файл wpad.dat, базируясь на своих настройках. Например, добавление в таблицу локальных доменов (Local Domain Table) ISA Server новых доменов (в консоли ISA Management в секции Network Cofiguration) приводит к изменению файла wpad.dat. Таким образом, когда браузер запрашивает имя proxy-сервера для любой системы из таблицы локальных доменов, ключ FindProxyForUrl возвращает клиенту значение DIRECT — путь к proxy-серверу.

Привлекательность функции автоопределения состоит в том, что ISA Server создает сложный файл wpad.dat, который затем используется клиентским браузером для поиска оптимального пути к запрашиваемому URL. Любые изменения в конфигурации ISA Server отражаются в файле wpad.dat, а затем эти настройки используются всеми клиентами, сконфигурированными с расчетом на использование автоопределения.

Настройка WPAD с DNS

Для автоматического поиска proxy-сервера вместо DHCP можно использовать DNS. Этот способ подходит для тех организаций, которые не применяют DHCP. Для его осуществления необходимо проделать следующие действия: во-первых, сделать так, чтобы ISA Server публиковал информацию об автоопределении службы Web-proxy на порту 80. Если на системе с ISA Server работают другие приложения, такие как Internet Information Server, которые уже задействуют порт 80, придется перенастроить их на использование другого порта. После этого нужно вызвать в консоли MMC оснастку DNS и добавить новую запись — псевдоним (alias) (CNAME) для WPAD в зоне прямого просмотра для домена, в котором расположен ISA Server. Моим домашним доменом является leon.leonhome.com, поэтому полное доменное имя Fully Qualified Domain Name (FQDN) для моего ISA Server будет isa-leon.leonhome.com.

Проверить настройки DNS просто. Я сконфигурировал компьютер BETA-CLNT под сервер DNS, запущенный на ALPHA, путем ручной настройки свойств TCP/IP на BETA-CLNT на использование сервера DNS с адресом 10.0.0.2. В качестве альтернативы адрес DNS-сервера может передаваться клиенту сервером DHCP. После этого легко убедиться, что браузер BETA-CLNT имеет доступ к файлу wpad.dat, путем ввода в поле адреса http://wpad.leonhome.com/wpad.dat. Установите флажок Automatically detect settings (автоматическое проведение настроек) в диалоговом окне Local Area Network (LAN) Settings, как было описано выше. Теперь, когда пользователь на клиентской системе обратится к какому-либо URL, браузер будет проверять файл wpad.dat для определения соответствующего proxy-сервера.

Применение DHCP позволяет достичь более высокого уровня точности настроек, чем при использовании DNS. DNS заставляет ISA Server прослушивать порт 80 на предмет наличия запросов на автоопределение и разрешает иметь только одну запись для протокола WPAD ISA Server на весь домен. DHCP позволяет иметь разнообразные записи WPAD для различных диапазонов выдаваемых адресов (но только один WPAD на каждый диапазон). Крупные предприятия часто имеют более одного ISA Server, и DHCP может указывать клиенту на ближайшую систему с ISA Server.

Настройка клиента брандмауэра

Как было только что продемонстрировано, администратор (или пользователь) легко сможет выполнить необходимые настройки браузера для использования службы Web-proxy ISA Server. В качестве альтернативы можно установить на клиентах специальный клиент брандмауэра из состава ISA Server. После его установки можно будет настроить клиентский браузер на прямой доступ в Internet, минуя proxy-сервер. После установки этого клиента приложения, использующие WinSock, смогут подсоединяться к Internet без каких-либо дополнительных настроек. Подключения к Internet через Web-proxy или с использованием клиента брандмауэра формально не зависят друг от друга. Тем не менее установленный клиент брандмауэра учитывает настройки Internet Explorer на использование Web-proxy. Настройки Web-proxy возможны только до установки клиента брандмауэра. После его установки производить настройки параметров Web-proxy браузера невозможно.

Все изменения конфигурации клиента Web-proxy можно проделать из консоли MMC ISA Management, используя узел Client Configuration. Как показано на экране 1, узел Client Configuration содержит два подчиненных узла: Web Browser и Firewall Client. В правой панели дважды нажмите на Web Browser. Откроется диалоговое окно свойств Web Browser Properties, показанное на экране 5. Закладка General позволит задать параметры браузера, которые будет использовать программа установки клиента брандмауэра для настройки Internet Explorer на пользовательской системе. Эту закладку можно использовать для автоматической настройки параметров Internet Explorer во время установки клиента брандмауэра. В нашем примере клиентский браузер будет использовать заданный proxy-сервер, порт (ISA-LEON, port 8080) и параметр Automatically discover settings (автоматическое проведение настройки).

Экран 5. Настройка параметров браузера на клиенте брандмауэра

Если вы установили клиент брандмауэра и настроили браузер на использование Web-proxy, то браузер будет задействовать для доступа в Internet proxy-сервер. Если же установлен клиент брандмауэра и браузер настроен на прямой доступ в Internet, то браузер будет использовать брандмауэр. В действительности фильтр перенаправления http-запросов ISA Server (HTTP Redirection Filter) переадресует HTTP-запросы с брандмауэра службе Web-proxy. Но можно настроить ISA Server таким образом, чтобы HTTP-запросы не перенаправлялись.

Закладка General диалогового окна свойств Web Browser Properties позволит настроить браузер на использование автоматического сценария для автоматической настройки его параметров. Об этой возможности упоминалось выше. Нет необходимости использовать такой сценарий, если имеется только один ISA Server, как в нашем примере. Я думаю, сейчас самое время рассмотреть такие сценарии, поскольку их применение для настройки будет наилучшим решением для архитектуры, имеющей несколько ISA Server. Перед тем как начать разговор о сценариях, я должен пояснить функцию распределенного кэширования, которую предоставляет ISA Server.

Для эффективного восстановления и последующего предоставления пользователю кэшированных данных ISA Server задействует протокол Cache Array Routing Protocol (CARP). CARP обеспечивает распределение кэшируемых данных среди членов массива кэширования, состоящего из нескольких физических систем с установленными на них ISA Server. CARP обеспечивает положительную масштабируемость, т. е. при увеличении числа серверов в массиве увеличивается эффективность кэша. CARP значительно превосходит по эффективности другие технологии кэширования, такие как Internet Cache Protocol (ICP). Давайте рассмотрим работу протокола CARP: CARP определяет, на каком из ISA Server, входящих в массив, находится необходимая информация. Заключение делается на основании вычисления хеш-функции, имеющей в качестве входных данных имя ISA Server и хеш-функцию соответствующего URL. Такой механизм вычисления гарантирует, что кэшируемые объекты будут равномерно распределены среди всех ISA Server массива. Администратор может установить для каждой из систем массива свой фактор загрузки в зависимости, например, от типа процессора или объема оперативной памяти. Фактор загрузки берется в расчет во время вычисления хеш-функции. В результате менее мощные системы будут кэшировать меньшее число объектов.

Каждая система с ISA Server, которая является членом массива, содержит информацию обо всех остальных членах массива. Эту информацию можно сделать доступной для всех клиентов при помощи сценариев маршрутизации. На экране 5 показана закладка General, которая содержит URL подобного сценария (в нашем случае это http://ISA-LEON:8080/array.dll?Get.Routing.Script). ISA Server обновляет этот сценарий при добавлении или удалении членов данного массива. Обратите внимание, что сценарий возвращает информацию о том, какой из членов массива последним использовал данный URL-запрос для того, чтобы направить запрос именно тому ISA Server, который содержит в своем кэше требуемый URL.

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

Программа установки клиента брандмауэра настроит Internet Explorer на использование автоматического сценария настройки, если выбрать и отметить пункт Set Web browsers to use automatic configuration script на закладке General. Теперь, если вы решили использовать сценарий настройки, перед отправкой пользовательского URL-запроса Internet Explorer прочитает сценарий, содержащий хеш-функцию, которая обрабатывает пользовательский запрос. Internet Explorer получит имя нужного ISA Server, содержащего в своем кэше требуемый объект.

После того как мы рассмотрели влияние на настройки клиента брандмауэра настроек браузера, касающихся Web-proxy, давайте посмотрим, как провести обязательные настройки клиента брандмауэра. Вторым подчиненным узлом в разделе Client Configuration в консоли ММС ISA Management является узел Firewall Client. Этот узел представляет собой вспомогательное приложение, разработанное как провайдер для Winsock. В правой панели консоли следует дважды нажать на Firewall Client. Откроется диалоговое окно свойств Firewall Client Properties. На закладке General, показанной на экране 6, должен быть установлен флажок Enable ISA Firewall automatic discovery in Firewall Client. В дальнейшем, для достижения большей ясности при настройке клиентов, можно настроить клиент брандмауэра на автоматическое обнаружение того, какой ISA Server должен использоваться клиентом. С помощью закладки Application Settings диалогового окна определяют, какие процессы будут использовать брандмауэр, а какие — нет.

Экран 6. Настройка параметров брандмауэра на клиенте брандмауэра

Программа установки ISA Server автоматически создает комплект для установки клиента брандмауэра и размещает его в каталоге %programfiles%microsoft isa serverclients. После этого можно устанавливать клиент на пользовательских компьютерах. Пользователи в моей сети устанавливали клиент брандмауэра напрямую с общего ресурса isa-leonmspclnt. В качестве альтернативы можно использовать возможности по установке программного обеспечения, предоставляемые Active Directory, назначив установку клиента брандмауэра на определенные группы компьютеров пользователей. После этого программное обеспечение клиента будет автоматически установлено во время следующей регистрации пользователей в сети. В случае удачной установки клиент отображается в виде значка в системном лотке в панели задач. Двойной щелчок левой кнопкой мыши на этом значке приведет к открытию диалогового окна настроек клиента брандмауэра.

Установка клиента брандмауэра на пользовательской системе активирует соответствующие настройки браузера и клиента. Эти настройки были заданы во время редактирования свойств браузера в диалоговом окне Web Browser Properties. Любые изменения в этом окне, сделанные после установки клиента брандмауэра, будут автоматически применяться ко всем клиентским системам с регулярными интервалами. Пользователь, в свою очередь, может нажать Update Now (обновить немедленно) в диалоговом окне Firewall Client Options для немедленной загрузки изменений в настройках с ISA Server.

После того как клиент брандмауэра установлен, он перехватывает все вызовы Winsock. Теперь сетевые запросы не идут напрямую к ISA Server. Вместо этого клиент брандмауэра создает специальный канал к ISA Server и маршрутизирует запросы к службе сетевого экрана ISA Server. Брандмауэр выполняет сетевой запрос, заданный пользователем, и посылает ответ на него обратно клиенту. В результате устанавливается прозрачное Internet-соединение для всех сетевых приложений, работающих на клиентском компьютере.

Итак, в этой статье я рассказал о принципах автоматической настройки параметров Web-proxy и клиента брандмауэра ISA Server. Мне хотелось продемонстрировать, что пользователям необходимо либо внести небольшие изменения, либо не проводить вообще никаких специальных настроек для получения доступа в Internet через ISA Server. Я показал, как настроить Web-браузер на доступ к URL с использованием протокола WPAD. В статье упоминалось, что ISA Server обеспечивает еще одну возможность прозрачного доступа приложений в Internet с использованием SecureNAT. Настройка клиентской системы на применение SecureNAT проста. Для этого в настройках протокола TCP/IP клиента в качестве шлюза по умолчанию необходимо указать адрес ISA Server. Если для передачи клиентам конфигурационных параметров используется DHCP, то вы сможете задать значение параметра Default gateway в виде одного из параметров DCHP-диапазона. В этом случае клиент будет настраиваться автоматически во время запуска на компьютере сетевых служб и таким образом использовать в качестве шлюза по умолчанию ISA Server.

Леон Брагинский - Технический руководитель Microsoft Developer Support. Соавтор книги Microsoft Internet Information Server и автор статей в MSDN Magazine. leonbrag@braginski.com