Access base enumeration windows 2003

Содержание
  1. Использование ABE в Windows Server 2003
  2. Access-Based Enumeration
  3. Скрываем папки недоступные пользователю с помощью Access-Based Enumeration (ABE) в Windows Server
  4. Особенности доступа к общим сетевым папкам Windows
  5. Ограничения Access Based Enumeration
  6. Использование ABE в Windows Server 2008 / 2008 R2
  7. Настройка Access Based Enumeration в Windows Server 2012 R2/ 2016
  8. Настройка Access Based Enumeration в Windows Server 2003
  9. Управление ABE из командной строки
  10. Управление Access Based Enumeration с помощью PowerShell
  11. Access-Based Enumeration в Windows 10 / 8.1 / 7
  12. Включение перечисления на основе доступа для пространства имен Enable access-based enumeration on a namespace
  13. Включение перечисления на основе доступа с помощью интерфейса Windows To enable access-based enumeration by using the Windows interface
  14. Включение перечисления на основе доступа с помощью командной строки To enable access-based enumeration by using a command line
  15. Управление видимостью папки с помощью интерфейса Windows To control folder visibility by using the Windows interface
  16. Управление видимостью папки с помощью командной строки To control folder visibility by using a command line

Использование ABE в Windows Server 2003

В сети есть шара files на файловом сервере, в шаре куча папок, щелкаешь на них — restricted. Интересно, что там. Можно попробовать подобрать пароль.

Знакомо? Попробуем немного улучшить ситуацию.

Предположим, в сети расшарена папка Temp с вложенными в нее папками 1, 2, 3 и 4 :

У нас есть два пользователя: test1 и test2 . Пользователь test1 должен иметь доступ к папкам 1, 3 и 4 , пользователь test2 должен иметь доступ к папкам 2, 3 и 4 . Как сделать так, чтобы пользователь test2 не знал, что в папке Temp вообще есть что-то, кроме его папок?

Вариант 1: сделать отдельные шары для каждого пользователя. Это выход, но если папки 3 и 4 используются совместно? Делать отдельную шару для общих папок? А если пользователей 20 штук? Вот. В такой ситуации Microsoft предлагает использовать Access-Based Enumeration (сокр., ABE).

Access-Based Enumeration

Access-Based Enumeration возможно использовать на Windows 2003 SP1 и выше, Windows 2003 R2. Скачать Access-Based Enumeration можно на сайте Microsoft. Размер 500 кбайт. Установка простая, даже описывать нечего.

Access-Based Enumeration появляется в виде дополнительной вкладки между вкладками «Безопасность» и «Настройка» расшаренной папки:

Основная мысль: расшаривается «головная» папка, содержащая все остальные (в нашем примере это папки 1, 2, 3 и 4 ). Доступ во вложенные папки задается стандартно через вкладку «Безопасность». В нашем примере папке 2 дан доступ только для пользователя test2 .

Пользователь test1 не увидит папку 2 просматривая шару:

Таким образом не только ограничивается доступ к содержимому папки 2 , но скрывается сам факт ее наличия. Т.е. пользователи могут просто не знать, есть ли другие папки в той шаре, с которой они работают каждый день. Точно также можно задавать права не только для папок, но и для файлов. Меньше знаешь — крепче спишь. В нашем случае, крепче спит администратор сети!

Скрываем папки недоступные пользователю с помощью Access-Based Enumeration (ABE) в Windows Server

Технология Access-based Enumeration (ABE Перечисление на основании доступа) позволяет на общих сетевых ресурсах (шарах) скрыть от пользователей файлы и папки, к которым у них отсутствует права доступа на чтение на уровне NTFS. Тем самым можно обеспечить дополнительную конфиденциальность данных, хранящихся в сетевом каталоге (за счет скрытия структуры и имен каталогов и файлов), улучшить юзабилити для пользователя, которому в процессе работы с сетевым каталогом не будет отображаться лишняя информация (тем более доступ к которой у него все равно отсутствует) и, самое главное, оградим системного администратора от постоянных вопросов пользователей «почему меня не пускает в эту папку!!». Попробуем детальнее разобраться в этой технологии и особенностях ее настройки и использования в различных версиях Windows.

