powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Настройка доступа к папкам для ApplixationPool
21 сообщений из 21, страница 1 из 1
Настройка доступа к папкам для ApplixationPool
    #38229629
Alexey30
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую.
Имеется сервер на Win 2008 R2 на котором хостятся сайты на IIS 7.5.
Товарищ просит разместить его проект на сервере.
Интересует вопрос, как правильно установить ограничения безопасности, чтобы скрипты с данного сайта не могли читать структуру каталогов (и сами файлы) как на системном диске, та к и на диске с данными?
По умолчанию пулу назначается ApplicationPoolIdentity, позволяющая, например, получить список файлов в C:\Windows.
Правильно ли я понимаю, что нужно создать отдельного Windows пользователя, которому дать права на чтение / изменении только папки с сайтом? Что еще необходимо сделать?

Спасибо.
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38229773
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey30, учетная запись ApplicationPoolIdentity означает что для каждого пула создается одноименный пользователь давая таким образом возможность полностью изолировать приложения в разных пулах друг от друга.

Поэтому создаешь новый пул (например, NewPool), ставишь у него пользователя ApplicationPoolIdentity и затем даешь (или отбираешь) права пользователю "IIS AppPool\NewPool" на нужные ресурсы. Обрати внимание что пользователи с префиксом IIS AppPool не видны в списке пользователей и их имя нужно вводить вручную. Затем новому сайту назначаешь этот пул и работаешь.

У ApplicationPoolIdentity есть и подводные камни. Это локальные пользователи без прав на имперсонификацию по сети. Если веб-приложению требуется доступ к ресурсам (например MS SQL) на других серверах, то придется создавать отдельную доменную учетную запись для пула.

Alexey30По умолчанию пулу назначается ApplicationPoolIdentity, позволяющая, например, получить список файлов в C:\Windows.
Думаю что это нужно для корректной работы IIS т.к. он, наравне с веб-приложением в пуле, использует эту учетную запись. Сомневаюсь что доступ на чтение на C:\Windows даст увидеть что-то секретное. Наверняка доступ на чтение выдан выборочно, а не на всю папку.
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38233954
Alexey30
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый bazile, большое спасибо за столь подробный ответ.
В общем то получилось, но не совсем так, как нужно.
Дело в том, что пользователи из IIS AppPool состоят в группе Users, которая по умолчанию имеет доступ на чтение на все диски компьютера (в том числе частично на системный). Вследствии чего и Application Pool имеет доступ на чтение ко всему, что ему в явном виде НЕ запрещено (а это могут быть бэекапы или файлы других сайтов).
Я пытался создать отдельного пользователя, не включенного в группу Users, но при присваивании его пулу получал ошибку
Bad Data. (Exception from HRESULT: 0x80090005)
Подозреваю, это связано с тем, что у нового пользователя нет доступа к нужным разделам системного диска.
Как быть в таком случае? Может быть просто нужно группе Users запретить доступ на все диски, кроме системного?
Спасибо!
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38233983
Alexey30
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И что еще интересно.
Если я отбираю (НЕ запрещаю) у группы Users права на просмотр/чтение файлов в корневой папке сайта и даю эти права пользователю IIS AppPool\NAME, то сайт не стартует с ошибкой

401 - Unauthorized: Access is denied due to invalid credentials.
You do not have permission to view this directory or page using the credentials that you supplied.

Как с этим бороться?
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38240456
Alexey30
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый bazile и другие участники форума!
Возможно, у кого-то есть ответ?
Спасибо!
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38240675
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey30,

Не заморачивайтесь. Попробуйте.
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38242682
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самый лучший вариант это создать своего пользователя с нужными правами и запускать пул от его имени. Тогда у тебя будет полный контроль над правами.

Также не забывай что ASP.NET имеет собственную систему безопасности и на приложение можно наложить дополнительные ограничения. Смотри справку о <trustLevel> .

Alexey30Я пытался создать отдельного пользователя, не включенного в группу Users, но при присваивании его пулу получал ошибку
Bad Data. (Exception from HRESULT: 0x80090005)
Попробовал тоже самое - никаких ошибок и приложение сразу заработало без дополнительных настроек. Попробуй еще раз.

Alexey30Как быть в таком случае? Может быть просто нужно группе Users запретить доступ на все диски, кроме системного?
Я бы не стал так делать. Неизвестно как аукнется.

Alexey30Если я отбираю (НЕ запрещаю) у группы Users права на просмотр/чтение файлов в корневой папке сайта и даю эти права пользователю IIS AppPool\NAME, то сайт не стартует с ошибкой

401 - Unauthorized: Access is denied due to invalid credentials.
You do not have permission to view this directory or page using the credentials that you supplied.

Как с этим бороться?
Запускаешь Process Monitor и смотришь для какой папки и какого пользователя генерируется данная ошибка.
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38244147
Alexey30
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile, спасибо еще раз.
Проблема с ошибкой Bad Data решилась: дело в том, что я импортировал applicationHost.config с другого сервера, но при этом не перенес ключи шифрования. Сделал, как описывали здесь: http://serverfault.com/questions/230934/iis-7-5-encryption-keys-and-hresult-0x80090005 - теперь ошибки нет и я без проблем запускаю пул от иного пользователя.

