Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
Приветствую. Имеется сервер на Win 2008 R2 на котором хостятся сайты на IIS 7.5. Товарищ просит разместить его проект на сервере. Интересует вопрос, как правильно установить ограничения безопасности, чтобы скрипты с данного сайта не могли читать структуру каталогов (и сами файлы) как на системном диске, та к и на диске с данными? По умолчанию пулу назначается ApplicationPoolIdentity, позволяющая, например, получить список файлов в C:\Windows. Правильно ли я понимаю, что нужно создать отдельного Windows пользователя, которому дать права на чтение / изменении только папки с сайтом? Что еще необходимо сделать? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2013, 17:04 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
Alexey30, учетная запись ApplicationPoolIdentity означает что для каждого пула создается одноименный пользователь давая таким образом возможность полностью изолировать приложения в разных пулах друг от друга. Поэтому создаешь новый пул (например, NewPool), ставишь у него пользователя ApplicationPoolIdentity и затем даешь (или отбираешь) права пользователю "IIS AppPool\NewPool" на нужные ресурсы. Обрати внимание что пользователи с префиксом IIS AppPool не видны в списке пользователей и их имя нужно вводить вручную. Затем новому сайту назначаешь этот пул и работаешь. У ApplicationPoolIdentity есть и подводные камни. Это локальные пользователи без прав на имперсонификацию по сети. Если веб-приложению требуется доступ к ресурсам (например MS SQL) на других серверах, то придется создавать отдельную доменную учетную запись для пула. Alexey30По умолчанию пулу назначается ApplicationPoolIdentity, позволяющая, например, получить список файлов в C:\Windows. Думаю что это нужно для корректной работы IIS т.к. он, наравне с веб-приложением в пуле, использует эту учетную запись. Сомневаюсь что доступ на чтение на C:\Windows даст увидеть что-то секретное. Наверняка доступ на чтение выдан выборочно, а не на всю папку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2013, 18:09 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
Уважаемый bazile, большое спасибо за столь подробный ответ. В общем то получилось, но не совсем так, как нужно. Дело в том, что пользователи из IIS AppPool состоят в группе Users, которая по умолчанию имеет доступ на чтение на все диски компьютера (в том числе частично на системный). Вследствии чего и Application Pool имеет доступ на чтение ко всему, что ему в явном виде НЕ запрещено (а это могут быть бэекапы или файлы других сайтов). Я пытался создать отдельного пользователя, не включенного в группу Users, но при присваивании его пулу получал ошибку Bad Data. (Exception from HRESULT: 0x80090005) Подозреваю, это связано с тем, что у нового пользователя нет доступа к нужным разделам системного диска. Как быть в таком случае? Может быть просто нужно группе Users запретить доступ на все диски, кроме системного? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2013, 19:18 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
И что еще интересно. Если я отбираю (НЕ запрещаю) у группы 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. Как с этим бороться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2013, 19:58 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
Уважаемый bazile и другие участники форума! Возможно, у кого-то есть ответ? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2013, 17:38 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
Alexey30, Не заморачивайтесь. Попробуйте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2013, 20:43 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
Самый лучший вариант это создать своего пользователя с нужными правами и запускать пул от его имени. Тогда у тебя будет полный контроль над правами. Также не забывай что 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 и смотришь для какой папки и какого пользователя генерируется данная ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2013, 17:38 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
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/ Помогите, пожалуйста, понять, что еще нужно сделать, чтобы пользователь имел доступ только к той папке, в которой находится сайт? Есть, наверное, вариант принудительно запретить доступ на все диски и папки, а разрешить только на нужной. Но мне кажется это не самый верный вариант (например, добавится еще диск - по умолчанию тогда пользователь будет иметь на него доступ)... Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2013, 16:28 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
Появилась еще мысль, что в группу "Пользователи" автоматически входят все авторизованные пользователи: http://SSMaker.ru/a796c17d/ - т.е. каждый авторизованный пользователь входит в группу Users (которой дан доступ на D:\Sites) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2013, 17:57 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
Но еще раз повторюсь. Если я отбираю (НЕ запрещаю) права у группы Users на папку D:\Sites, то сайты, расположенные внутри нее, перестают работать с ошибкой 401 (у этих сайтов AppPoolIdentity). При этом пользователи из группы IIS_IUSRS и пользователь из пула каждого сайта (IIS AppPool\POOLNAME) имеют права на чтение / запись. Пытался с помощью ProcessMonitor отловить попытку доступа, но в нем ничего толком не понял: в основном все события SUCCESS... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2013, 18:19 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
Alexey30, Папке с сайтом необходимо дать полный доступ для группы LOCAL SERVICE Папке с сайтом необходимо дать доступ на чтение и выполнение (read, list folders, read & execute) группе IIS_IUSRS Если используется WebDeploy, то остальные нужные права на чтение установятся самостоятельно при публикации, если публикация происходит вручную путем копирования файлов, необходимо дать доступ на чтение всей папке для DefaultAppPool в случае, если у сайта будет данный пул приложений. Если в какую-то папку необходимо записывать, надо разрешить этой папке запись для DefaultAppPool. Но лучше настроить WebDeploy. Настоятельно рекомендую. Все вышесказанное верно в отношение IIS 7.5 + Windows Server 2008 R2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2013, 18:57 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
Больше ничего лишнего делать не нужно. Ковырять пользователей и группы пользователей — тем более. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2013, 19:00 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
hVostt, спасибо, но, к сожалению, эффект тот же: http://ssmaker.ru/1f217d20/ http://ssmaker.ru/76d95bf9/ Имеем при обращении к сайту: http://ssmaker.ru/9d5f47e5/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2013, 19:06 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
Alexey30, Значит лишнего перемудрил с пользователями и правами. У меня ни при каких обстоятельствах приложение не может ни увидеть, ни прочесть что-либо извне своей папки, не говоря уже о чем-то большем. Права у сайта есть только от имени *AppPool. Кроме того, WebDeploy. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2013, 20:46 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
Специально ничего не мудрил - как win 2008 r2 поставил - так никаких изменений в безопасности не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2013, 21:05 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
Alexey30, Как публикуешь приложение? Копи файлес то фолдер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2013, 21:06 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
Вот все что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2013, 21:06 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
Да, без деплоймента - по ftp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2013, 21:07 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
LOCAL SERVICE - FULL IIS_IUSRS - READ, LIST, EXECUTE DefaultAppPool - READ (ставится автоматом при публикации, ничего специально делать не нужно) Если последнее не ставится, то ставить вручную. Прям "DefaultAppPool" в списке на чтение загонять. Никаких II*\POOL При запуске приложение имеет ровно те же права на чтение, что пул, никаких других у него нет. ISAPI фильтр выполняет приложение из папки bin\ обладая правами IIS_IUSRS поэтому нужны права на чтение. права на запись только у LOCAL SERVICE (вообще надо полный набор прав -- FULL CONTROL), нужно исключительно для WebDeploy. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2013, 21:10 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
для IIS_IUSRS важно наличие прав на EXECUTE ко всему прочему для верности можно дать еще прав IUSR (только чтение), незнаю зачем нужно, но где-то рекомендуют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2013, 21:12 |
|
||
|
Настройка доступа к папкам для ApplixationPool
|
|||
|---|---|---|---|
|
#18+
hVostt, bazile, огромное спасибо за желание помочь. Кажется, получилось. > для верности можно дать еще прав IUSR (только чтение), незнаю зачем нужно, но где-то рекомендуют. Как оказалось - это самое важное! Пока не дал этот доступ - так и оставалась 401 ошибка. Итого, для успешно работы нужно: 1 Вариант: - Доступ на чтение для группы Users (и все, больше ничего!) 2 Вариант (если не хотим, чтобы все Users могли читать): - Доступ на чтение IUSR - Доступ на чтение IIS AppPool\PoolName (отображается БЕЗ IIS AppPool). Во втором варианте IIS AppPool\PoolName можно заменить на IIS_IUSRS, но тогда и другие пулы получат доступ к этому каталогу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2013, 16:16 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38244477&tid=1358484]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 403ms |

| 0 / 0 |
