IIS (Internet Information Services, до ​​версії 5.1 - Internet Information Server) - пропріетарний набір серверів для декількох служб Інтернету від компанії Майкрософт. IIS поширюється з операційними системами сімейства Windows NT.

Основним компонентом IIS є веб-сервер, який дозволяє розміщувати в Інтернеті сайти. IIS підтримує протоколи HTTP, HTTPS, FTP, POP3, SMTP, NNTP. За даними компанії Netcraft на жовтень 2011, більше 21 млн сайтів обслуговуються веб-сервером IIS, що складає 12.46% від загального числа веб-сайтів. [1]


1. Версії IIS

Номер версії Випущена в складі Рік
1.0 Windows NT 3.51 1995
2.0 Windows NT 4.0 1996
3.0 Пакет оновлення 3 для Windows NT 4.0 1997
4.0 Пакет Option Pack для Windows NT 4.0 1998
5.0 Windows 2000 2000
5.1 Windows XP Professional 2001
6.0 Windows Server 2003 2003
7.0 Windows Vista; Windows Server 2008 2006
7.5 Windows 7; Windows Server 2008 R2 2009
8.0 Windows 8; Windows Server 2012 2012

2. Служба WWW у складі IIS

Основним компонентом IIS є веб-сервер - служба WWW (звана також W3SVC), яка надає клієнтам доступ до сайтів по протоколах HTTP і, якщо проведена настройка, HTTPS.

Один сервер IIS може обслуговувати кілька сайтів (IIS 6.0 і вище). Кожен сайт має наступні атрибути:

  • IP-адреса сайту;
  • TCP-порт, на якому служба WWW чекає підключень до даного сайту;
  • Тема вузла (Host header name) - значення заголовка Host запиту HTTP, яке вказує зазвичай DNS -ім'я сайту.

Таким чином, наприклад, один сервер з однією IP-адресою може обслуговувати на одному TCP-порту декілька сайтів. Для цього необхідно створити кілька DNS -записів, що вказують на IP-адресу сервера, і розрізняти сайти по заголовкам вузла.

Для кожного сайту вказується домашній каталог - каталог в файловій системі сервера, відповідний "корню" сайту. Наприклад, якщо сайту www.example.com зіставлений домашній каталог D: \ example, то на запит ресурсу з адресою http://www.example.com/index.htm веб-сервер поверне файл D: \ example \ index.htm.


2.1. Архітектура служби WWW

В IIS 6.0, доступному в складі систем Windows Server 2003, служба WWW зазнала серйозних змін. Був доданий новий режим обробки запитів, званий режимом ізоляції робочих процесів ( англ. worker process isolation mode ). У цьому режимі всі веб-додатки, які обслуговуються сервером, працюють в різних процесах, що підвищує стабільність і безпеку системи. Крім того, для прийому запитів HTTP був створений новий драйвер http.sys, який працює в режимі ядра, що прискорює обробку кожного запиту.

Всі запити до статичного вмісту, не вимагають виконання скриптів, виконуються самим драйвером http.sys в ядрі, що зближує веб-сервер IIS з серверами режиму ядра.

При цьому запити до динамічного вмісту виконуються робочим процесом і завантаженими в його адресний простір модулями. З точки зору шляхи виконання запитів не існує центрального процесу, що підвищує надійність у випадку відмови, викликаного помилкою в скрипті чи іншому модулі виконання. Робочі процеси автоматично перезапускається при виникненні помилок.

Протокол SSL підтримується окремим процесом HTTP SSL, який служить мостом між протоколом TCP і драйвером http.sys.


2.2. Безпека в службі WWW

Веб-сервер IIS надає кілька способів розмежування доступу до сайтів і веб-додаткам. Служба WWW у складі IIS відрізняється від інших веб-серверів тим, що функції забезпечення безпеки в ній тісно інтегровані з системою Windows NT, на основі якої вона працює. Зокрема, щоб отримати доступ до захищеного ресурсу, відвідувач повинен ввести ім'я та пароль користувача, існуючого в системі Windows, на якій встановлено IIS (або в домені Active Directory, якщо сервер належить до домену). Після цього користувач працює з сайтом так само, як якби він виконав інтерактивний вхід в систему на сервері. До нього застосовуються встановлені файловою системою NTFS дозволу на доступ до файлам і каталогами. Ця особливість IIS зручна для внутрішніх сайтів підприємств, однак практично непридатна для відкритих сайтів Інтернету, де неможливо створювати користувача Windows для кожного зареєстрованого відвідувача сайту. Тому в останньому випадку розробникам сайтів і веб-додатків зазвичай доводиться використовувати власні механізми обмеження доступу.

Певний користувач Windows зіставляється з кожним відвідувачем сайту навіть у тому випадку, коли обмеження доступу не потрібно. Цей режим називається режимом анонімного доступу. У цьому випадку відвідувач представляється на сервері як спеціальний користувач, ім'я якого зазвичай має формат IUSR_xxxx (де xxxx - ім'я комп'ютера, на якому встановлений IIS, в сьомій версії цей спеціальний користувач не містить імені комп'ютера, тобто просто IUSR). Цьому користувачу повинен бути дозволений доступ до ресурсів, які відкриті анонімним відвідувачам.

