Заметки о Windows и других программных продуктах Microsoft...

Включение Access Based Enumeration в Windows Server 2012

Включение Access Based Enumeration в Windows Server 2012

Технология Access Based Enumeration (ABE) дословно переводится как ″Перечисление на основании доступа″ и позволяет на общих сетевых папках (шарах) скрыть от пользователя те файлы\папки, к которым у него нет прав доступа. Дело в том, что при наличии доступа к общей папке пользователь может видеть все находящиеся в ней объекты (файлы и папки), независимо от наличия к ним доступа.

По умолчанию процесс доступа к сетевой папке происходит таким образом:

• Пользователь подключается к серверу и запрашивает доступ к общей папке;
• Сервер (точнее служба LanmanServer, отвечающая за общий доступ к файлам и папкам) проверяет, есть ли у пользователя разрешения файловой системы на чтение\листинг данной папки, и при их наличии возвращает список всех файлов и папок, в ней находящихся;
• Пользователь выбирает из списка интересующий его объект (файл или папку) и пытается его открыть;
• Сервер проверяет, есть ли у пользователя необходимые права доступа. Если права есть — то пользователю возвращается требуемый объект, если нет — выдается ошибка доступа.

При такой последовательности действий сервер сначала выдает пользователю список всего содержимого папки, а права доступа к отдельным файлам\папкам внутри нее проверяет потом, при попытке доступа к ним. Конечно, без необходимых прав пользователь все равно на сможет получить доступ к объекту, но гораздо гуманнее будет скрыть от него то, к чему у него все равно нет доступа.

Как раз для этого и предназначена технология Access Based Enumeration. При активации ABE сервер начинает проверять права пользователя на содержимое папки перед тем, как отправить ему список. Таким образом пользователю будут перечислены только те ресурсы, на которые у него есть необходимые права — просмотр содержимого (list contents) для папок и чтение (read) для отдельных файлов.

Включение Access Based Enumeration

Процедура включение ABE крайне проста. Для настройки на отдельном сервере открываем Server Manager и на главной странице выбираем роль сервера «File and Storage Services».

Примечание. Для включения Access Based Enumeration необходима роль сервера File and Storage Services.

открываем Server Manager

 

Затем переходим в раздел «Shares» и выбираем из списка шару, для которой надо включить ABE. Кликаем на ней правой клавишей и в открывшемся меню выбираем пункт «Properties».

переходим в раздел  Shares

 

И затем в свойствах шары ставим галку в поле «Enable access-based enumeration».

включаем ABS для шары

 

При управлении общими папками централизованно, через предпочтения групповых политик (Group Policies Preferences), в свойствах папки также есть возможность указать, будет ли включен для нее ABE.

настройка ABS через Group Policies Preferences

 

Ну и в качестве примера — так выглядит папка с включенной ABE для администратора сервера

до включения ABS

 

А так для обычного пользователя.

после включения ABS

 

Таким образом, технология ABE облегчает жизнь как пользователям, так и администраторам. Пользователь избавлен от излишней информации и у него не возникает соблазна получить к ней доступ, а администратор больше не должен отвечать на вопросы по поводу отсутствия доступа. Кроме того, ABE крайне проста в настройке и практически не имеет особых требований к серверу и клиенту. Однако есть у ABE и недостаток — дополнительная нагрузка на сервер. Нагрузка напрямую зависит от количества пользователей на сервере и количества объектов в просматриваемом каталоге. При большой нагрузке скорость открытия папки может заметно уменьшиться.

Заключение

В заключение несколько замечаний по поводу использования ABE:

• ABE контролирует только список содержимого общих папок, но не скрывает от пользователей список этих папок на сервере. Поэтому при подключении к серверу пользователь будет видеть все общие папки. Если вам необходимо создать скрытую шару, то можно просто добавить к ее имени знак $, например Doc$;
• ABE не работает при локальном входе в систему или при подключении по RDP;
• Члены группы локальных администраторов всегда видят полный список содержимого папки.

 
 
Комментарии

Ещё можно в батниках выкл/вкл делать.
Windows Server 2003 Access-based Enumeration
http://www.microsoft.com/en-us/download/details.aspx?id=17510
Под 2008 R2 отлично работает ☺.

Также к DFS применимо:
dfsutil property abde enable \\namespace_root

Есть глубоко_вложенная папка \\fs\departament\otdel\papka-1\docs\info
Как правильно организовать доступ для юзера только к этой папке (info) ? Технология АВЕ включена.
Ищу «автоматический» вариант 🙂
т.е. нужно что б заходя на \\fs (он мапится всем ) юзер мог спокойно проломится в info не видя ничего другого…
Такое реально?

Бывают случаи, когда нужно что бы локально для определенного юзера был доступ. На определенный файл/каталог, а по сети нет. Под Linux/BSD это делается очень просто — собираем нужные каталоги в нужную samba шару тупо командой ln -s /физ/каталог /шара/вирт.каталог. Под виндой только dfs и только то, что уже расшарено. То бишь, исходная шара будет светиться всеми цветами радуги. При чем, нет возможности накидать виртуальных логических прав для сетевого объекта. если у ntfs прав нет — их не будет и на сетевом объекте. Хоть, обычном, хоть через dfs. Плюс, оплокс, которые умеют работать только с каталогами. С файлами пролет. В отличии от простейших опций «veto files» под Linux/BSD.
В этом случае, если человек даже чайник, спокойно поставит FreeNAS с zfs. коммандлайн шелл деяний минимум. те же acl/nfsv4, но только с человеческой логикой.

У Linux есть много преимуществ, но вот удобство при работе с файлами в них точно не входит. Расшарить папку и назначить права явно проще, чем ставить FreeNAS с zfs и acl/nfsv4.

Ответить