Повышенная безопасность и переносимая метабаза IIS 6.0

В статье «Новая архитектура IIS Version 6.0» (опубликованной в предыдущем номере журнала — прим. ред.) было рассказано о процедуре установки Microsoft Internet Information Services (IIS) версии 6.0 и новой архитектуре Web-сервера. Количество новых функций IIS 6.0 просто поражает. Некоторые из них стоит выделить особо. Во второй части статьи я рассмотрю два таких нововведения и уделю внимание другим, менее известным, но тем не менее весьма важным особенностям IIS 6.0.

Безопасность

Время от времени Microsoft устает мириться с очередной проблемой в одном из своих продуктов и устраняет ее. Например, после выпуска Windows NT 4.0 потребители засыпали компанию жалобами на нестабильность. В результате операционная система Windows 2000 отличается высокой стабильностью даже в стандартной конфигурации. Служба IIS 5.0, разворачиваемая по умолчанию на серверах Windows 2000, подвергает систему безопасности огромному риску, если администратор не примет надлежащих мер. IIS 6.0 по умолчанию не устанавливается, а после установки Web-сервер выдает только статический контент. Таким образом, применение IIS 6.0 связано с гораздо меньшим риском для системы безопасности, даже если впоследствии возникают проблемы с прикладными механизмами и компонентами IIS 6.0. Кроме того, в Windows Server 2003 появилась новая групповая политика: Prevent IIS installation. С ее помощью можно запретить системам Windows 2003 устанавливать IIS 6.0 на серверах в лесу Active Directory (AD), не предназначенных для использования в качестве Web-серверов. Эта политика предотвращает появление в сети ложных и потенциально небезопасных IIS-серверов. Следует отметить, что пока данная политика работает только на серверах Windows 2003 и не запрещает установки IIS 5.0 на системах Windows XP Professional Edition и Windows 2000.

Конечно, то обстоятельство, что по умолчанию IIS 6.0 с динамическим контентом не работает, естественно, вызывает второй, наиболее часто задаваемый вопрос об IIS 6.0: «Почему мой сервер не доставляет Active Server Pages (ASP)?» Как отмечалось в упомянутой выше статье, первый часто задаваемый вопрос: «Можно ли установить IIS 6.0 на Windows 2000 Server?» Ответ — нет. Чтобы разрешить работу программ в среде IIS 6.0, следует использовать новую функцию Web service extensions. Название наводит на мысль о связи с XML Web-службами, но в действительности никакой связи нет.

Чтобы добавить Web service extension для программы, нужно открыть IIS Manager (прежнее название Internet Services Manager, ISM), выбрать Web Service Extensions, как показано на Экране 1, и щелкнуть на кнопке Add a new Web service extension. В результате будет запущен мастер для подготовки нового правила. Правилу необходимо дать имя, а затем перейти к программе, которую следует назначить. Управлять параметрами Web service extension можно с помощью сценария iisext.vbs в папке system32inetsrv.

На Экране 1 нужно обратить внимание на расширения Web-служб All Unknown ISAPI Extensions и All Unknown CGI Extensions. По умолчанию этим двум элементам назначается режим Prohibited. Значит, приложение не будет работать, если ему явно не предоставлено разрешение для работы с IIS 6.0. Если пользователь запрашивает файл, не связанный с активным процессом, то IIS 6.0 передает ему сообщение об ошибке «HTTP Error 404 File or directory not found» и записывает в журнал W3SVC сообщение 404.2 «Denied due to lockdown policy». 404.2 и другие коды статуса IIS 6.0 можно записать в файл W3SVC для диагностики. Коды статуса в IIS 5.0 и IIS 4.0 существуют, но в журналы W3SVC не записываются. Их можно направить для обработки на специальные страницы ошибок. Коды статуса IIS 6.0 полезны, так как в них приведены подробные сведения о неполадках: например, 403.18 Forbidden — Cannot execute request from this application pool («невозможно выполнить запрос из данного пула приложений»); 403.20 Forbidden: Passport Login failed («ошибка Passport Login»); 404.3 Not Found — Denied due to MIMEMAP Policy («отказано на основании политики MIMEMAP»). Эти и другие ошибки пересылаются на специализированные страницы, которые не сообщают пользователю код статуса, и потенциальный взломщик не сможет воспользоваться данной информацией.

