Реализация перечисления на основе доступа в Windows Server 2003 R2

Опубликовано: 24 Марта, 2023


Получите свою копию Windows Server Hacks!


Некоторое время я работал сетевым администратором в компании среднего размера еще во времена NT 4, и одна из вещей, которые я помню, это любопытство пользователей. Например, у нас в сети было несколько файловых серверов, и на каждом из них было несколько разных общих ресурсов. Время от времени, когда я проходил мимо рабочего стола пользователя, я видел, как он пытается щелкнуть файл в каком-то общем ресурсе и получает сообщение «Отказано в доступе». Почему это случилось? Поскольку они пытались открыть документы, для чтения или изменения которых у них не было разрешений NTFS. Тем не менее, они часто дважды щелкали по ним. Почему? Потому что им было любопытно.


Я имею в виду, кому не будет любопытно, если вы найдете в сети общий ресурс с именем HR (для отдела кадров), и в этом общем ресурсе вы найдете папку с именем Увольнения, а в этой папке вы найдете документ с именем NextMonthsLayoffs.doc. Ой! Буду ли я одним из тех, кого уволят? Щелк-щелк… крысы.


Этот сценарий подчеркивает одну из слабых сторон общего доступа к файлам на платформах Windows, а именно то, что по умолчанию все пользователи, имеющие доступ к общему сетевому ресурсу, могут, как минимум, видеть, какие файлы и папки находятся в этом общем ресурсе, даже если у них нет любое разрешение на доступ к ним. Например, предположим, что вы предоставляете общий доступ к папке C:Budgets как БЮДЖЕТЫ всем, у кого есть разрешение на чтение общего доступа, и группе пользователей, у которой есть Разрешить: чтение и выполнение ACE в папке. Скажем также, что в этом общем ресурсе есть файл с именем ThisYear.xls и папка с именем Previous. Теперь попробуйте следующее: добавьте пользователя Bob Smith в ACL для этих двух объектов файловой системы и назначьте Deny: Full Control ACE для них обоих. Теперь войдите на рабочий стол Windows XP как пользователь Bob Smith, откройте My Network Places и просматривайте, пока не найдете общий ресурс BUDGETS. Дважды щелкните по ресурсу и что вы видите? Файл с именем ThisYear.xls и папка с именем Previous. Попробуйте дважды щелкнуть любой из них, чтобы прочитать электронную таблицу или просмотреть папку, и вы получите сообщение «Отказано в доступе». Ну, если вам, как Бобу Смиту, запрещен доступ к этим элементам, почему вам вообще разрешено видеть их в разделе БЮДЖЕТЫ?


В этом вся суть новой технологии Access-Based Enumeration (ABE), включенной в Windows Server 2003 R2. (На самом деле ABE впервые был включен в пакет обновления 1 для Windows Server 2003, но этот пакет обновления составляет основу версии платформы R2.) ABE делает именно то, чего администраторы Windows всегда хотели, чтобы файловые серверы Windows делали — скрывать. файлы и папки от пользователей, не имеющих к ним доступа. Другими словами, с включенным ABE и настроенным для общего ресурса BUDGETS Боб может попытаться просмотреть папку BUDGETS с помощью My Network Places, но когда он заглянет внутрь BUDGETS, он ничего там не увидит — его разрешения NTFS для файла и папки не действуют. не позволяют ему получить доступ к этим элементам, поэтому они даже не видны ему. Обратите внимание, что это поведение одинаково независимо от того, назначаете ли вы ACE «Запретить» Бобу при предоставлении разрешения группе «Пользователи» или удаляете ACE для пользователей и предоставляете ACE «Разрешить» только тем группам пользователей, которым это необходимо (группам, которые не включайте Боба в число участников) и вообще не используйте ACE для Боба.


Результат? Если бы я мог использовать ABE еще во времена старой NT 4, только высшее руководство и персонал отдела кадров знали бы о существовании папки «Увольнения» в общем ресурсе отдела кадров, и никто, кроме этих сотрудников, не знал бы о существовании документ с именем NextMonthsLayoffs.doc. Другими словами, с ABE не было бы слухов о предстоящих увольнениях, если бы они не были инициированы персоналом отдела кадров или менеджером, конечно!


Установка и включение ABE


