Не удается выбрать IUSR для запуска службы под

У нас есть Windows 2008 R2, работающий под управлением IIS 7.5, который из-за требований безопасности должен настроить службу публикации в Интернете, чтобы она работала под управлением IUSR. Я могу дать разрешения на папки IUSR просто отлично. Но когда я пытаюсь выбрать IUSR для учетной записи, которая будет использоваться для службы публикации в Интернете, я получаю сообщение о том, что пользователь не может быть найден. В настоящее время у нас есть служба, работающая под "учетной записью локальной системы". Любая помощь будет принята с благодарностью.

3 ответа

IUSR - это контекст безопасности, используемый, когда анонимные посетители просматривают ваш сайт. Я бы рекомендовал не использовать его для службы WWW.

До IIS7.5 для вас создавалась служебная учетная запись (IWAM), которая была локальной учетной записью в дополнение к локальной учетной записи IUSR. Новая модель должна работать с разными идентификаторами пула приложений, чтобы один веб-сайт не мог влиять на другой на коробке, если сайт подвергся риску. Я бы, вероятно, рассмотрел непривилегированную локальную учетную запись для службы WWW, чтобы ограничить учетные данные этой конкретной коробкой.

Я протестировал использование локального пользователя для WWW и службы активации процессов Windows и продолжал получать сообщения об ошибках "эта учетная запись недостаточно привилегирована" для службы активации процессов Windows. Поэтому я добавил локальную учетную запись в IIS_IUSRS и любую другую группу, связанную с IIS, и вошел в локальную политику безопасности и добавил привилегии в Назначение прав пользователя в локальной политике безопасности:

  • Заменить токен уровня процесса
  • Настройте квоты памяти для процесса
  • Генерация аудита безопасности
  • Войти как пакетное задание

Это не сработало, поэтому я добавил "Создание глобальных объектов" после того, как нашел в Google что-то, что может помочь. Это не так. Но тогда мне пора было идти домой, поэтому я все отменил (хотя это была тестовая среда).

Я тогда попробовал

  • Олицетворять клиента после аутентификации

Нет радости Службы работают как локальная система, и ссылка, по которой я работал, говорит:

Локальная системная учетная запись - это мощная учетная запись, которая имеет полный доступ к компьютеру и действует как компьютер в сети. Если служба использует учетную запись локальной системы для входа на контроллер домена, эта служба имеет доступ ко всему домену. Некоторые службы по умолчанию настроены на использование учетной записи локальной системы, и это не должно быть изменено. Учетная запись локальной системы не имеет пароля, доступного пользователю.

Извините, я пытался, но я думаю, что вам не повезло. Конечно, вы можете попробовать предоставить учетной записи перечисленные здесь привилегии:

  • SE_ASSIGNPRIMARYTOKEN_NAME (отключено)
  • SE_AUDIT_NAME (включено)
  • SE_BACKUP_NAME (отключено)
  • SE_CHANGE_NOTIFY_NAME (включено)
  • SE_CREATE_GLOBAL_NAME (включено)
  • SE_CREATE_PAGEFILE_NAME (включено)
  • SE_CREATE_PERMANENT_NAME (включено)
  • SE_CREATE_TOKEN_NAME (отключено)
  • SE_DEBUG_NAME (включено)
  • SE_IMPERSONATE_NAME (включено)
  • SE_INC_BASE_PRIORITY_NAME (включено)
  • SE_INCREASE_QUOTA_NAME (отключено)
  • SE_LOAD_DRIVER_NAME (отключено)
  • SE_LOCK_MEMORY_NAME (включено)
  • SE_MANAGE_VOLUME_NAME (отключено)
  • SE_PROF_SINGLE_PROCESS_NAME (включено)
  • SE_RESTORE_NAME (отключено)
  • SE_SECURITY_NAME (отключено)
  • SE_SHUTDOWN_NAME (отключено)
  • SE_SYSTEM_ENVIRONMENT_NAME (отключено)
  • SE_SYSTEMTIME_NAME (отключено)
  • SE_TAKE_OWNERSHIP_NAME (отключено)
  • SE_TCB_NAME (включено)
  • SE_UNDOCK_NAME (отключено)

Но может быть проще получить лист бумаги от Microsoft, в котором вам сказано не делать этого.

Я также ищу способ сделать это. Я подозреваю, что у ОП такое же требование, как и у меня. Это было бы требованием JITC от Министерства обороны. Вот:

Check Content: 
1. Go to Start, Administrative Tools, then Services.
2. Right click on service name World Wide Web Publishing Service, Select Properties, then select the Log On tab.
3. The username next to this account is the web service account ID.  If any other user than IUSR is listed, continue to step 4.  If the service account IUSR is used to run the service, this is not a finding.
4. Open a command prompt and enter Net User [service account ID], press Enter.
5. Verify the values for Password last set and Password expires to ensure the password has been changed in the past year, and will be required to change within the coming year.

Fix Text: 
Configure the service account ID, used to run the web-site, to have its password changed at least annually or use the service account IUSR.

Здесь так много уровней неправильности. Действительно короткая версия: не делай этого!

Я сильно подозреваю, что либо вы неправильно интерпретируете требование безопасности, либо оно было написано без учета того, как был разработан IIS.

WAS должен работать как локальная система. Полная остановка. Он недоступен удаленно, поэтому имеет очень ограниченную поверхность атаки, то есть локальных администраторов компьютеров.

Одна из причин, по которой он работает как локальная система, заключается в том, что он разбивает applicationhost.config на отдельные части для каждого пула приложений, который получает свою собственную изолированную копию в Inetpub\Temp\AppPools.

Другой способ заключается в том, что он запускает рабочие процессы пула приложений (W3WP) с определенными идентификаторами, настроенными веб-администратором, т. Е. Если вы говорите, что пул приложений имеет базовый идентификатор ApplicationPoolIdentity, это уникальная учетная запись с низким уровнем привилегий, используемая в качестве основного идентификатора процесса, когда не выдавать себя за кого-то другого.

Еще одна проблема заключается в том, что не поддерживается изменение идентификатора WAS, и он был разработан для работы в качестве локальной системы. Это привилегированный процесс.

Служба WWW, которая раньше была InetInfo и поддерживала обработку страниц в прошлом (т. Е. Совсем недавно Windows 2000), но больше не может быть целью рекомендации.

Но он больше не участвует в обработке страниц (IIS 6+), он просто настраивает HTTP.SYS для будущего использования W3WP.

Таким образом, пулы приложений (в частности, связанные рабочие процессы) выполняют реальную работу, и вы можете настроить их базовую идентичность на вкладке "Пул приложений", а конкретную учетную запись, используемую для анонимной работы, - через параметры аутентификации -> анонимные.

Не видя реального письменного текста или не понимая его источника, что-то где-то кажется неправильным. Или, как будто он был написан кем-то, кто немного знал о стандартных сервисах Win32, но не очень много о IIS.

Чтобы обезопасить и изолировать сайт IIS и, по-видимому, достичь цели руководства (если не того, что было написано), все, что вам нужно сделать, это:

  • Используйте идентификатор пула приложений в качестве анонимной учетной записи (или IUSR, если ваша политика требует этого, но это снижает безопасность (так как это общая общая учетная запись, а не уникальная учетная запись для сайта)
  • Установите разрешения для содержимого, чтобы только IIS AppPool\AppPoolName имел разрешение на чтение для папок содержимого.

И вы сделали.

Другие вопросы по тегам