Еще одно усовершенствование в системе безопасности — возможность назначить Cryptographic Service Provider (CSP — провайдер услуг по шифрованию), который облегчает интеграцию аппаратных акселераторов шифрования Secure Sockets Layer (SSL) с IIS 6.0. Переместив задачи шифрования с универсального процессора сервера на специализированное аппаратное устройство, оптимизированное для этой цели, можно значительно повысить производительность. Чтобы назначить устройство CSP, следует установить флажок Select cryptographic service provider (CSP) for this certificate при подготовке запроса сертификата с использованием мастера IIS Certificate Wizard. На экране появится список Available Providers, из которого можно выбрать провайдера. Если используется специализированное устройство шифрования, то поставщик предложит подходящего CSP.

Метабаза

Работая над IIS 6.0, специалисты Microsoft отказались от двоичной файловой структуры метабазы IIS 5.0 и IIS 4.0, привязывавшей метабазу к серверу, на котором она создана. Метабаза IIS 6.0 состоит из двух XML-файлов: Metabase.xml содержит параметры сервера IIS 6.0, а mbschema.xml — схему метабазы. Новая функция IIS Manager позволяет сохранить копию метабазы, для этого требуется щелкнуть правой кнопкой мыши на Web Sites и выбрать пункты All Tasks, Save Configuration to a File. Затем следует указать имя файла и путь к резервной копии метабазы. При таком способе сохранения метабазы IIS 6.0 шифрует некоторые ее части с использованием ключа системы. Следовательно, резервная копия метабазы может пригодиться только на той машине, на которой она была создана. Однако если установить флажок Encrypt configuration using password и зашифровать экспортируемый файл метабазы паролем, указанным администратором, IIS 6.0 заменит компьютерный ключ паролем администратора, и файл метабазы можно будет импортировать на другой сервер, используя прежний пароль. Автоматизировать процедуру резервного копирования метабазы можно с помощью утилит iisback.vbs и scnfg.vbs из папки windowssystem32.

В некоторых случаях полезно сохранить конфигурацию пула приложений, Web-узла или виртуального каталога, не сохраняя всю метабазу. Для этого следует щелкнуть правой кнопкой мыши на объекте, конфигурацию которого нужно сохранить, и вновь выбрать пункты All Tasks, Save Configuration to a File (см. Экран 2). Чтобы импортировать параметры на другой сервер, требуется ввести пароль для шифрования файла.

Если щелкнуть правой кнопкой мыши на разделе Application Pools, Web Sites или на отдельном Web-узле и выбрать пункты New, Application Pool (from file); New, Web Site (from file); или New, Virtual Directory (from file), то можно сформировать новый пул приложений, Web-узел или виртуальный каталог из сохраненного файла. Так, например, можно создать виртуальный каталог, экспортировать параметры виртуального каталога с помощью функции Save Configuration to a File, а затем воспользоваться функцией New, Virtual Directory (from file), чтобы импортировать эти параметры на несколько Web-узлов. Другими словами, имеется возможность построить шаблон, настроенный в точном соответствии с требованиями администратора, и использовать его как для организации или конфигурирования новых сайтов, так и для восстановления параметров.

Еще одно преимущество новой переносимой метабазы IIS 6.0 — возможность творческого подхода к модернизации. Чтобы не выполнять переход с Windows 2000/IIS 5.0 на Windows 2003/IIS 6.0 на месте, необходимо решить проблему миграции непереносимой метабазы IIS 5.0 на новый сервер IIS 6.0. Для этого нужно создать новый сервер Windows 2003, сделать резервную копию сервера Windows 2000, а затем модернизировать сервер Windows 2000 до Windows 2003. Полученную в результате метабазу можно сохранить с паролем, а затем импортировать на новый сервер. В метабазу придется внести некоторые поправки на учетную запись IUSR нового сервера и другие изменения, но, по крайней мере, перенос становится возможным.

Метабаза IIS 6.0 представляет собой текстовый файл, содержащий корректные конструкции XML, поэтому ее можно открыть и отредактировать в таком текстовом редакторе, как Notepad. В некоторых случаях, при замене метабазы IIS 5.0 или IIS 4.0, необходимо перезапустить IIS. На машинах со многими Web-узлами эта операция может занять довольно много времени и привести к простоям на серверах, имеющих большие метабазы, например на серверах Internet-провайдера. Во избежание подобных осложнений, IIS 6.0 дополнен функцией редактирования на ходу, которую можно запустить, установив флажок Edit в диалоговом окне Properties для сервера в IIS Manager. После того как будет установлен флажок (см. Экран 3), можно открыть метабазу в Notepad, вставить в нее виртуальный каталог и закрыть файл. Изменения вступят в силу почти немедленно, без перезапуска.