Когда я говорю, что ABE был включен в состав Windows Server 2003 R2 (или SP1), мне также нужно пояснить, что для использования ABE вам все равно нужно что-то загрузить и установить на свой файловый сервер. Это что-то представляет собой компонент, который предоставляет пользовательский интерфейс (как графический, так и командную строку), который позволяет включать и настраивать ABE на вашем сервере. Вы можете загрузить этот компонент здесь из Центра загрузки Microsoft, но убедитесь, что загружаете правильную версию в зависимости от платформы вашего процессора (x86, AMD64 или IA64). После загрузки соответствующего пакета установщика Windows установите его на все файловые серверы R2/SP1, на которых вы хотите включить функции ABE.


Установка компонента пользовательского интерфейса ABE — это простой процесс (рис. 1):



Изображение 20615
Рис. 1. Установка пользовательского интерфейса ABE


Единственное важное решение, которое вам нужно принять в процессе установки, — хотите ли вы автоматически включить ABE задним числом для всех существующих общих папок на вашем сервере или предпочитаете настроить это вручную для каждой папки позже (рис. 2):



Изображение 20616
Рисунок 2. Принятие решения о необходимости ретроактивной настройки ABE для существующих общих ресурсов или нет


Обратите внимание, что выбор первого варианта на рис. 2 не означает, что в будущих общих ресурсах, которые вы создадите, ABE будет автоматически включен — вам все равно придется вручную настраивать ABE для будущих общих ресурсов, которые вы решите создать на своем сервере.


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



Изображение 20617
Рис. 3. Вкладка ABE на странице свойств общей папки


Установите первый флажок на рисунке 3, чтобы включить ABE для общей папки. (Установите второй флажок, чтобы сделать то же самое со всеми существующими общими ресурсами на вашем сервере). Это в принципе так просто. Чтобы проверить, работает ли ABE, сравните приведенный ниже рисунок 4, на котором показано, что увидит Боб, когда он просматривает общий ресурс BUDGETS со своей машины XP до включения ABE на этом общем ресурсе, с рисунком 5, показывающим то же представление на компьютере Боба после включения ABE. на акции.



Изображение 20618
Рис. 4. До включения ABE в BUDGETS Боб может видеть в нем все — даже если у него есть запрет ACE для всех присутствующих элементов


Изображение 20619
Рис. 5. После включения ABE в BUDGETS Боб не может видеть файлы и папки, для которых у него нет ACE (или для которых есть Deny ACE)


Ограничения АВЕ


Есть несколько ограничений ABE:



  • Для его использования вам потребуется Windows Server 2003 R2 или SP1.
  • Пользователи с правами администратора смогут видеть каждый файл и папку в общем ресурсе, даже если ABE включен, и даже если у них есть параметр «Запретить ACE» для этих элементов.
  • ABE не применяется к пользователям, которые могут входить на сервер в интерактивном режиме, независимо от того, являются они администраторами или нет. Это означает, что ABE на самом деле не подходит для сред служб терминалов.
  • Вы не можете настроить ABE так, чтобы только что созданная общая папка автоматически включалась в ABE.
  • И, наконец, ABE добавляет файловому серверу несколько процентных пунктов издержек обработки, и это необходимо учитывать в ситуациях с большой нагрузкой.

Хорошая новость заключается в том, что ABE встроен в новые платформы Windows Vista и Longhorn Server, включен по умолчанию и не требует абсолютно никакой настройки на этих платформах. Таким образом, папка, совместно используемая на компьютере с Vista, будет показывать свое содержимое только тем пользователям, у которых есть разрешения на доступ к ее элементам.


Последнее слово по теме


ABE — это хорошо, особенно если ваша компания хранит конфиденциальную деловую информацию на файловых серверах в вашей сети. Помните, что злонамеренный (или просто любопытный) пользователь иногда может многое узнать о вашем бизнесе, просто просматривая имена документов, хранящихся в общих папках на ваших файловых серверах. Что бы сделал сотрудник, если бы нашел документ под названием «Наш генеральный директор уйдет на пенсию завтра.doc»? Вероятно, быстро продайте его акции и расскажите об этом его друзьям, и вскоре ваша компания заставит Комиссию по ценным бумагам и биржам или какое-либо другое регулирующее агентство дышать вам в затылок за инсайдерскую торговлю!