Особенности доступа к общим сетевым папкам Windows

Одним из недостатков сетевых папок Windows является тот факт, что по-умолчанию все пользователи при просмотре содержимого общей папки могли, как минимум, видеть ее структуру и список содержащихся в ней файлов и каталогов, в том числе тех, доступ к которым на уровне NTFS у них отсутствует (при попытке открыть такой файл или папку пользователь получает ошибку доступа «Доступ запрещен / Access Denied»). Так почему бы не скрыть от пользователя те каталоги и файлы, к которым у него все равно нет доступа? Помочь в этой задаче должна технология Access Based Enumeration (ABE). Включив ABE на общей сетевой папке можно добиться того, чтобы разные пользователи видели различный список каталогов и файлов в одной и той же сетевой шаре, основанный индивидуальных правах доступа пользователя к этим папкам (ACL).

Каким образом происходит взаимодействие между клиентом и сервером при обращении к общей папке:

  • Клиент обращается к серверу с запросом на доступ к интересующему его каталогу в общей сетевой папке;
  • Служба LanmanServer на сервере проверяет, есть ли у пользователя права доступа к данному каталогу на уровне разрешений файловой системе NTFS;
  • Если доступ разрешен (просмотр содержимого/чтение/запись), пользователь видит список содержимого каталога;
  • Затем пользователь по такой же схеме может открыть конкретный файл или вложенный каталог (вы можете посмотреть, кто открыл конкретный файл в сетевой папке так). Если доступа к папке нет, пользователь получает соответствующее уведомление.
Читайте также:  Windynamicdesktop windows 10 не запускается

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

Функционал Access Based Enumeration (ABE) позволяет реализовать проверку прав доступа на объекты файловой системы до того, как пользователю отправляется список содержимого папки. Следовательно, в конечный список будут попадать только те объекты, к которым у пользователя есть хотя бы права Read на уровне NTFS, а все недоступные ресурсы просто не отображаются (скрываются).

Т.е. пользователь одного отдела (например, склада) в одном и том же сетевом каталоге (\\filesrv1\docs) будет видеть один список папок и файлов. Как вы видите, у пользователя отображаются только две папки: Public и Sklad.

У пользователей другого департамента, например, ИТ (которые включены в другую группу безопасности Windows), отображается другой список вложенных каталогов. Помимо каталогов Public и Sklad у данных пользователей в сетевой папке видны еще 6 директорий.

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

Управлять ABE можно из командной строки (утилита abecmd.exe), из графического интерфейса, PowerShell или через специальный API.

Ограничения Access Based Enumeration

Access-based Enumeration в Windows не работает в случаях:

  1. Если в качестве файл-сервера используется Windows XP или Windows Server 2003 без Service Pack;
  2. При локальном просмотре каталогов (непосредственно с сервера). Например, пользователь, подключившись к RDS серверу будет видеть все локальные папки, если данный сервер используется и в качестве файлового сервера);
  3. Для членов локальной группы администраторов файлового сервера (они всегда видят полный список файлов).

Использование ABE в Windows Server 2008 / 2008 R2

В Windows Server 2008/R2 для использования функционала Access Based Enumeration никаких дополнительных компонентов устанавливать не нужно, т.к. возможность управления функционалом ABE уже встроена в графический интерфейс Windows. Чтобы включить Access-based Enumeration для конкретной папки в Windows Server 2008/2008 R2, откройте mmc консоль управления Share and Storage Management (Start –> Programs –> Administrative Tools ->Share and Storage Management). Перейдите в окно свойств нужной шары. Затем перейдите в окно расширенных настроек (кнопка Advanced) и включите опцию Enable access-based enumeration.

Настройка Access Based Enumeration в Windows Server 2012 R2/ 2016

Настройка ABE в Windows Server 2012 R2 / 2016 также выполняется просто. Чтобы включить Access Based Enumeration необходимо сначала, естественно, установить роль файлового сервера (File And Storage Services), а затем в консоли Server Manager перейти в свойства общей папки.

