Защита и разграничение клиентского доступа в Internet
Наиболее известной проблемой обеспечения безопасности при работе с Internet является защита сети от вторжений извне. Для этого используется контролируемый доступ в Internet. Чтобы предоставить определенным пользовательским учетным записям доступ в Internet через proxy-сервер, можно задействовать Microsoft Internet Security and Acceleration (ISA) Server 2000. Сервер ISA не только помогает защитить внутренних клиентов от внешних атак, но и предоставляет возможность контроля и управления активностью пользователей в Internet. Сервер ISA поддерживает доступ к внутренним серверам извне (reverse proxy), но в этой статье такая возможность не рассматривается.
Для иллюстрации затронутых в статье вопросов я использовал упрощенную сетевую топологию. Она включает один сервер Windows 2000 с Service Pack 3 (SP3) с установленным на нем ISA Server Enterprise Edition. Он обеспечивает функции proxy-сервера и сетевого экрана (брандмауэра). Такая конфигурация предпочтительна для сети небольшого офиса. На рис. 1 изображена подобная сеть, состоящая из сервера ISA (ISA-Leon), клиентской системы (Alpha, IP-адрес 10.0.0.2) и внешнего Web/FTP сервера (Leonbr-Hm, IP-адрес 192.168.154.1). Система, на которой работает сервер ISA, имеет два сетевых интерфейса, один из них (IP-адрес 10.0.0.1) подключен к внутренней сети, а другой (IP-адрес 192.168.154.20) — к внешней, т. е. к Internet.
Версии и режимы
Сервер ISA выпускается в двух версиях: корпоративной и стандартной (enterprise и standard). ISA Server Enterprise Edition позволяет запускать сервер ISA как в режиме выделенного (standalone) сервера, так и в режиме логического объединения нескольких серверов ISA в один массив (создать массив можно и на одном компьютере, но это не даст каких-либо преимуществ). Конфигурация в виде массива поддерживает корпоративные административные политики, т. е. изменения, сделанные на одной из систем массива, распространяются на все системы массива, так что отпадает необходимость вносить такие же изменения на каждой системе. Можно создать несколько массивов для поддержки многоуровневых политик и прав доступа. Кроме того, можно передавать право управления массивами другим пользователям и группам. Enterprise Edition интегрируется с Active Directory (AD) и сохраняет конфигурационные данные массива серверов ISA в AD, в отличие от выделенного сервера ISA, конфигурация которого сохраняется в системном реестре. Когда Enterprise Edition устанавливается в сети, где отсутствует AD, сервер ISA становится выделенным сервером. Enterprise Edition масштабируется на любое число процессоров. ISA Server Standard Edition поддерживает не более четырех процессоров. Для упрощения я использую в тестовой сети ISA Server в режиме выделенного сервера, не интегрированного в AD.
Клиенты
Сервер ISA поддерживает три типа клиентов: Secure Network Address Translation (SecureNAT) — клиент, обеспечивающий трансляцию сетевых адресов; клиент брандмауэра и клиент Web Proxy. Я настроил для теста клиента брандмауэра и Web Proxy. Рассмотрим свойства каждого из клиентов более подробно.
Клиент SecureNAT
Для клиентов SecureNAT сервер ISA играет роль устройства NAT, т. е. устройства, принимающего пакеты из внутренней сети и выполняющего трансляцию сетевых адресов при их передаче вовне. В пакетах, предназначенных для передачи за пределы внутренней сети, сервер ISA изменяет IP-адрес системы-отправителя на внешний IP-адрес сервера ISA. Например, если я настрою свою учебную сеть на поддержку клиентов SecureNAT, то, когда система Alpha будет посылать запрос Leonbr-Hm, тот идентифицирует запрос как пришедший с IP-адреса 192.168.154.20 (т. е. адреса внешнего сетевого интерфейса сервера ISA Leon). Весь процесс незаметен для клиента и не требует какого-либо дополнительного программного обеспечения на клиентской системе. По этой причине такой клиент работает на системах с любыми типами сетевых операционных систем. Единственное требование — необходимо настроить на клиентской системе адрес шлюза по умолчанию так, чтобы это был адрес внутреннего сетевого интерфейса сервера ISA. Если клиенты настроены на получение IP-адреса через DHCP, то можно настроить DHCP-сервер на выдачу клиентам корректного адреса шлюза по умолчанию. Если внутренняя сеть имеет множество подсетей, связанных маршрутизаторами, необходимо в конфигурации оконечного маршрутизатора указать адрес шлюза по умолчанию, соответствующий адресу внутреннего сетевого интерфейса сервера ISA.
Клиенты SecureNAT ответственны за разрешение имен, поэтому во внутренней сети должен быть доступен сервер DNS для разрешения адресов Internet. Можно указать внутренним клиентам внешний сервер DNS и создать на системе с сервером ISA специальные правила, разрешающие DNS-запросам проходить к внешнему серверу DNS и получать от него ответы. Но если клиентам необходимо разрешать как внутренние, так и внешние адреса, требуется установить локальный сервер DNS, который будет разрешать внутренние адреса и передавать запросы к внешним адресам на внешние серверы DNS.
Клиент SecureNAT не запускает какого-либо специального программного обеспечения, и поэтому сервер ISA не может определить, какие пользователи запрашивают внешние соединения, так что вы не сможете применять на сервере ISA политики безопасности, основанные на именах пользователей. Если настроить сервер ISA так, чтобы он требовал авторизации, все запросы клиентов SecureNAT будут запрещены. Также, если протокол уровня приложений, например FTP, требует создания вторичного соединения, придется использовать специальный прикладной фильтр. Сервер ISA поставляется с набором таких фильтров, но администратору, возможно, понадобится написать фильтр, если протокол, который требует открытия вторичного соединения, не попадает в этот список. И, поскольку пакеты не содержат IP-адреса источника, приложения, например Distributed COM (DCOM), базирующиеся на корректном IP-адресе источника, не будут работать с клиентом SecureNAT.
Клиент брандмауэра
Клиент брандмауэра должен запускать специальное программное обеспечение, ISA Server Firewall Client. Во время установки сервера ISA создается каталог \%programfiles%microsoft isa serverclients, содержащий все программные и конфигурационные файлы, необходимые для установки клиента. Для настройки клиента брандмауэра используется оснастка ISA ManagementClient Configuration, запускаемая из Microsoft Management Console (MMC). ISA Server распространяет эти установки на все системы, использующие клиента брандмауэра. Это программное обеспечение сервер ISA использует в качестве провайдера уровня сокетов Windows (Winsock Layered Service Provider). Клиент принимает все запросы от приложений, использующих сокеты, и передает их на систему с запущенным на ней сервером ISA. В результате все приложения во внутренней сети, использующие сокеты, работают так, как будто они непосредственно подключены к Internet. После установки этого программного обеспечения на клиентских системах пользователи, в частности, смогут запускать ftp.exe из командной строки и получать доступ к внешним FTP-сайтам.
У клиента брандмауэра разрешение имен устроено просто. По умолчанию ISA Server разрешает все имена, содержащие точки (например, www.braginski.com); имена без точек разрешаются локально. Для изменения настроек разрешения имен можно задействовать оснастку ISA Management.
Запрос клиента брандмауэра содержит имена пользователей, поэтому можно применять политики доступа, базирующиеся на именах пользователей. Однако запросы выполняются в контексте текущего пользователя, и клиентское программное обеспечение не имеет механизма для запроса у пользователей другого имени и пароля, если имя и пароль зарегистрированного пользователя неправильны. Поэтому, если запретить пользователю выход за пределы сетевого экрана, попытка выйти в Internet приведет к ошибке без предложения ввести другое имя и пароль.
Клиент Web Proxy
Использование клиента Web Proxy — наиболее простой путь обеспечить пользователям доступ в Internet. Чтобы его настроить, необходимо в настройках Web-браузера пользователя в качестве proxy-сервера указать адрес или имя сервера ISA. Клиент Web Proxy не может применять FTP-приложения командной строки. Чтобы преодолеть это ограничение, можно настроить клиента Web Proxy на использование клиента брандмауэра, который поддерживает все сетевые приложения. Как и сервер ISA, он имеет соответствующие фильтры приложений, которые поддерживают необходимые вторичные соединения. Клиенты в моем примере сконфигурированы как клиенты Web Proxy и брандмауэра.
Установка
При установке сервера ISA самое главное — определить, какой сетевой интерфейс находится во внутренней сети. Сервер ISA основывает все свои решения (например, предоставить ли клиенту доступ к внутренним системам либо обеспечить доступ за пределами внутренней сети) на локальной таблице адресов, Local Address Table (LAT), которая определена для внутреннего сетевого интерфейса. Во время установки можно выбрать диапазон IP-адресов внутренней сети. Проще всего выбрать режим создания таблицы, Construct Table, который открывает диалоговое окно Local Address Table. После того как администратор выберет сетевой интерфейс, подключенный к внутренней сети, и нажмет ОК, программа установки сервера ISA извлекает информацию об IP-адресах из таблицы маршрутизации Windows 2000 и заполняет LAT из диапазона внутренних IP-адресов. Впоследствии можно добавить или удалить IP-адреса из этого диапазона.
Управление
Сервер ISA управляется через оснастку ISA Management, которая поддерживает окна управления двух типов: Taskpad View (представление панели задач) и Advanced View (расширенное представление). Я предпочитаю расширенное представление, показанное на экране 1. Оно логически организует все компоненты сервера ISA в соответствующих папках, находящихся под системным объектом «сервер ISA». Назначение этих папок описано во врезке «Папки управления сервером ISA».
Настройка
Настройка сервера ISA для выделенных систем и для систем, являющихся частью массива, похожа. Для конфигурирования сервера ISA требуется открыть диалоговое окно свойств сервера ISA. Закладка диалогового окна Outgoing Web Requests («Исходящие Web-запросы»), показанная на экране 2, управляет обработкой исходящих запросов сервером ISA. На этой закладке можно изменить порт, который сервер ISA использует для исходящих соединений (например, 8080). Чтобы разрешить доступ в Internet через proxy-сервер только зарегистрированным пользователям, следует установить флажок Ask unauthenticated users for identification («Запрашивать идентификацию у незарегистрированных пользователей»). Когда вы настроите клиентов на использование сервера ISA в качестве proxy-сервера, этот режим будет вызывать появление у клиента при обращении в Internet через браузер приглашение ввести имя и пароль для авторизации на proxy-сервере.
Экран 2. Настройка исходящих запросов |
Подобно Microsoft IIS, сервер ISA поддерживает различные методы регистрации. Чтобы выбрать схему регистрации, которую клиент будет использовать для проверки имени и пароля на proxy-сервере, нужно выбрать сервер ISA в секции идентификации и нажать Edit, чтобы открыть диалоговое окно Add/Edit Listeners (добавить/редактировать слушателей). Я рекомендую выбрать встроенную (Integrated) аутентификацию, которая предписывает клиенту использовать аутентификацию по протоколу Kerberos (когда сервер ISA и клиенты являются членами домена AD) или по протоколу NT LAN Manager (NTLM). В том случае когда выбирается встроенная аутентификация, браузер клиента сначала пытается задействовать имя и пароль зарегистрированного пользователя. Если имя или пароль не подходят, браузер выдает приглашение ввести имя и пароль заново. Поэтому большинство пользователей домена применяют встроенную аутентификацию. В режиме аутентификации Basic with this domain «Базовая в текущем домене») имя и пароль посылаются по сети открытым текстом. Такая аутентификация безопасна только в случае использования приложениями соединений Secure Sockets Layer (SSL). Режим Digest with this domain («В соответствии с правилами домена») работает подобно NTLM, а вариант Client certificate («Сертификат клиента») работает только с соединениями SSL.
Папка Monitoringervices консоли управления ISA Management содержит три службы: Firewall Service, Web Proxy Service и Scheduled Content Download. Служба Firewall Service необходима для работы клиентов SecureNAT и брандмауэра. Служба Web Proxy, помимо обеспечения функций сервера-посредника, ускоряет работу с Internet для внутренних клиентов Web Proxy, используя кэш, находящийся на сервере ISA. Если необходимо, чтобы клиенты SecureNAT и брандмауэра могли воспользоваться преимуществами такого ускорения, сервер ISA должен перенаправлять их запросы на Web Proxy. Фильтр HTTP Redirector Filter, обеспечивающий такое перенаправление, находится в папке ExtensionsApplication Filters консоли управления ISA Management. Настройка параметров перенаправления доступна из контекстного меню фильтра. В своем примере я могу остановить службу Web Proxy без запрещения доступа в Internet для клиентов SecureNAT и брандмауэра. Я также могу остановить службу Firewall Service, после чего доступ в Internet смогут получить только клиенты Web Proxy. Служба Scheduled Content Download наполняет кэш содержимым наиболее часто используемых адресов Internet и не влияет на работу служб Firewall Service и Web Proxy.
По умолчанию после установки сервера ISA его алгоритм управления доступом (на рис. 2 показана упрощенная версия) предотвращает доступ внутренних клиентов ко всем внешним системам. Для каждого исходящего запроса служба Firewall Service определяет, имеются ли явно заданные текущие разрешения доступа или запреты на каждый из запрашиваемых протоколов, сайтов или тип содержимого. Можно назначать специальные правила для сайтов и их содержимого, которые будут определять, какой сайт или какой тип содержимого будет доступен тем или иным пользователям. ISA Server запрещает все внешние запросы до тех пор, пока администратор явно не разрешит их. Он также проверяет все пакеты, проходящие через proxy-сервер на предмет явного запрещения запросов каким-нибудь пакетным фильтром IP. Сервер ISA не использует каких-либо запрещающих фильтров по умолчанию. Например, внешние системы не смогут получать ответы от сервера ISA на команду ping до тех пор, пока администратор не создаст соответствующий пакетный IP-фильтр, явно разрешающий прохождение пакетов протокола Internal Control Message Protocol (ICMP), который использует команда ping. Поэтому первой задачей администратора в обеспечении доступа клиентов в Internet будет добавление в список разрешенных протоколов HTTP и HTTP Secure (HTTPS).
Для настройки правил и фильтров можно использовать папки Access Policy Site and Content Rules (правила доступа к сайтам и содержимому), Protocol Rules (правила использования протоколов), и IP Packet Filters (фильтры пакетов IP) консоли управления ISA Management. Для создания правила использования протоколов следует щелкнуть правой кнопкой мыши на папке Protocol Rules, затем выбрать New Rule для запуска мастера New Rule Wizard. Следуя указаниям мастера, создайте правило, разрешающее использование протоколов HTTP и HTTPS. В своем примере я назвал это правило Http Allow (разрешение HTTP). Нажмите Next, затем выберите Allow. На следующем экране нужно выбрать из списка Selected Protocols протоколы HTTP и HTTPS. На всех последующих экранах нажимаем Next для принятия установок по умолчанию. После закрытия мастера следует перезапустить службы Firewall Service и Web Proxy, выбирая в контекстном меню каждой службы (в папке MonitoringServices) пункт Stop, затем остается выбрать Start для перезапуска служб.
Политики использования протоколов и политики управления доступом
Теперь давайте рассмотрим работу proxy-сервера ISA-Leon и настроим клиента Alpha для доступа к Leonbr-Hm. Откроем Microsoft Internet Explorer (IE) и выберем Tools, Internet Options из строки меню. Далее требуется выбрать закладку Connections («Соединения»), затем нажать кнопку LAN Settings («Настройка сети»). В открывшемся окне Local Area Network (LAN) Settings («Настройка локальной сети») нужно установить флажок Use a proxy server for your LAN («Использовать proxy-сервер для вашей сети»). Для модемных и VPN-соединений эти установки недоступны. В поле Address следует ввести ISA-Leon, в поле Port — 8080. Для проверки возможности доступа в Internet через локальную сеть я поместил небольшой сценарий, показанный в листинге, в папку inetpubscripts на Leonbr-Hm. Кроме того, я настроил сервер ISA так, чтобы он проводил идентификацию для незарегистрированных в домене пользователей. На сервере ISA используется метод базовой аутентификации (Basic authentication method), поэтому я всегда смогу просмотреть результаты своего теста.
Когда я регистрируюсь на Alpha и перехожу по адресу http://leonbr-hm/script, браузер Alpha выводит приглашение ввести имя и пароль для proxy-сервера. Когда я введу имя и пароль пользователя, который имеет доступ к серверу ISA (например, для учетной записи администратора на ISA-Leon), proxy-сервер разрешит соединение. Браузер на клиенте Alpha выведет страницу, показанную на экране 3. Обратите внимание на заголовок HTTP_VIA в приведенном запросе. Proxy-сервер добавляет этот заголовок, чтобы показать, что ISA-Leon перенаправил данный запрос. Если бы я выбрал встроенный (Integrated) тип аутентификации, браузер пытался бы задействовать имя и пароль пользователя, зарегистрированного в данный момент в системе. В этом случае сервер ISA не стал бы выводить приглашение для ввода имени и пароля, если бы учетная запись, под которой я зарегистрировался на клиенте, не имела достаточных прав для доступа к proxy-серверу.
Экран 3. Подсоединение к proxy-серверу |
Аутентификация соединения с proxy-сервером позволяет идентифицировать пользователя и отслеживать использование Internet-ресурсов. Поскольку proxy-сервер записывает в журнал учетные данные пользователей, можно предписать серверу ISA вести наблюдение за доступом к различным сайтам и записывать результаты в журнал. Сервер ISA создает журнал в папке \%programfiles%microsoft isa serverisalogs. Образец журнала показан на экране 4 (для простоты я удалил большинство полей). В журнале показаны IP-адреса систем, имена пользователей, типы запросов и запрашиваемые адреса (URL). Например, можно просматривать эти журналы на предмет посещения пользователями запрещенных сайтов. Если потребовать авторизации на proxy-сервере (установив флажок Ask unauthenticated users for identification в диалоговом окне Properties сервера), можно будет определить, кто из пользователей нарушал правила (если не выбирать этот параметр, сервер ISA все соединения будет считать анонимными).
Использование сервера ISA в качестве сетевого экрана и сервера-посредника поможет защитить сеть от внешних атак за счет возможности управления внешним доступом. Кроме того, proxy-сервер позволяет управлять доступом внутренних клиентов в Internet.
Леон Брагинский - Технический руководитель Microsoft Developer Support. Соавтор книги Microsoft Internet Information Server и автор статей в MSDN Magazine. leonbrag@braginski.com
Папки управления сервером ISA
Для управления Microsoft Internet Security and Acceleration (ISA) Server 2000 используется консоль Microsoft Management Console (MMC) и оснастка ISA Management. Оснастка ISA Management поддерживает расширенный режим (Advanced view), который группирует параметры сервера в папки, находящиеся под каждым системным объектом ISA Server. Данный режим упрощает управление сервером ISA. Рассмотрим подробнее эти папки и их назначение.
Папка Monitoring содержит несколько вложенных папок. Во вложенной папке Alerts хранятся короткие сообщения и предупреждения, которые появляются в системном журнале службы Firewall Service в ответ на те или иные события. Вложенная папка Services содержит информацию о запущенных службах и позволяет останавливать и запускать их. Вложенная папка Sessions помогает следить за текущей активностью сервера ISA. Вложенная папка Reports содержит задания на создание отчетов сервером ISA (например, отчетов об использовании Web), которые можно запускать по расписанию.
Папка Computer содержит список компьютеров, на которых установлена система ISA и которые являются членами массивов наряду с выбранной системой.
Папка Access Policy содержит три вложенные папки: Site and Content Rules, Protocol Rules и IP Packet Filters. Сервер ISA использует комбинацию этих правил для обеспечения защиты доступа в Internet.
Папка Publishing позволяет обеспечить безопасную публикацию ресурсов внутренних серверов для внешних клиентов. Папка Bandwidth Rules позволяет управлять полосой пропускания в зависимости от протокола, целевого адреса и других факторов. Папка Policy Elements хранит предварительно созданные наборы информации, такие как списки IP-адресов, списки адресов-приемников, расписания (например, Work Hours определяет часы рабочего времени пользователей). Можно комбинировать политики доступа и элементы политик для создания гибких обязательных политик доступа в Internet. Например, можно создать список существующих сайтов, таких как amazon.com или bn.com, и составить расписание с именем Lunch Time (обеденное время), которое определит часы обеденного времени пользователей. Затем можно будет использовать эти установки для предоставления доступа к сайтам из списка только в обеденное время.
Папка Cache Configuration позволяет настраивать функцию кэширования сервера ISA (т. е. какое содержимое и в течение какого времени должно храниться в кэше сервера ISA). Папка Monitoring Configuration позволяет определить, какое действие должен выполнить сервер ISA в ответ на определенное событие (например, послать по электронной почте сообщение администратору в случае остановки какой-либо службы). Папка Extensions может пригодиться для работы с динамическими библиотеками, которые расширяют функциональность сервера ISA (для написания таких библиотек следует использовать ISA Server SDK). Папка Network Configuration управляет тем, как сервер ISA маршрутизирует запросы и тем, как ISA перенаправляет их на другие proxy-серверы. Папка Client Configuration содержит настройки клиента брандмауэра ISA Server Firewall Client.