IIS (Internet Information Services, до версії 5.1 — Internet Information Server) — це набір серверів для декількох служб Інтернету від компанії Майкрософт. IIS поширюється з операційними системами родини Windows NT.
![]() Консоль IIS 8.5 | |
Тип | Вебсервер |
---|---|
Розробник | Microsoft |
Операційна система | Windows NT |
Мова програмування | C++ |
Ліцензія | Proprietary software |
Вебсайт | iis.net |
Основний компонент IIS — вебсервер, який дозволяє розміщувати в Інтернеті сайти. IIS підтримує протоколи HTTP, HTTPS, FTP, POP3, SMTP, NNTP. IIS п'ятий за популярністю вебсервер за кількістю сайтів, після Nginx, Apache HTTP Server, Cloudflare Server та LiteSpeed. За даними w3Techs[1] доля ринку Microsoft-IIS на вересень 2021 року — 6,6 %.
Версії
- IIS 1.0, Windows NT 3.51, як безкоштовне доповнення
- IIS 2.0, Windows NT 4.0
- IIS 3.0, Windows NT 4.0 Service Pack 3. Підтримка ASP.
- IIS 4.0, Windows NT 4.0 Option Pack. Довий додаток для адміністрування на основі MMC.
- IIS 5.0, Windows 2000. Підтримка WebDAV та розширення до ASP.
- IIS 5.1, Windows XP Professional.
- IIS 6.0, Windows Server 2003 та Windows XP Professional x64 Edition. Підтримка IPv6, та нова модель роботи з робочими процесами.
- IIS 7.0, Windows Vista та Windows Server 2008. Новий модульний дизайн, ієрархічна система конфігурації, покращена підтримка .NET.Framework.
- IIS 7.5, Windows 7 та Windows Server 2008 R2. Покращено модулі WebDAV та FTP, можливість адміністрування через командний рядок в PowerShell. Підтримка TLS 1.1 та TLS 1.2, інструмент Best Practices Analyzer, та ізоляцію процесів для пулів додатку.
- IIS 8.0, Windows Server 2012 та Windows 8. Підтримка SNI та ін.
- IIS 8.5, Windows Server 2012 R2 та Windows 8.1.
- IIS 10.0, Windows Server 2016 та Windows 10. Підтримка HTTP/2, OSCP Stapling, HSTS та ін.
Версія 7.0
Вперше з'явилась у «Windows Vista» а також включена до складу «Windows Server 2008». IIS 7.0 має модульну архітектуру. На відміну від монолітних серверів, які надають всі свої сервіси, IIS 7 має ядро двигуна вебсервера. Модулі зі специфічною функціональністю можуть бути додані до рушія. Переваги такої архітектури в тому, що тільки необхідні функції можуть бути увімкнені, а функціональність може бути розширена за рахунок використання спеціальних модулів.
IIS 7 розповсюджується з невеликою кількістю модулів, але Microsoft обіцяє зробити інші модулі доступними онлайн.[2] Наступний набір модулів розповсюджується з сервером:
- HTTP модулі
- Модулі безпеки
- Модулі контенту
- Модулі стиснення
- Модулі кешування
- Модулі для протоколювання та діагностики
Значна зміна в порівнянні з попередніми версіями IIS полягає в тому що вся конфігураційна інформація зберігається виключно в конфігураційних XML файлах, а не в метабазах. Сервер має глобальний кофігураційний файл, який містить налаштування за замовчуванням, і кожна коренева віртуальна веб директорія(так само як і її піддиректорії) можуть містити web.config файл, в якому глобальні налаштування розширюються або заміщуються. Внесені зміни в ці файли починають діяти відразу.
IIS 7 має повністю змінений адміністративний інтерфейс, який використовує такі переваги сучасної MMC, як панель задач та асинхронні операції. Налаштування ASP.NET ще більше інтегроване в адміністративний інтерфейс.
Історія IIS
Перша версія IIS була випущена, як додатковий набір Інтернет сервісів для Windows NT 3.51. IIS 2.0 з'явився в операційній системі Windows NT 4.0. В IIS 3.0 вже була представлена Active Server Pages, технологія динамічного формування вебсторінок. В IIS 4.0 відмовились від підтримки протоколу Gopher і розповсюджувався окремо на диску «Option Pack» CD-ROM for Windows NT.
Версії IIS, які підтримуються в цей час: 7.0 для Windows Vista, 6.0 для Windows Server 2003 та 5.1 для Windows XP Professional. Windows XP має обмежену версію IIS 5.1, яка підтримує тільки 10 одночасних підключень й один вебсайт.[3] В IIS 6.0 підтримує IPv6. FastCGI модуль також доступний для IIS5.1, IIS6[4] та IIS7.[5]
У Windows Vista IIS 7.0 не встановлюється за замовчуванням, але можна вибрати як додатковий компонент для встановлення. IIS 7.0 на Vista не обмежує кількість підключень, але є обмеження при одночасному виконнані декількох запитів.
Безпека
Ранні версії IIS містили багато вразливостей, головна з яких була CA-2001-19 [Архівовано 10 березня 2008 у Wayback Machine.], вона призводила до сумнозвісного Code Red черв'яка. 7.0 версія поки що не має задокументованих вразливостей. Хоча на 11 вересня 2007 року відкритий вебсервер «Apache» має одну невиправлену вразливість,[6] яка відтворюється тільки на системах «MS Windows». В IIS 6.0 у «Microsoft» вирішили змінити поведінку попередньо встановлених ISAPI обробників,[7] багато з яких призводили до вразливостей у версіях 4.0 та 5.0, таким чином зменшили поверхню атаки ISS. Також була додана функція «Web Service Extensions», яка запобігає запуску будь-яких програм без явного дозволу адміністратора. В IIS 7.0 компоненти розділені на модулі, таким чином встановлюються тільки необхідні компоненти, це також зменшує поверхню атаки. Ще одна функція додана для безпеки — це URLFiltering, з її допомогою відхиляються запити з підозрілих URL-адрес, правила визначення підозрілих URL формуються користувачем.
У версії 5.1 та нижче усі вебсайти запускалися в процесі та під системним(System) обліковим записом,[8] стандартний обліковий запис Windows з розширеними правами. У версії 6.0 усі процеси, що обробляють запити, запускаються під обліковим записом NETWORK SERVICE, який має значно менше привілеїв. IIS 6.0 має новий HTTP-стек у ядрі(http.sys) з суворішим синтаксичним аналізатором HTTP-запитів та кешем для відповідей з статичним та динамічним контентом.
Механізми автентифікації
IIS 5.0 та вищі підтримують такі механізми автентифікації:
- Базова автентифікація (Basic access authentication) — ім'я та пароль передаються в мережі відкритим текстом.
- Стисла автентифікація (Digest access authentication) — пароль обробляється хеш-функцією перед відправленням по мережі, це унеможливлює відтворення пароля у разі перехоплення зловмисником.
- Інтегрована автентифікація Windows (Integrated Windows Authentication) — виконується спроба автентифікації на сервері з тими обліковими даними, під якими працює браузер користувача.
- .NET Passport автентифікація