Починаючи з версії 6.0 служба WWW підтримує наступні методи аутентифікації, тобто визначення особистості користувача по імені і паролю: [2]

  • Анонімна аутентифікація (anonymous authentication) - визначення особистості користувача не виконується.
  • Базова аутентифікація (basic authentication) - ім'я і пароль передаються по мережі відкритим текстом.
  • Дайджест аутентифікація (digest authentication) - пароль обробляється хеш-функцією перед відправкою по мережі, що робить неможливим його прочитання у випадку перехоплення зловмисником.
  • Вбудована аутентифікація Windows (integrated Windows authentication) - виконується спроба входу на сервер з тими ж обліковими даними, під якими працює браузер користувача.
  • Автентифікація доступу до UNC-ресурсам (UNC authentication) - ім'я і пароль передаються віддаленим сервером, на якому знаходиться опублікований в IIS UNC-ресурс, і віддалений сервер виконує аутентифікацію.
  • Аутентифікація з використанням. NET Passport (. NET Passport Authentication) (видалена в Windows Server 2008 і IIS 7.0) [3] - для аутентифікації використовується служба . NET Passport.
  • Аутентифікація з використанням клієнтського сертифіката (certificate authentication) - для аутентифікації користувач повинен надати SSL сертифікат.

2.3. Реалізація веб-додатків для IIS

Веб-сервер IIS підтримує кілька різних технологій створення веб-додатків :

  • ASP.NET - розроблена Microsoft технологія; для IIS це - основне на сьогоднішній день [4] засіб створення веб-додатків і веб-служб. IIS 6.0 поставляється разом з операційними системами, в які також спочатку входить . NET Framework, так що підтримка ASP.NET неначе вже вбудована в IIS 6.0; для більш ранніх версій необхідно окремо завантажити і встановити . NET Framework.
  • ASP - передувала ASP.NET технологія створення динамічних веб-сторінок на основі сценаріїв. Входить у поставку IIS починаючи з версії 3.0.
  • CGI - стандартна міжплатформна низькорівнева технологія створення динамічних веб-сторінок.
  • FastCGI - клієнт-серверний протокол взаємодії веб-сервера і додатки.
  • ISAPI - низькорівневий технологія, аналогічна інтерфейсу модулів Apache, що надає повний доступ до всіх можливостей IIS, можливість розробки веб-додатків в машинному коді і можливість перевизначення частини функцій IIS і додавання до нього функцій, як пов'язаних з генерацією контенту, так і не пов'язаних з цим. Підсистема виконання скриптів ASP і підсистема ASP.NET виконані як модулі ISAPI.
  • SSI - включення в одні сторінки тексту з інших сторінок. Строго кажучи, веб-додатком не є, оскільки IIS підтримує лише обмежений набір можливостей і без того малофункціонального SSI. Зокрема, IIS5 підтримує тільки статичну включення і ігнорує команди умовного розгалуження.

Сам сервер підтримує тільки CGI, FastCGI [5], ISAPI і SSI. Всі інші технології є надбудовами, працюючими через CGI, FastCGI або ISAPI.

За допомогою CGI програми для IIS можуть розроблятися на основі практично будь-яких, в тому числі сторонніх, інструментів, що допускають запис в стандартний потік виводу і читання змінних середовища - Perl, C / С + + і навіть засобами інтерпретатора командного рядка Cmd.exe.

Технологія ISAPI дозволяє, з одного боку, створювати спеціальні програми для IIS, що вимагають особливо тісної взаємодії з механізмом сервера, а з іншого боку є зручною платформою для організації ефективної взаємодії IIS з іншими технологіями розробки веб-додатків - наприклад, PHP і Perl.


2.4. Поштові можливості

IIS підтримує роботу SMTP/POP3 сервісів. У сучасних версіях Microsoft Exchange Server реалізація протоколів SMTP, POP3 і IMAP виконана у вигляді підсистем до IIS, які замінюють поставляються з IIS поштові підсистеми.

Примітки

  1. October 2011 Web Server Survey - news.netcraft.com/archives/2011/10/06/october-2011-web-server-survey.html (Англ.) . Читальний - www.webcitation.org/61BnfUBOU з першоджерела 25 серпня 2011.
  2. Authentication Methods Supported in IIS 6.0 (IIS 6.0) - 6.0 Documentation. Microsoft corporation. Читальний - www.webcitation.org/69g8HkLpC з першоджерела 5 серпня 2012.
  3. Changes Between IIS 6.0 and IIS 7 Security - learn.iis.net/page.aspx/110/changes-between-iis-60-and-iis-7-security /. IIS.net. Microsoft Corporation (7 February 2010). Читальний - www.webcitation.org/69g8Iak73 з першоджерела 5 серпня 2012.
  4. Метью Мак-Дональд, Маріо Шпушта. Microsoft ASP.NET 2.0 із прикладами на C # 2005 для професіоналів
  5. FastCGI для IIS (technical preview 2) - www.iis.net/default.aspx?tabid=1000051

Література

  • Станек Вільям Р. Internet Information Services (IIS) 7.0. Довідник адміністратора. - СПб. : Російська редакція, 2009. - 528 с. - ISBN 978-5-7502-0383-3
  • Адамc Кріс Адміністрування сервера IIS 7. - М .: Біном, 2010. - 362 с. - ISBN 978-5-9518-0367-2