У меня есть сервер с 60+ сайтами. Сейчас все эти сайты работают под учетной записью IUSR. Если посмотреть на безопасность папок, группа IIS_IUSRS имеет доступ ко всем папкам сайта. Это представляет проблему в том, что, если один сайт скомпрометирован, все сайты будут скомпрометированы, поскольку один пользователь может получить доступ ко всем файлам.
Можно ли настроить каждый сайт для работы под собственным пользователем, и если да, то как мне настроить сайты таким образом?
Я использую Windows server 2008 R2 Service Pack 1 (сборка 7601) с IIS версии 7.5.
Да, вы должны создать пул приложений для каждого сайта (и вполне вероятно, что IIS уже сделал это за вас), а затем настройте удостоверение каждого из этих пулов, как хотите.
Да. По умолчанию для Windows 2008 R2 - и функция, доступная в 2008 SP2 - запускать каждый веб-сайт с помощью ApplicationPoolIdentity (автоматически создаваемой учетной записи с низким уровнем привилегий). Вы также можете указать это удостоверение как учетную запись анонимного пользователя.
Каждый веб-сайт, созданный с помощью графического интерфейса пользователя, получает связанный с ним пул приложений, а учетная запись пользователя с низким уровнем привилегий (идентификатор пула приложений) является своего рода выведенной сгенерированной sorta sorta (учетная запись на самом деле не существует, но вычислимый SID есть) для этого пул приложений при запуске с этим идентификатором.
Чтобы лучше изолировать ваши приложения:
защитить содержимое каждого веб-сайта, чтобы IUSR не читал, только это (IIS AppPool \ AppPoolName) удостоверение (+ система + администраторы + любые аутентифицированные пользователи) делает
отредактируйте параметры анонимной проверки подлинности для каждого сайта и установите для анонимного пользователя идентификатор пула приложений.
В значительной степени вам нужно будет сделать это все сразу, поэтому в будущем будет проще предварительно подготовить их таким образом. :)