Экран 3. Режим прямого редактирования метабазы.

Конечно, в результате прямого редактирования метабазы легко повредить сервер или приложение. Поэтому разработчики Microsoft создали папку истории версий метабазы system32inetsrvhistory. Всякий раз, когда в метабазу вносится изменение или перезапускается IIS 6.0, в этой папке сохраняется резервная копия старой метабазы.

IIS Manager

От каждой существенно обновленной версии продукта мы ожидаем заметных улучшений пользовательского интерфейса. Но число изменений в IIS Manager IIS 6.0 на удивление мало.

Одно из новшеств пользовательского интерфейса заслуживает внимания —оно простое, но полезное. Если щелкнуть правой кнопкой мыши на папке в IIS Manager, можно выбрать пункт Permissions, который открывает вкладку Security данной папки. На данной вкладке можно изменить разрешения NTFS, не покидая IIS Manager. В этом году новая функция сэкономит администраторам всего мира тысячи рабочих часов.

Другое изменение связано со страницей свойств, отображаемой по щелчку правой кнопкой мыши на Web-узле. Следует выбрать пункт Properties, перейти к вкладке Directory Security и щелкнуть на функции Edit в разделе Secure Communications. Страница свойств Secure Communications используется для настройки SSL, списков доверия сертификатов (certificate trust list, CTL) и клиентских сертификатов.

В IIS 5.0 и IIS 4.0 доступ к этой странице можно получить лишь после установки сертификата на Web-узле. Данное ограничение не совсем понятно, так как настройка списков CTL и клиентских сертификатов с технической точки зрения не требует установки сертификата на сервере. Другими словами, требование пользовательского интерфейса — единственная причина для применения сертификата в IIS 5.0. В IIS 6.0 это несоответствие исправлено — обращаться к странице свойств и использовать ее функции можно, не задействуя сертификата на Web-узле.

Разрешение доступа к CTL и клиентским сертификатам без установки сертификата на Web-узле устраняет одну проблему, но порождает другую. С помощью страницы свойств Secure Communications можно задействовать функцию Require secure channel (SSL). Однако, поскольку в IIS 6.0 для обращения к данной странице сертификат не нужен, Web-узел или каталог могут требовать SSL, даже если Web-узел не настроен на использование SSL.

В этом случае пользователи получат сообщение 403.4 Forbidden: SSL is required to view this resource («Для просмотра данного ресурса необходим протокол SSL»). Но не следует заблуждаться: возможность активизировать режим Require secure channel (SSL) для Web-узла или каталога не означает, что Web-узел или каталог могут согласовать SSL.

Механизм перехвата ISAPI

Тем администраторам, которые знакомы с фильтрами Internet Server API (ISAPI) IIS 4.0 и IIS 5.0, вероятно, известны и их недостатки. Такие фильтры трудно строить, а поскольку они работают в процессе Inetinfo, то ошибки могут привести к катастрофическим отказам. ISAPI-фильтры не располагают всеми возможностями полноценных DLL ISAPI. Тем не менее они полезны, так как это единственный механизм IIS 4.0 и IIS 5.0, который позволяет применить любой программный код ко всему трафику, поступающему на Web-сервер или Web-узел.

В IIS 6.0 реализован новый, более гибкий механизм, известный как перехват ISAPI (ISAPI interceptors, иначе называемые программами подставки — wildcard applications), который обеспечивает услуги, часто предоставляемые фильтрами ISAPI. Чтобы настроить такие приложения, следует щелкнуть правой кнопкой мыши на Web Sites в IIS Manager, выбрать пункт Properties и перейти к вкладке Home Directory, а затем щелкнуть на Configuration. На вкладке Mappings диалогового окна Application Configuration (см. Экран 4) можно вставить несколько ISAPI DLL в качестве программ подставки. IIS 6.0 будет вызывать эти приложения для каждого поступающего запроса. Соответствующие параметры можно настроить для отдельных Web-узлов и каталогов. Поскольку перехватчики ISAPI представляют собой типичные приложения ISAPI, они наделены полным набором функций, свойственных любому приложению ISAPI, в том числе функций доступа к телу сообщений, а не только к заголовкам, как в фильтрах ISAPI.

