АНДРЕЙ БИРЮКОВ
Тонкая настройка Microsoft ISA 2004
Известно, что настройки, используемые по умолчанию при установке программного обеспечения, не являются оптимальными. Как можно настроить межсетевой экран ISA 2004, чтобы оптимизировать работу сети?
Межсетевой экран Microsoft ISA 2004 содержит множество функций, необходимых для организации полноценной работы корпоративной сети. В предыдущих статьях [1, 2] я рассмотрел вопросы, связанные с подключением пользователей к Интернету и организацией удаленного доступа к корпоративным ресурсам. Теперь наша географически распределенная корпоративная сеть может полноценно функционировать, обеспечивая как доступ локальным пользователям к ресурсам Интернета, так и доступ сотрудникам, работающим удаленно в филиалах, к ресурсам основной сети. Поскольку с течением времени численность сотрудников компании может увеличиваться, также могут расширяться филиалы, в связи с этим возрастает нагрузка на каналы связи. Увеличение пропускной способности каналов, как правило, требует дополнительных финансовых затрат, к тому же не всегда возможно. Но снизить нагрузку можно, не прибегая к каким-либо затратам, используя возможности ISA Server. Для этого имеются возможности управления трафиком, кэширование, сжатие данных и т. д.
Предыстория, исправление ошибок
Изначально в ISA 2004 некоторые из вышеперечисленных функций заложены не были. Например, отсутствовали средства управления трафиком и активное кэширование. В предыдущей версии межсетевого экрана ISA 2000 эти функции были реализованы, однако, по заверениям Microsoft, не пользовались популярностью, поэтому в первом релизе 2004 средства управления трафиком отсутствовали. Но вскоре в Microsoft осознали ошибочность такого подхода, и реализация данных средств была включена в пакет обновлений Service Pack 2.
Перехожу непосредственно к описанию тех компонентов, с помощью которых можно повысить эффективность сети.
Начну с фоновой интеллектуальной службы передачи (Background Intelligent Transfer Service – BITS), которая помогает передавать большие объемы информации без уменьшения производительности сети. Достигается это за счет передачи данных небольшими порциями, используя невостребованную доступную пропускную способность, и соединения порций данных в месте назначения. В ISA Server 2004 SP2 встроен механизм кэширования данных, полученных из центра Microsoft Update с помощью BITS. Обновление операционных систем Microsoft Windows и других продуктов компании Microsoft на компьютерах компании может использовать большую часть доступной пропускной способности сети. Это может создать особые сложности, если для подключения к Интернету используется канал с низкой пропускной способностью. Но своевременное выполнение обновлений необходимо для стабильной работы Windows-приложений. ISA предоставляет возможность для кэширования данных Microsoft Update с помощью BITS для хранения обновлений так, чтобы кэш ISA-сервера сам отвечал на запросы. Обновления могут быть получены через Интернет один раз, а затем применяться по всей корпоративной сети. Для кэширования данных Microsoft Update использует запросы HTTP по диапазону (HTTP Range Requests). За счет того, что ISA-сервер может кэшировать такие запросы, достигается дополнительная эффективность. Это увеличивает скорость обновления при низкой пропускной способности сети и безопасность сетевого окружения, так как быстрая и своевременная установка обновлений позволяет повысить устойчивость к сбоям.
Для того чтобы настроить кэширование на ISA Server, нужно проделать следующие действия:
В консоли управления ISA-сервера откройте пункт «Cache», затем определитесь с правилами «Cache Rules». В панели задач создайте правило кэширования данных для обновлений: «Create the Microsoft Update Cache Rule». На последней странице просмотрите информацию о настройке и нажмите «Finish», затем «Apply», чтобы изменения вступили в силу.
Сжимаем трафик
Другим средством, позволяющим снизить загруженность каналов доступа в Интернет, является HTTP-компрессия, которая уменьшает размер файла, используя алгоритмы для снижения избыточности передаваемых данных. Таким образом, могут быть безопасно сжаты файлы большинства типов. HTTP-компрессия использует стандартные алгоритмы GZIP и Deflate, которые встроены в Windows 2000, 2003 и новые операционные системы, а также в Internet Explorer версии 4 и выше. Эти же алгоритмы используются для декомпрессии статических файлов и динамических ответов на стороне клиента, поддерживающего протокол HTTP 1.1. Клиент, настроенный на использование протокола HTTP 1.1, запрашивает сжатую информацию у веб-сервера. Веб-сервер в ответе указывает, поддерживает ли он компрессию или нет.
В ISA-сервере HTTP-компрессия является глобальной установкой для всего трафика данного протокола. Она применяется ко всему HTTP-трафику, проходящему через ISA-сервер «к» или «от» отдельной сети или сетевого объекта, а не только для трафика, управляемого отдельным правилом. HTTP-компрессия представлена двумя веб-фильтрами:
- Фильтр сжатия. Отвечает за компрессию и декомпрессию запросов и откликов HTTP. Обладает высоким приоритетом и находится на вершине списка веб-фильтров, поскольку он отвечает за декомпрессию, без чего остальные фильтры не смогут получить доступ к содержимому потока. В случае выбора проверки сжатого содержимого декомпрессия должна проходить до того, как другие веб-фильтры будут проверять содержимое.
- Фильтр кэширования сжатого содержимого. Отвечает за кэширование сжатого содержимого и обслуживает запросы на сжатое содержимое из кэша. У него самый низкий приоритет, и он расположен в конце списка веб-фильтров, поскольку кэширование происходит после того, как все фильтры проверят содержимое.
Не рекомендуется изменять приоритеты по умолчанию для этих фильтров. HTTP-компрессия также дает возможность установки компрессии по диапазону.
Компрессия по диапазону – это сжатие отдельного HTTP-запроса. Компрессия по диапазону может использоваться для несжатых файлов типа PDF (Portable Document Format – формат портативных документов).
Однако, если в вашей сети используется веб-сервер от Microsoft IIS (Internet Information Services), то не включайте эту функцию, так как он не поддерживает компрессию.
Применительно к инфраструктуре ISA, которую мы развернули в предыдущих статьях [1, 2], и в частности к связи центрального и удаленного офисов, можно развернуть компрессию по диапазону между двумя ISA-серверами. К примеру, если в главном офисе стоит веб-сервер, можно отключить компрессию по диапазону во внутренней сети главного офиса, но включить ее во внешней сети между главным офисом и филиалами. Таким образом, компрессия по диапазону будет использоваться между офисами.
Прежде чем описать практическую реализацию, рассмотрим процесс сжатия в ISA Server 2004 SP2:
- Браузер клиента запрашивает контент.
- Настройки в филиале не разрешают клиенту использование режима сжатия контента. Однако ISA-сервер в филиале настроен на данный режим и поэтому посылает в главный офис уже сжатый запрос.
- ISA-сервер главного офиса получает запрос. Поскольку клиенту (ISA-сервер филиала) разрешен сжатый контент, ISA-сервер посылает запрос на веб-сервер. Однако ISA-сервер в главном офисе настроен на запрет запросов с компрессией, ответ веб-сервера содержит несжатый контент.
- Когда ISA-сервер главного офиса получает запрос, он возвращает его ISA-серверу филиала. Поскольку запрос от ISA-сервера филиала запрашивал сжатие, ISA-сервер главного офиса сжимает данные перед отправкой.
- ISA-сервер филиала получает ответ, сжатый контент. ISA-сервер делает декомпрессию и передает несжатые данные клиенту в филиале.
Графически алгоритм изображен на рис. 1.
Рисунок 1. Взаимодействие между основным и удаленным офисами
Теперь реализуем HTTP-компрессию на практике. Для этого требуется произвести следующие действия. Как и в прежних примерах, основным инструментом выступает консоль администрирования ISA. Далее «Configuration» и «General». На вкладке «Global HTTP Policy Settings» нажмите «Define HTTP Compression Preferences» (определить предпочтения HTTP-компрессии). Откроется окно свойств «HTTP Compression». На вкладке «Settings» вы можете добавить сетевые объекты, для которых требуется HTTP-компрессия. Далее «Add». Откроется диалоговое окно «Add Network Entities». Выберите в нем объект и нажмите «Add». Повторите эту процедуру для каждого элемента и нажмите «Close».
Обратите внимание, что список сетевых объектов упорядочен, так что вы можете установить предпочтения компрессии между сетевыми объектами (см. рис. 2).
Рисунок 2. Выбираем типы контента
Используйте стрелки для изменения порядка сетевых элементов. Выделите сетевой элемент и нажмите «Set Compression» для установки свойств компрессии. При этом можно выбрать:
- Reply with compressed HTTP content (отвечать со сжатым HTTP-содержимым). В этом случае ISA-сервер возвращает сжатое содержимое, если клиент запросил компрессию данных от этого сетевого элемента.
- Request compressed HTTP content from servers (запрашивать сжатое HTTP-содержимое от серверов). В этом случае ISA-сервер запрашивает сжатое содержимое от сетевых элементов.
После настройки компрессии для сетевых элементов в диалоговом окне «Set Compression» нажмите «OK» для его закрытия.
Особенности настройки компрессии по диапазону
Компрессия по диапазону не устанавливается через консоль управления ISA-сервера. Поэтому администратор должен редактировать xml-файл вручную и установить флажок CompressRange. Итак, выполните следующие действия:
- Создайте xml-файл следующей структуры:
Листинг 1. XML-файл для компрессии по диапазону
<Compression ContentInspectionIsRequired="false"
MinimumCompressionLength="36"
MemAllocCompression="256">
<NetworksElements>
<NetworkElement
Name="Internal"
Type="Network"
ClientCanAskForCompression="true"
ServerShouldCompressResponse="false"
CompressRange="false"
StorageName="{4E32B556-0FAF-4A27-9111-085F679EDC9B}" />
<NetworkElement
Name="External"
Type="Network"
ClientCanAskForCompression="false"
ServerShouldCompressResponse="true"
CompressRange="true"
StorageName="{F129EACF-778B-44FE-B339-5B752D7220A3}" />
</NetworksElements>
<ContentTypes CompressOnlyFollowingContentType="false">
<ContentType
Name="Images"
StorageName="{2f203d1d-9ca0-414a-b036-fc9c585677ab}" />
<ContentType
Name="Video"
StorageName="{7d3e566c-e96c-4cd4-b6aa-8181a8386c8e}" />
</ContentTypes
- Вы можете создать xml-файл при настройке HTTP-компрессии в консоли управления ISA-сервера, а затем экспортировать настройки с помощью файла SetCompConfig.vbs. Синтаксис строки запуска:
SetCompConfig.vbs export имя_файла
- Отредактируйте xml-файл для изменения настроек и снова запустите скрипт для измененного файла. Запустите файл SetCompConfig.vbs с именем вашего файла в качестве параметра. Так вы поместите файл в хранилище ISA-сервера. Для импорта используйте следующий синтаксис:
SetCompConfig.vbs import имя_файла
Файл сценария входит в состав Compression Configuration Tool for Microsoft Internet Security and Acceleration (ISA) Server 2004 Service Pack 2 (SP2), который можно получить на сайте Microsoft. Для настройки Internet Explorer на использование HTTP 1.1 на вкладке «Advanced» окна «Internet Options» выберите пункт «Use HTTP 1.1 through proxy connections». Тут следует сделать небольшую поправку, отметив, что трафик HTTPS не сжимается.
Организовываем очередность
Сжатие HTTP-контента позволяет существенно сэкономить пропускную способность канала. Однако пропускной способности на всех не хватает, в результате может возникнуть весьма неприятная ситуация, когда пользователи заполняют канал, скачивая мультимедийный контент, зачастую не имеющий никакого отношения к бизнес-процессам (но разрешенный политиками безопасности). А в это время критически важные для бизнеса приложения не могут установить соединение или работают слишком медленно. Для борьбы с этим можно воспользоваться встроенным в ISA Server 2004 SP2 механизмом приоритезации пакетов.
Конечно, следует сразу отметить, что этот механизм несколько уступает службе QoS (Quality of Service), в частности, ее реализации на активном сетевом оборудовании. Приоритет пакетов – это установка глобальной политики HTTP. Приоритет применяется ко всему трафику, проходящему через ISA-сервер, а не только к тому, который управляется специальным правилом. Приоритет пакетов устанавливается с помощью веб-фильтра DiffServ, который проверяет URL или домен и назначает пакетам приоритет с помощью битов данных DiffServ. В ISA-сервере можно создать приоритеты, биты DiffServ которых совпадают с приоритетами на корпоративных маршрутизаторах. Таким образом, можно настроить корпоративные маршрутизаторы на передачу пакетов соответственно их приоритету (см. рис. 3).
Рисунок 3. Устанавливаем очередность
Фильтр обладает высоким приоритетом и находится в вершине списка веб-фильтров, поскольку этот фильтр должен знать реальный размер посланного запроса или ответа и должен проверить данные, получаемые или передаваемые ISA-сервером.
Не изменяйте приоритет по умолчанию и порядок настроек фильтра.
Замечание 1
ISA-сервер не добавляет биты DiffServ в заголовки, отличные от HTTP или HTTPS. ISA-сервер не может передавать существующие биты DiffServ на трафик других протоколов. (Данная информация может быть удалена из заголовка сессии.)
Для ответов из кэша приоритет первого пакета не устанавливается.
Установка приоритета пакета не учитывает размер первой порции данных при назначении приоритета первому пакету. Поэтому приоритет первого пакета выставляется для большой порции данных.
На вкладке «Content Types» (типы содержимого) вы можете указать, какой тип содержимого требует сжатия. У вас есть возможность указать, какой тип будет исключен (остальные включены) или какой тип включен (остальные исключены). Далее выберите включаемые или исключаемые типы содержимого. Рис. 3 является примером настройки, при которой HTML-документы будут сжиматься. Вы можете создать новый тип в панели задач политик брандмауэра на вкладке «Toolbox» (средства), как описано в помощи ISA-сервера.
Замечание 2
Далее перечислены типы данных, которые не могут быть эффективно сжаты, поскольку они уже представлены с компрессией:
- video
- audio
- application/x-tar
- x-world/x-vrml
- application/zip
- application/x-gzip
- application/x-zip-compressed
- application/x-compress
- application/x-compressed
- application/x-spoon@@
На вкладке «Content Inspection» (проверка содержимого) вы можете указать, проверять ли веб-фильтрам содержимое или нет. Для этого сжатое содержимое будет подвержено декомпрессии. После декомпрессии содержимое хранится в кэше как несжатый текст. Если ISA-сервер получает запрос на данные из кэша, он сжимает их снова перед отправкой, что увеличивает время ответа. По окончании настройки нажмите «Apply», чтобы изменения вступили в силу.
Итак, в результате несложных настроек мы увеличили эффективность использования сетевой инфраструктуры, настроив кэширование и сжатие контента, а также выставив приоретизацию пакетов.
Приложение
Смотрим в будущее
В 2006 году вышла новая версия межсетевого экрана ISA 2006. Внешне она мало отличается от предыдущей. Однако официальное описание продукта на сайте Microsoft сообщает о следующих изменениях и улучшениях:
- улучшена возможность публикации Outlook Web Access;
- добавлен мастер публикации Sahrepoint;
- добавлена поддержка Exchange 2007;
- добавлен мастер подключения удаленных офисов по VPN;
- добавлена защита от атак типа flooding.
Также, по заявлению создателей, теперь межсетевой экран Microsoft ISA Server 2006 Standard и Enterprise Edition доступен в виде appliance (программно-аппаратных решений).
Продукт уже продается, к тому же любой желающий может загрузить испытательную версию с сайта Microsoft [4] и своими глазами убедиться в том, насколько хороша или плоха новая версия межсетевого экрана ISA 2006.
- Бирюков А. Устанавливаем межсетевой экран MS ISA Server 2004. //«Системный администратор», №12, 2006 г. – С. 4-8.
- Бирюков А. Настраиваем удаленный доступ к сети с помощью MS ISA 2004. //«Системный администратор», №1, 2007 г. – С. 26-31.
- Русскоязычная документация и статьи по ISA Server – http://www.isadocs.ru.
- Испытательная версия ISA 2006 – http://www.microsoft.com/technet/isa/downloads/2006.