Но проблема с папками так и осталась.
По порядку, как и что делал:

1) Создал пользователя TestUser1 и задал ему пароль.
2) Присвоил этого пользователя ApplicationPool'у.
3) Удалил участие пользователя в группе Users (т.е. пользователь НЕ является участником какой-либо группы): http://SSMaker.ru/45a81729/
4) Попытался открыть сайт и получил сообщение, что пользователь не имеет прав записи на C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files, права на запись именно в эту папку выдал.
5) Сайт запустился и никаких проблем нет.
6) Пытаюсь данным пользователем получить список папок каталога D:\Sites: Directory.GetDirectories(@"d:\sites") - и без проблем получаю, хотя данного пользователя в настройках безопасности нет: http://SSMaker.ru/25d509b7/

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

Спасибо!
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38244302
Alexey30
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Появилась еще мысль, что в группу "Пользователи" автоматически входят все авторизованные пользователи: http://SSMaker.ru/a796c17d/ - т.е. каждый авторизованный пользователь входит в группу Users (которой дан доступ на D:\Sites)
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38244328
Alexey30
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но еще раз повторюсь.

Если я отбираю (НЕ запрещаю) права у группы Users на папку D:\Sites, то сайты, расположенные внутри нее, перестают работать с ошибкой 401 (у этих сайтов AppPoolIdentity).
При этом пользователи из группы IIS_IUSRS и пользователь из пула каждого сайта (IIS AppPool\POOLNAME) имеют права на чтение / запись.
Пытался с помощью ProcessMonitor отловить попытку доступа, но в нем ничего толком не понял: в основном все события SUCCESS...
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38244377
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey30,

Папке с сайтом необходимо дать полный доступ для группы LOCAL SERVICE

Папке с сайтом необходимо дать доступ на чтение и выполнение (read, list folders, read & execute) группе IIS_IUSRS

Если используется WebDeploy, то остальные нужные права на чтение установятся самостоятельно при публикации, если публикация происходит вручную путем копирования файлов, необходимо дать доступ на чтение всей папке для DefaultAppPool в случае, если у сайта будет данный пул приложений. Если в какую-то папку необходимо записывать, надо разрешить этой папке запись для DefaultAppPool. Но лучше настроить WebDeploy. Настоятельно рекомендую.

Все вышесказанное верно в отношение IIS 7.5 + Windows Server 2008 R2
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38244379
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Больше ничего лишнего делать не нужно. Ковырять пользователей и группы пользователей — тем более.
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38244394
Alexey30
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt, спасибо, но, к сожалению, эффект тот же:
http://ssmaker.ru/1f217d20/
http://ssmaker.ru/76d95bf9/
Имеем при обращении к сайту:
http://ssmaker.ru/9d5f47e5/
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38244461
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey30,

Значит лишнего перемудрил с пользователями и правами. У меня ни при каких обстоятельствах приложение не может ни увидеть, ни прочесть что-либо извне своей папки, не говоря уже о чем-то большем. Права у сайта есть только от имени *AppPool. Кроме того, WebDeploy.
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38244473
Alexey30
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Специально ничего не мудрил - как win 2008 r2 поставил - так никаких изменений в безопасности не было.
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38244475
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey30,

Как публикуешь приложение? Копи файлес то фолдер?
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38244477
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот все что нужно.
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38244479
Alexey30
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, без деплоймента - по ftp
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38244486
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LOCAL SERVICE - FULL
IIS_IUSRS - READ, LIST, EXECUTE
DefaultAppPool - READ (ставится автоматом при публикации, ничего специально делать не нужно)

Если последнее не ставится, то ставить вручную. Прям "DefaultAppPool" в списке на чтение загонять. Никаких II*\POOL
При запуске приложение имеет ровно те же права на чтение, что пул, никаких других у него нет. ISAPI фильтр выполняет приложение из папки bin\ обладая правами IIS_IUSRS поэтому нужны права на чтение. права на запись только у LOCAL SERVICE (вообще надо полный набор прав -- FULL CONTROL), нужно исключительно для WebDeploy.
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38244488
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для IIS_IUSRS важно наличие прав на EXECUTE ко всему прочему

для верности можно дать еще прав IUSR (только чтение), незнаю зачем нужно, но где-то рекомендуют.
...
Рейтинг: 0 / 0
Настройка доступа к папкам для ApplixationPool
    #38245480
Alexey30
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt, bazile, огромное спасибо за желание помочь.
Кажется, получилось.
> для верности можно дать еще прав IUSR (только чтение), незнаю зачем нужно, но где-то рекомендуют.
Как оказалось - это самое важное! Пока не дал этот доступ - так и оставалась 401 ошибка.

Итого, для успешно работы нужно:

1 Вариант:
- Доступ на чтение для группы Users (и все, больше ничего!)

2 Вариант (если не хотим, чтобы все Users могли читать):
- Доступ на чтение IUSR
- Доступ на чтение IIS AppPool\PoolName (отображается БЕЗ IIS AppPool).

Во втором варианте IIS AppPool\PoolName можно заменить на IIS_IUSRS, но тогда и другие пулы получат доступ к этому каталогу.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Настройка доступа к папкам для ApplixationPool
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]