С помощью подставляемого приложения можно выполнить любые операции, необходимые разработчику, в том числе настройку URL, аутентификацию, специальные процедуры регистрации, обнаружение попыток несанкционированного доступа и создание контента. После того как «подставленное» приложение закончит свою работу, оно передает запрос соответствующему механизму обработки (например, asp.dll для ASP-страницы), который обслуживает запрос. Подставляемое приложение может перенаправить трафик на любую страницу в том же пуле приложений, вызвав новую функцию ExecuteURL, доступную для приложений ISAPI.

Данный метод перехвата ISAPI открывает новые возможности для программистов приложений. Например, новые функции авторизации URL реализованы как ISAPI-перехватчик в urlauth.dll. Благодаря авторизации, IIS 6.0 предоставляет доступ к URL на основе правил, таких, как членство в группе, текущее состояние или любой другой атрибут, связанный с пользователем в базе данных или AD. Более подробную информацию о перехвате ISAPI и авторизации URL можно найти в файлах подсказки IIS 6.0.

Протоколирование

Серверным функциям протоколирования редко уделяется повышенное внимание, но они необходимы для повседневного управления и мониторинга сервера. В IIS 6.0 они были значительно усовершенствованы, но, к сожалению, в журнале W3SVC по-прежнему невозможно регистрировать события по местному времени.

Программный код записи в журналы был перемещен в файл http.sys и работает в ядре операционной системы. Таким образом, удалось ускорить запись в журналы и исключить конкуренцию между рабочими процессорами за один файл журнала. В некоторых случаях http.sys обнаруживает ошибку, которую ему не удается записать в журналы Web-узла. Например, обработке запроса может помешать рециркуляция рабочего процесса или пользователь, попытавшийся установить соединение с сервером, но пославший лишь часть информации, необходимой для IIS. Http.sys записывает эти события в новом файле журнала с именем httperr.log.

Httperr.log незаменим для диагностики и настройки рабочих параметров IIS 6.0. По умолчанию журнал хранится в папке system32logfiles, но его местоположение можно изменить, добавив в раздел реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ServicesHTTPParameters строковый параметр с именем ErrorLoggingDir, содержащий полный путь к целевой папке. В журнале можно найти, в частности, все ошибки с кодом 503, информацию о тайм-аутах бездействующих соединений, ошибки, произошедшие в процессе разбора URL, и последние 10 запросов, поступивших в отказавший пул приложений.

Кроме того, IIS 6.0 дополнен функцией двоичной регистрации. Если эта функция запущена, то в один из файлов записывается вся информация из журнала о Web-узле в двоичном формате. Для активизации двоичного протоколирования и создания двоичного файла журнала с расширением .ibl следует присвоить элементу метабазы W3SVCC/CentralBinaryLoggingEnabled значение true (1). Данная функция может быть полезна для Internet-провайдеров, на каждом сервере которых размещается 1000 и более Web-узлов. Каждый Web-узел ежедневно генерирует журнал, и общее число файлов быстро становится астрономическим. Недавно выпущенный Microsoft инструмент Log Parser 2.0 может читать двоичный журнал и составлять отчеты. Получить его можно по адресу: http://download.microsoft.com/download/iis50/utility/2.0/ nt5xp/en-us/setup.exe. Log Parser может также читать и составлять отчеты для упоминавшегося ранее файла httperr.log.

Чтобы записывать в журнал информацию на языке, отличном от английского, можно настроить http.sys на использование набора символов UTF-8 вместо ASCII. Для этого следует щелкнуть правой кнопкой мыши на локальном компьютере в IIS Manager, открыть диалоговое окно Properties и установить флажок Encode Web logs in UTF-8.

В IIS давно существует возможность указать папку на локальном сервере, в которой следует хранить файлы журналов. IIS Manager версий IIS 5.0 и IIS 4.0 позволяет указать путь UNC для удаленного сервера, но в действительности Web-сервер не будет сохранять файлы на удаленном сервере. IIS 6.0 поддерживает путь UNC к каталогу журналов.

Генерация ID сайта