И в разделе Settings включить опцию Enable access-based enumeration.

Настройка Access Based Enumeration в Windows Server 2003

В Windows Server 2003 (снята с поддержки) технология ABE стала поддерживаться начиная с Service Pack1. Чтобы включить Access-based Enumeration в Windows Server 2003 SP1 (и выше), нужно скачать и установить пакет _http://www.microsoft.com/en-us/download/details.aspx?id=17510. В процессе установки необходимо указать, нужно ли автоматически включить ABE для всех общих папок на сервере, либо настройка будет проводиться в индивидуальном порядке. Если выбран второй пункт, то после окончания установки пакета, в свойствах общих папок появится новая вкладка Access-based Enumeration.

Чтобы активировать ABE для конкретной папки, включите в ее свойствах опцию Enable access-based enumeration on this shared folder.

Также отметим, что в Windows 2003 поддерживается использование Access Based Enumeration на основе DFS, однако настроить его можно только из командной строки с помощью утилиты cacls.

Управление ABE из командной строки

Настройками Access-based Enumeration можно управлять из командной строки при помощи утилиты Abecmd.exe. Данная утилита входит в пакет Access-based Enumeration для Windows Server 2003 SP1 (ссылка выше).

Утилита Abecmd.exe позволяет активировать ABE сразу для всех каталогов или же персонально. Следующая команда включит Access-Based Enumeration сразу для всех шар:

abecmd /enable /all

Или для конкретной папки (например, шары с именем Docs):

abecmd /enable Docs

Управление Access Based Enumeration с помощью PowerShell

Для управления настройками Access Based Enumeration для конкретных папок можно использовать PowerShell модуль SMBShare (установлен по-умолчанию в Windows 10/8.1 и Windows Server 2016/ 2012 R2). Выведем свойства конкретной сетевой папки:

Обратите внимание на значение атрибута FolderEnumerationMode. В нашем случае его значение – Unrestricted. Это означает, что ABE отключен для этой папки.

Можно проверить статус ABE для всех сетевых папок сервера:

Get-SmbShare | Select-Object Name,FolderEnumerationMode

Чтобы включить ABE для папки, выполните:

Get-SmbShare Install | Set-SmbShare -FolderEnumerationMode AccessBased

Вы можете включить Access Based Enumeration для всех опубликованных сетевых папок (в том числе административных шар ADMIN$, C$, E$, IPC$), выполните:

Get-SmbShare Install | Set-SmbShare -FolderEnumerationMode AccessBased

Чтобы отключить ABE, выполните:

Читайте также:  Чем открыть файл реестра windows

Get-SmbShare Install | Set-SmbShare -FolderEnumerationMode Unrestricted

Access-Based Enumeration в Windows 10 / 8.1 / 7

Многим пользователем, особенно в домашних сетях, также хотелось бы иметь возможность воспользоваться функционалом Access-Based Enumeration. Проблема заключается в том, что в клиентских ОС Microsoft отсутствует как графический, так и командный интерфейс управления «Перечислением на основе доступа».

В Windows 10 (Server 2016) и Windows 8.1 (Server 2012R2) для управления Access-based Enumeration можно использовать PowerShell (см. раздел выше). В более старых версиях Windows, вам необходимо установить последнюю версию PowerShell (>= 5.0) или использовать утилиту abecmd.exe из пакета для Windows Server 2003, прекрасно работает и на клиентских ОС. Т.к. пакет Windows Server 2003 Access-based Enumeration на Windows 10 / 8.1 / 7 не устанавливается, придется сначала установить его на Windows Server 2003, а затем скопировать его из каталога C:\windows\system32 в такой же каталог на клиенте. После этого включить ABE можно по сценарию с командной строкой, описанному выше.

Кроме того, вы можете включать ABE на компьютерах домена AD с помощью групповых политик. Для этого используется GPP в секции: Computer Configuration -> Preferences -> Windows Settings -> Network Shares).

