Internet Information Services 6.0
Internet Information Services 6.0 (IIS 6.0) — это версия веб-сервера, входящая в состав операционной системы Microsoft Windows Server 2003, а также доступная для Windows XP Professional x64 Edition. IIS 6.0 представляет собой компонент, предназначенный для размещения веб-сайтов, веб-приложений, FTP-серверов и других интернет-служб. Данная версия стала значительным шагом вперёд по сравнению с предшественницей (IIS 5.0, использовавшейся в Windows 2000), предложив кардинально переработанную архитектуру, повышенную надёжность и улучшенную безопасность.
История и контекст
IIS 6.0 была выпущена в 2003 году вместе с серверной операционной системой Windows Server 2003. Разработка этой версии велась в условиях растущей критики безопасности предыдущих версий IIS, особенно IIS 5.0, которая подвергалась массовым атакам червей (например, Code Red и Nimda) в 2001 году. Microsoft поставила перед собой цель сделать IIS 6.0 «защищённым по умолчанию» (secure by default) — то есть после установки сервер поставлялся с минимальным набором активных компонентов, что снижало поверхность атаки.
IIS 6.0 была последней версией, которая поддерживалась на 32-разрядных версиях Windows Server 2003. Поддержка IIS 6.0 со стороны Microsoft прекратилась 14 июля 2015 года вместе с окончанием расширенной поддержки Windows Server 2003.
Архитектура и ключевые особенности
Главным нововведением IIS 6.0 стала архитектура на основе рабочих процессов (worker process isolation mode). В отличие от IIS 5.0, где все приложения выполнялись в одном процессе (inetinfo.exe) или в общем пуле, IIS 6.0 внедрила модель, в которой каждое веб-приложение могло работать в отдельном процессе (w3wp.exe).
Режимы изоляции
IIS 6.0 поддерживала два режима работы:
- Режим изоляции рабочих процессов (Worker Process Isolation Mode) — основной и рекомендуемый режим. В этом режиме каждое приложение (или группа приложений) запускается в своём собственном процессе w3wp.exe. Это обеспечивает изоляцию: сбой в одном приложении не влияет на другие приложения или на сам веб-сервер. Кроме того, администратор может настраивать параметры пула приложений (Application Pool), такие как время жизни процесса, объём используемой памяти, ограничения на количество запросов и учётные данные, под которыми процесс выполняется.
- Режим совместимости с IIS 5.0 (IIS 5.0 Isolation Mode) — предназначался для обратной совместимости с приложениями, написанными для IIS 5.0. В этом режиме все приложения работали в одном процессе inetinfo.exe, что снижало изоляцию, но обеспечивало совместимость с устаревшим кодом.
Пул приложений (Application Pool)
Пул приложений является центральным понятием в IIS 6.0. Он представляет собой группу URL-адресов, обслуживаемых одним или несколькими рабочими процессами. Каждый пул приложений имеет собственные настройки, включая:
- Идентичность (Identity): учётная запись, под которой запускается рабочий процесс. По умолчанию используется встроенная учётная запись NetworkService.
- Перезапуск (Recycling): возможность автоматического перезапуска рабочего процесса через заданные интервалы времени, по достижении определённого количества запросов или объёма потребляемой памяти. Это позволяет предотвращать утечки памяти и сбои в долго работающих приложениях.
- Быстрая защита от сбоев (Rapid Fail Protection): если рабочий процесс аварийно завершается несколько раз за короткий промежуток времени, пул приложений автоматически отключается, предотвращая бесконечный цикл перезапусков.
HTTP.SYS — ядро веб-сервера
Важным изменением стало внедрение HTTP.SYS — драйвера режима ядра, который обрабатывает HTTP-запросы и ответы. HTTP.SYS работает на уровне ядра операционной системы, что обеспечивает высокую производительность и эффективное кэширование. Он также отвечает за:
- Прослушивание входящих HTTP-запросов.
- Маршрутизацию запросов к соответствующим пулам приложений.
- Кэширование статического содержимого и ответов от приложений.
- Обработку очередей запросов.
Благодаря HTTP.SYS, даже если все рабочие процессы IIS 6.0 заняты, ядро продолжает принимать запросы и ставить их в очередь, не теряя соединений.
Безопасность
IIS 6.0 стала первой версией, в которой безопасность была заложена на уровне архитектуры. Ключевые изменения:
- Установка по умолчанию: IIS 6.0 не устанавливалась по умолчанию на Windows Server 2003. Её необходимо было добавлять через компоненты системы. После установки были активны только статические файлы (HTML, изображения), а все динамические компоненты (ASP, ASP.NET, CGI, ISAPI) были отключены.
- URLScan и IIS Lockdown: хотя эти инструменты были доступны и для IIS 5.0, в IIS 6.0 многие их функции были встроены в ядро. Например, фильтрация URL-адресов и ограничение на длину запроса.
- Управление доступом: настройка разрешений для веб-сайтов и виртуальных каталогов стала более гибкой. Поддержка Windows Authentication (NTLM и Kerberos) была улучшена.
- Изоляция процессов: как упоминалось выше, отдельные процессы для приложений предотвращали распространение вредоносного кода из одного приложения в другое.
Управление и администрирование
Управление IIS 6.0 осуществлялось через несколько инструментов:
- Диспетчер служб IIS (IIS Manager) — оснастка Microsoft Management Console (MMC). Позволяла графически настраивать веб-сайты, пулы приложений, виртуальные каталоги, а также управлять сертификатами SSL и журналами.
- Командная строка — утилиты
iisreset(для перезапуска служб IIS) иadsutil.vbs(скрипт для управления метабазой IIS через ADSI). - Метабаза (Metabase) — иерархическая база данных конфигурации IIS, хранящаяся в файле
MetaBase.xml(в IIS 6.0 она была в виде XML-файла, что упрощало редактирование вручную, хотя и не рекомендовалось). В отличие от реестра, используемого в IIS 5.0, метабаза была более структурирована и поддерживала наследование настроек. - WMI (Windows Management Instrumentation) — позволяла автоматизировать управление IIS с помощью скриптов (VBScript, PowerShell).
Поддержка технологий
IIS 6.0 поддерживала широкий спектр веб-технологий своего времени:
- ASP (Active Server Pages) — классическая серверная технология Microsoft.
- ASP.NET 1.1 и 2.0 — платформа для создания веб-приложений на .NET Framework. IIS 6.0 была основной серверной платформой для ASP.NET 2.0.
- CGI (Common Gateway Interface) — поддержка запуска внешних скриптов (Perl, Python).
- ISAPI (Internet Server Application Programming Interface) — низкоуровневый API для создания высокопроизводительных модулей и расширений.
- FTP (File Transfer Protocol) — встроенный FTP-сервер с поддержкой изоляции пользователей.
- SMTP (Simple Mail Transfer Protocol) — встроенный SMTP-сервер для отправки почты из веб-приложений.
- SSL/TLS — поддержка защищённого соединения через сертификаты.
Ограничения и критика
Несмотря на значительные улучшения, IIS 6.0 имела ряд недостатков:
- Сложность конфигурации: настройка пулов приложений и метабазы могла быть нетривиальной для начинающих администраторов.
- Отсутствие поддержки новых протоколов: IIS 6.0 не поддерживала WebSocket, SPDY или HTTP/2.0, которые появились в более поздних версиях (IIS 7.0 и выше).
- Ограниченная поддержка .NET: хотя ASP.NET работала, интеграция с IIS была не такой глубокой, как в IIS 7.0, где ASP.NET стал частью конвейера обработки запросов.
- Зависимость от Windows Server 2003: IIS 6.0 не была доступна для клиентских версий Windows (кроме Windows XP x64 Edition), что ограничивало её использование для разработки на локальных машинах.
Значение и наследие
IIS 6.0 стала важной вехой в истории веб-серверов Microsoft. Она доказала, что компания способна создать надёжный и безопасный продукт после череды громких инцидентов. Многие концепции, заложенные в IIS 6.0 (пулы приложений, изоляция процессов, кэширование в ядре), стали основой для последующих версий IIS (7.0, 7.5, 8.0, 8.5, 10.0). IIS 6.0 широко использовалась в корпоративном секторе в середине 2000-х годов и оставалась популярной вплоть до окончания поддержки Windows Server 2003 в 2015 году.
Источники
- Microsoft TechNet: IIS 6.0 Technical Reference
- Microsoft Developer Network (MSDN): IIS 6.0 Architecture
- Книга: «IIS 6.0: The Complete Reference» (Hethe Henrickson, Scott Hofhine)
- Документация Microsoft по Windows Server 2003
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →