Це дуже гарне запитання, і, на жаль, багато розробників не задають достатньо питань щодо безпеки IIS / ASP.NET в контексті веб-розробника та налаштування IIS. Тож ось іде….
Щоб висвітлити вказані особи:
IIS_IUSRS:
Це аналогічно старій IIS_WPG
групі IIS6 . Це вбудована група з безпекою, налаштованою таким чином, що будь-який член цієї групи може діяти як ідентифікація пулу програм.
IUSR:
Цей обліковий запис аналогічний старому IUSR_<MACHINE_NAME>
локальному обліковому запису, який був за замовчуванням анонімним користувачем для веб-сайтів IIS5 та IIS6 (тобто того, який налаштовано на вкладці Безпека каталогів властивостей сайту).
Для отримання додаткової інформації про IIS_IUSRS
та IUSR
дивіться:
Розуміння вбудованих облікових записів користувачів та груп у IIS 7
DefaultAppPool:
Якщо пул додатків налаштований на запуск за допомогою функції Identity Pool Application, тоді «hes синтезований» обліковий запис, який називається, IIS AppPool\<pool name>
буде створений на льоту, який використовуватиметься як ідентифікація пулу. У цьому випадку буде створений синтезований рахунок, IIS AppPool\DefaultAppPool
створений на час життя пулу. Якщо ви видалите пул, цей обліковий запис більше не буде існувати. При застосуванні дозволів до файлів і папок вони повинні бути додані за допомогою IIS AppPool\<pool name>
. Ви також не побачите цих облікових записів пулу в Менеджері користувачів комп'ютерів. Для отримання додаткової інформації див.
Ідентифікатори пулу програм
ASP.NET v4.0:
-
Це буде ідентифікація пулу додатків для пулу додатків ASP.NET v4.0. Дивіться DefaultAppPool
вище.
NETWORK SERVICE:
-
Обліковий NETWORK SERVICE
запис - це вбудована ідентифікація, представлена в Windows 2003. NETWORK SERVICE
Це низький привілейований обліковий запис, під яким можна запускати пули додатків та веб-сайти. Веб-сайт, що працює в пулі Windows 2003, все ще може представити себе анонімним обліковим записом сайту (IUSR_ або тим, що ви налаштували як анонімну особу).
В ASP.NET до Windows 2008 ви могли мати ASP.NET виконання запитів під обліковим записом пулу додатків (як правило NETWORK SERVICE
). Крім того, ви можете налаштувати ASP.NET, щоб видати себе за анонімний обліковий запис сайту через локальну <identity impersonate="true" />
установку у web.config
файлі (якщо це налаштування заблоковано, це потрібно зробити адміністратору у machine.config
файлі).
Налаштування <identity impersonate="true">
поширені в середовищах спільного хостингу, де використовуються спільні пули додатків (у поєднанні з частковими налаштуваннями довіри для запобігання відмикання особового рахунку).
У IIS7.x / ASP.NET контроль олицювання тепер налаштовано за допомогою функції конфігурації аутентифікації сайту. Таким чином, ви можете налаштувати запуск як ідентифікатор пулу, IUSR
або конкретний спеціальний анонімний обліковий запис.
LOCAL SERVICE:
Обліковий LOCAL SERVICE
запис - це вбудований обліковий запис, який використовується менеджером управління послугами. Він має мінімальний набір привілеїв на локальному комп'ютері. Він має досить обмежену сферу використання:
LocalService Account
LOCAL SYSTEM:
Ви не питали про це, але я додаю для повноти. Це локальний вбудований рахунок. Він має досить широкі привілеї та довіру. Ніколи не слід налаштовувати веб-сайт або пул додатків для роботи під цим посвідченням.
Обліковий запис LocalSystem
На практиці:
На практиці бажаний підхід до захисту веб-сайту (якщо сайт має власний пул додатків - що є типовим для нового сайту в MMC IIS7) Application Pool Identity
. Це означає встановлення ідентичності сайту в розширених налаштуваннях пулу додатків на Application Pool Identity
:
Потім на веб-сайті слід налаштувати функцію аутентифікації:
Клацніть правою кнопкою миші та відредагуйте запис анонімної автентифікації:
Переконайтесь, що вибрано "Ідентифікація пулу програм" :
Коли ви приймете застосовувати дозволи для файлів і папок, ви надаєте ідентифікатор пулу додатків незалежно від прав. Наприклад, якщо ви надаєте ідентифікатор пулу додатків для ASP.NET v4.0
дозволів пулу, ви можете зробити це через Explorer:
Натисніть кнопку "Перевірити імена":
Або ви можете зробити це за допомогою ICACLS.EXE
утиліти:
icacls c: \ wwwroot \ mysite / grant "IIS AppPool \ ASP.NET v4.0" :( CI) (OI) (M)
... або ... якщо ви називаєте пул додатків сайту, BobsCatPicBlog
тоді:
icacls c: \ wwwroot \ mysite / grant "IIS AppPool \ BobsCatPicBlog" :( CI) (OI) (M)
Я сподіваюся, що це допомагає з’ясувати речі.
Оновлення:
Я щойно наткнувся на цю чудову відповідь 2009 року, яка містить купу корисної інформації, яку варто прочитати:
Різниця між обліковим записом "Локальна система" та "Мережевою службою"?