Как вы видите, в свойствах сетевой папки есть опция Access-Based Enumeration, если изменить значение на Enable, для всех общих папок, созданных с помощью данной GPO будет включен режим ABE.

Включение перечисления на основе доступа для пространства имен Enable access-based enumeration on a namespace

Область применения: Windows Server 2019, Windows Server (половина ежегодного канала), Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2, Windows Server 2008 Applies to: Windows Server 2019, Windows Server (Semi-Annual Channel), Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2, Windows Server 2008

Перечисление на основе доступа позволяет скрыть файлы и папки, на доступ к которым у пользователей нет разрешения. Access-based enumeration hides files and folders that users do not have permissions to access. По умолчанию для пространств имен DFS эта функция отключена. By default, this feature is not enabled for DFS namespaces. Включить перечисление на основе доступа для папок DFS можно с помощью оснастки «Управление DFS». You can enable access-based enumeration of DFS folders by using DFS Management. Для управления перечислением на основе доступа файлов и папок в конечных объектах папок необходимо включить перечисление на основе доступа в каждой общей папке с помощью оснастки «Управление общими ресурсами и хранилищами». To control access-based enumeration of files and folders in folder targets, you must enable access-based enumeration on each shared folder by using Share and Storage Management.

Для включения перечисления на основе доступа для пространства имен все серверы пространства имен должны работать под управлением Windows Server 2008 или более поздней версии. To enable access-based enumeration on a namespace, all namespace servers must be running Windows Server 2008 or newer. Кроме того, для доменных пространств имен должен использоваться режим Windows Server 2008. Additionally, domain-based namespaces must use the Windows Server 2008 mode. Сведения о требованиях режима Windows Server 2008 см. в разделе Выбор типа пространства имен. For information about the requirements of the Windows Server 2008 mode, see Choose a Namespace Type.

В некоторых средах включение перечисления на основе доступа может привести к высокой загрузке ЦП на сервере и замедлением отклика для пользователей. In some environments, enabling access-based enumeration can cause high CPU utilization on the server and slow response times for users.

Если вы обновите режим работы домена до Windows Server 2008 при наличии существующих доменных пространств имен, оснастка «Управление DFS» позволит включить перечисление на основе доступа для этих пространств имен. If you upgrade the domain functional level to Windows Server 2008 while there are existing domain-based namespaces, DFS Management will allow you to enable access-based enumeration on these namespaces. Однако вы не сможете редактировать разрешения для скрытия папок от каких-либо групп или пользователей, если перенесете пространство имен в режим Windows Server 2008. However, you will not be able to edit permissions to hide folders from any groups or users unless you migrate the namespaces to the Windows Server 2008 mode. Дополнительные сведения см. в разделе Перенос доменного пространства имен в режим Windows Server 2008. For more information, see Migrate a Domain-based Namespace to Windows Server 2008 Mode.

Чтобы использовать перечисление на основе доступа с пространствами имен DFS, необходимо выполнить следующие действия: To use access-based enumeration with DFS Namespaces, you must follow these steps:

  • Включение перечисления на основе доступа для пространства имен Enable access-based enumeration on a namespace
  • Задание пользователей и групп, которые могут просматривать отдельные папки DFS Control which users and groups can view individual DFS folders

Перечисление на основе доступа не мешает пользователям переходить по ссылке на конечный объект папки, если они уже знают путь DFS. Access-based enumeration does not prevent users from getting a referral to a folder target if they already know the DFS path. Помешать доступу пользователя к конечному объекту папки могут только разрешения для общего ресурса или разрешения файловой системы NTFS, относящиеся к самому конечному объекту папки (общей папке). Only the share permissions or the NTFS file system permissions of the folder target (shared folder) itself can prevent users from accessing a folder target. Разрешения для папок DFS используются только для отображения или скрытия папок DFS, а не для управления доступом, что делает доступ на чтение единственным применимым разрешением на уровне папки DFS. DFS folder permissions are used only for displaying or hiding DFS folders, not for controlling access, making Read access the only relevant permission at the DFS folder level. Дополнительные сведения см. в разделе Использование унаследованных разрешений с перечислением на основе доступа For more information, see Using Inherited Permissions with Access-Based Enumeration