Номер, а не имя, служит уникальным идентификатором Web-узла для IIS. При создании нового Web-узла в IIS 5.0 или IIS 4.0, Web-сервер присваивает Web-узлу очередной последовательный номер (т. е. Web-сервер дает Web-узлу, формируемому по умолчанию, номер 1, а следующим сайтам, созданным администратором, номера 2, 3 и т. д.). Для доступа к комплекту журналов сайта, путь к которому имеет окончание W3SVCsiteIDnumber, нужно знать его идентификационный номер. Если имеется два или несколько сайтов, то по именам папок журналов нельзя определить их принадлежность конкретным Web-узлам. ID сайта необходим также для подготовки сценариев или внесения изменений в метабазу, так как часто невозможно указать путь в Microsoft Active Directory Service Interfaces (ADSI) к разделу метабазы, не зная ID.

Тем не менее в IIS Manager версий IIS 5.0 и IIS 4.0 отыскать идентификационные номера нелегко. Чтобы устранить этот недостаток, разработчики дополнили IIS Manager версии IIS 6.0 новым столбцом Identifier, в котором перечислены ID сайтов. Может показаться удивительным, что при наличии всего двух или трех сайтов номера ID могут быть большими. Первый созданный мною сайт имел ID 387660891 (и путь W3SVC387660891). IIS 6.0 не нумерует сайты последовательно, а использует формулу на основе имени сайта. Данный подход полезен в Web-пуле, в котором одним и тем же Web-узлам можно присваивать идентичные ID.

В некоторых сценариях и утилитах используется последовательная нумерация сайтов. Чтобы отменить новую систему нумерации и вернуться к последовательной системе, следует открыть раздел реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftInetMgr Parameters, создать параметр типа REG_DWORD с именем Incremental-SiteIDCreation и присвоить ему значение 2. По умолчанию данный параметр отсутствует.

Асинхронная обработка CGI

В IIS 5.0 и IIS 4.0 процессы Common Gateway Interface (CGI) выполняются синхронно. В сущности, это означает, что в каждый момент времени к процессу CGI может обращаться только один поток. Поэтому возможности масштабирования IIS 5.0 и IIS 4.0 оставляют желать лучшего. В IIS 6.0 процессы CGI выполняются асинхронно, поэтому потоку, вызывающему приложение CGI, не приходится ждать, пока процесс CGI возвратит информацию. Благодаря асинхронности CGI повышается производительность IIS-серверов, работающих с Web-приложениями CGI, и открывается возможность использовать больше CGI-приложений для выполнения критически важных задач в IIS.

Сквозная аутентификация виртуальных каталогов

Разработчики Microsoft уже давно планировали реализовать сквозную аутентификацию виртуальных каталогов и наконец осуществили задуманное. В IIS 5.0 и IIS 4.0 единственные пользовательское имя и пароль служат для доступа к удаленному контенту в виртуальном каталоге, связанном с путем UNC. Все обращения к удаленному серверу направляются через одну учетную запись пользователя, поэтому глубоко детализированная настройка защиты удаленной системы невозможна. Кроме того, принципиальные особенности Windows 2000 ограничивают объем трафика, проходящего по пути с одним именем. Более подробную информацию об использовании имен UNC в Windows 2000 можно найти в статье Microsoft «IIS Runs Out of Work Items and Causes RPC Failures When Connecting to a Remote UNC Path» at http://support.microsoft.com/?kbid=221790. В IIS 6.0 эти проблемы решены.

В IIS 5.0 и IIS 4.0 возникают трудности при получении с удаленного сервера извещений об изменениях файлов. Компания Microsoft приложила немало усилий, чтобы решить эту проблему в Windows 2003 и усовершенствовала метод, используемый в IIS 6.0 для оповещения об изменениях файлов. По умолчанию, IIS 6.0 не ждет оповещений об изменениях файлов, а запрашивает о них через каждые 5 с. Такой подход повышает надежность, но не столь удачно масштабируется, как старый метод, поэтому сервер можно настроить на ожидание извещений об изменениях файлов. Кроме того, теперь можно настроить виртуальные каталоги на сквозную передачу пароля и имени пользователя на удаленный сервер. Эти и другие улучшения Windows 2003, такие, как детализированное (constrained) делегирование, не только укрепляют безопасность, но и облегчают применение сетевых устройств памяти и сетей хранения данных (SAN — rage Area Networks).