Читайте также:  Как настроить сеть windows server 2012

Включение перечисления на основе доступа с помощью интерфейса Windows To enable access-based enumeration by using the Windows interface

В узле Пространства имен дерева консоли щелкните правой кнопкой мыши соответствующее пространство имен и выберите Свойства. In the console tree, under the Namespaces node, right-click the appropriate namespace and then click Properties .

Перейдите на вкладку Дополнительно и установите флажок Включить перечисление на основе доступа для этого пространства имен. Click the Advanced tab and then select the Enable access-based enumeration for this namespace check box.

Включение перечисления на основе доступа с помощью командной строки To enable access-based enumeration by using a command line

Откройте окно командной строки на сервере, где установлена служба роли Распределенная файловая система или компонент Средства распределенной файловой системы. Open a command prompt window on a server that has the Distributed File System role service or Distributed File System Tools feature installed.

Введите следующую команду, где является корнем пространства имен: Type the following command, where is the root of the namespace:

Для управления перечислением на основе доступа для пространства имен с помощью Windows PowerShell используйте командлеты Set-DfsnRoot, Grant-DfsnAccess и Revoke-DfsnAccess. To manage access-based enumeration on a namespace by using Windows PowerShell, use the Set-DfsnRoot, Grant-DfsnAccess, and Revoke-DfsnAccess cmdlets. Модуль DFSN Windows PowerShell был введен в Windows Server 2012. The DFSN Windows PowerShell module was introduced in Windows Server 2012.

Управлять тем, какие пользователи и группы могут просматривать отдельные папки DFS, можно с помощью интерфейса Windows или с помощью командной строки. You can control which users and groups can view individual DFS folders either by using the Windows interface or by using a command line.

Управление видимостью папки с помощью интерфейса Windows To control folder visibility by using the Windows interface

В узле Пространства имен дерева консоли найдите папку с конечными объектами, управлять видимостью которых вы хотите, щелкните ее правой кнопкой мыши и выберите Свойства. In the console tree, under the Namespaces node, locate the folder with targets for which you want to control visibility, right-click it and then click Properties.

Перейдите на вкладку Дополнительно. Click the Advanced tab.

Нажмите кнопку Задать явные разрешения на просмотр для папки DFS и затем Настроить разрешения просмотра. Click Set explicit view permissions on the DFS folder and then Configure view permissions.

Добавьте или удалите группы или пользователей, нажимая кнопку Добавить или Удалить. Add or remove groups or users by clicking Add or Remove.

Чтобы разрешить пользователям видеть папку DFS, выберите группу или пользователя и установите флажок Разрешить. To allow users to see the DFS folder, select the group or user, and then select the Allow check box.

Чтобы скрыть папку от группы или пользователя, выберите группу или пользователя и установите флажок Запретить. To hide the folder from a group or user, select the group or user, and then select the Deny check box.

Управление видимостью папки с помощью командной строки To control folder visibility by using a command line

Откройте окно командной строки на сервере, на котором установлена служба роли Распределенная файловая система или средства распределенная файловая система . Open a Command Prompt window on a server that has the Distributed File System role service or Distributed File System Tools feature installed.

Введите следующую команду, где * дфспас* — путь к папке DFS (Link), является именем группы или учетной записи пользователя, а (. ) заменяется дополнительными записями управления доступом (ACE): Type the following command, where is the path of the DFS folder (link), is the name of the group or user account, and (. ) is replaced with additional Access Control Entries (ACEs):

Например, чтобы заменить существующие разрешения на разрешения, которые позволяют группам «Администраторы домена» и » \ преподаватели Contoso» читать (R) доступ к \ папке contoso. оффице\публик\траининг, введите следующую команду: For example, to replace existing permissions with permissions that allows the Domain Admins and CONTOSO\Trainers groups Read (R) access to the \contoso.office\public\training folder, type the following command:

Для выполнения дополнительных задач в командной строке используйте следующие команды: To perform additional tasks from the command prompt, use the following commands:

Оцените статью