Ускорение канала связи

Из вкладки Performance диалогового окна Properties IIS 5.0 и IIS 4.0 можно активизировать режим регулировки скорости канала связи и указать максимальную полосу пропускания для данного Web-узла. Однако приведенная функция работает плохо, так как IIS 5.0 и IIS 4.0 не могут управлять сетевыми адаптерами сервера. Когда регулировка скорости канала связи впервые активируется на Web-узле IIS 6.0, Windows 2003 автоматически устанавливает программу QoS Packet Scheduler, которая обеспечивает взаимодействие с IIS. QoS Packet Scheduler активирует функции Quality of Service (QoS — гарантированное качество обслуживания) для сервера, и Windows 2003 останавливает все сетевые службы на время установки. После того как конфигурирование QoS Packet Scheduler будет завершено, в распоряжении IIS появится драйвер, который впервые открывает реальную возможность регулировки скорости канала связи для Web-узлов — это хорошая новость для Internet-провайдеров. Минимальное возможное ограничение — 1024 байт/с. Необходимо убедиться, что сетевой адаптер входит в список Windows 2003 Hardware Compatibility List (HCL — список аппаратно-совместимого оборудования), так как только новые устройства поддерживают функции QoS. Прежде чем приступать к настройке конфигурации QoS Packet Scheduler, нужно создать консоль Group Policy. Следует щелкнуть на кнопке Start, выбрать пункт Run, ввести с клавиатуры

MMC

и щелкнуть OK. Затем требуется щелкнуть на Console, Add/Remove Snap-in, Add. Выбрав редактор Group Policy Object Editor, следует щелкнуть на Add, Finish, Close, OK. Теперь необходимо развернуть разделы Local Computer Policy, Computer Configuration, Administrative Templates, Network, чтобы вывести на экран объект QoS Packet Scheduler (см. Экран 5). В результате установки QoS Packet Scheduler ко всей системе применяется ряд стандартных параметров, которые могут повлиять на регулировку скорости канала связи IIS. Например, QoS Packet Scheduler по умолчанию ограничивает потребности одной машины 20% от общедоступной полосы пропускания, если администратор не изменит параметр Limit reservable bandwidth программы QoS Packet Scheduler (см. Экран 5).

Другие стандартные параметры

IIS 6.0 располагает рядом стандартных параметров, отличных от параметров IIS 5.0 и IIS 4.0. Например, стандартное значение тайм-аута соединения снижено с 900 до 120 с, а параметр EnableParentPaths по умолчанию отключен. Некоторые новшества могут повлиять на рабочие характеристики сервера.

  • Отвергается любой запрос к расширению, которое не отображено в свойстве метабазы MimeMap.
  • По умолчанию все рабочие процессы автоматически перезапускаются через 1740 мин; в процессе рециркуляции может быть потеряна информация о сеансе.
  • Учетная запись пользователя, от имени которой выполняются CGI-приложения, должна быть членом группы IIS_WPG group.
  • Collaboration Data Objects for Windows NT Server (CDONTS) в Windows 2003 не устанавливается. В Microsoft рекомендуют использовать вместо него объект CDO for Windows 2000 (CDOSYS).
  • По умолчанию максимальный размер ASP Post — 204 800 байт, а каждого поля — 100 Кбайт. В IIS 5.0 и IIS 4.0 таких ограничений нет.
  • Ограничение заголовка клиента Http.sys — 16 Кбайт, но эту величину можно изменить в реестре.

На этом я завершаю рассказ об IIS 6.0, хотя мне не удалось охватить все возможности Web-сервера. Не нашлось места для описания обновленного Administrative Web Site, который размещается вместе с системой Windows 2003 (вместе с сертификатом SSL) по запросу (по умолчанию в Windows 2003, Web Edition). Пропущены такие известные функции, как Passport Authentication и усовершенствованная Digest Authentication.

Я уделил внимание лишь важнейшим функциям и некоторым малоизвестным возможностям, которые дают представление о глубине изменений в IIS 6.0. Во многих отношениях IIS 6.0 затмевает собой Windows 2003 и, на мой взгляд, заслуживает «звездной» роли.

Брет Хилл (brett@iisanswers.com) — консультант по Microsoft IIS, IIS MVP, автор и преподаватель курсов IIS.