Как настроить видимость папок при включенном Access Based Enumeration?
Здравствуйте, коллеги!
У меня возникла проблема с настройкой Access Based Enumeration на сервере. На общей папке включена данная функция, и у пользователей есть права на доступ к определенным подпапкам.
Проблема: когда у пользователя удаляются права на доступ к подпапкам, он продолжает видеть эти папки в списке, но не может к ним получить доступ. Как настроить систему так, чтобы после отмены прав доступа пользователь перестал видеть папки, к которым у него нет доступа?
Access Based Enumeration (ABE) в Windows Server скрывает файлы и папки, к которым у пользователя нет прав доступа, но для правильной работы необходимо правильно настроить наследование разрешений. Проблема видимости папок после отмены прав доступа обычно возникает из-за унаследованных разрешений от родительских каталогов, которые продолжают предоставлять базовые права на чтение.
Содержание
- Что такое Access Based Enumeration и как она работает
- Основные причины видимости папок при отмене прав доступа
- Правильная настройка наследования разрешений
- Пошаговая настройка ABE через Server Manager
- Настройка ABE через PowerShell
- Решение проблем с видимостью папок в DFS
- Проверка и отладка работы ABE
Что такое Access Based Enumeration и как она работает
Access Based Enumeration (ABE) — это функция Windows Server, которая автоматически скрывает файлы и папки из списка содержимого общей папки, если у текущего пользователя нет прав на доступ к этим объектам [source]. Эта функция работает на уровне протокола SMB и предоставляет пользователю только те ресурсы, к которым у него действительно есть доступ.
ABE работает следующим образом:
- Пользователь запрашивает список содержимого общей папки
- Сервер проверяет разрешения NTFS для каждого объекта
- Возвращаются только те объекты, к которым у пользователя есть права на чтение или перечисление
- Пользователи не видят объекты, к которым у них нет доступа
Важно: ABE защищает содержимое, а не саму шару. Даже если пользователь видит папку в списке, он не сможет получить к ней доступ без соответствующих разрешений [source].
Основные причины видимости папок при отмене прав доступа
Наиболее распространенные причины, по которым папки остаются видимыми после отмены прав доступа:
1. Унаследованные разрешения от корневого каталога
Разрешения наследуются от корневого каталога системы и предоставляют группе DOMAIN\Users права на чтение. В результате, даже после включения ABE, все папки в пространстве имен остаются видимыми для всех пользователей домена [source].
2. Права на перечисление содержимого
Если для пользователя или группы сохраняются права на перечисление содержимого (List folder contents), папки будут оставаться видимыми, даже если права на доступ к содержанию удалены.
3. Наследование разрешений не отключено
При создании папки DATA_AUTH\USER1 она наследует права чтения от DATA_AUTH. Отключение наследования не удаляет эти разрешения — они остаются “дедовскими” (grandfathered), поэтому USER_2_Group может их читать [source].
4. Разрешения на родительском уровне
Пользователи могут видеть папки, если у них есть права на доступ к родительским каталогам, даже если права на конкретные подпапки отменены.
Правильная настройка наследования разрешений
Чтобы ABE работала правильно, необходимо правильно настроить наследование разрешений:
Отключение наследования на уровне папок
Для каждой папки, которую нужно скрыть от определенных пользователей:
- Откройте свойства папки
- Перейдите на вкладку “Безопасность”
- Нажмите “Дополнительно”
- Снимите галочку “Унаследовать от родительского объекта разрешения…”
- Выберите “Удалить все унаследованные разрешения”
Установка явных разрешений
После отключения наследования установите явные разрешения только для групп, которым доступ должен быть предоставлен:
- Удалите группу DOMAIN\Users из списка разрешений
- Добавьте только конкретные группы или пользователей, которым нужен доступ
- Предоставьте минимально необходимые права (Read, Write и т.д.)
Пример правильной структуры разрешений
Папка Project_A:
- Группа Project_A_Team: Full Control
- Группа Domain Users: Нет разрешений
Папка Project_B:
- Группа Project_B_Team: Full Control
- Группа Domain Users: Нет разрешений
Пошаговая настройка ABE через Server Manager
Включение ABE на общей папке
- Откройте Server Manager
- Выберите File and Storage Services → Shares
- Выберите нужную общую папку
- Откройте свойства папки
- Перейдите на вкладку Settings
- Установите галочку Enable access-based enumeration
- Нажмите Apply и OK [source]
Проверка настройки ABE
После включения ABE проверьте работу функции:
- Подключитесь к общей папке от имени пользователя без прав доступа
- Убедитесь, что видны только те папки, к которым есть доступ
- Попробуйте получить доступ к скрытым папкам — должно быть запрещено
Настройка ABE через PowerShell
Включение ABE для существующей общей папки
Set-SmbShare -Name "Data" -FolderEnumerationMode AccessBased
Проверка текущего режима перечисления папок
Get-SmbShare | Format-Table Name, FolderEnumerationMode
Отключение ABE
Set-SmbShare -Name "Data" -FolderEnumerationMode Default
Массовая настройка ABE для нескольких шаров
Get-SmbShare | Where-Object { $_.Path -like "*Projects*" } |
Set-SmbShare -FolderEnumerationMode AccessBased
Решение проблем с видимостью папок в DFS
Настройка ABE для пространств имен DFS
- Откройте DFS Management
- Выберите пространство имен
- Кликните правой кнопкой мыши → Properties
- На вкладке Advanced установите галочку Enable access-based enumeration
- Нажмите OK [source]
Автоматизация настройки ABE в DFS
Для автоматизации настройки ABE на DFS-ссылках можно использовать следующий скрипт PowerShell:
# Dfs-SetLinkACEsToTargetACEs.ps1
# Автоматизация Access-Based Enumeration для DFS-ссылок
Param (
[Parameter(Mandatory=$true)]
[string]$DfsRootPath
)
Get-ChildItem $DfsRootPath | ForEach-Object {
$DfsTargetPath = $_.FullName
$AccessGrant = @()
$AccessDeny = @()
(Get-Acl $DfsTargetPath).Access | ForEach-Object {
# Обработка разрешений для ABE
}
}
Проблемы с наследованием разрешений в DFS
В средах DFS часто возникают проблемы с видимостью папок из-за того, что:
- Разрешения наследуются от корневого каталога системы
- Пользователи получают права на чтение от DOMAIN\Users
- Даже после включения ABE все папки остаются видимыми [source]
Решение — отключение наследования и установка явных разрешений на каждом уровне DFS-структуры.
Проверка и отладка работы ABE
Проверка эффективных прав доступа
Используйте инструмент эффективного доступа для проверки прав пользователей:
- Откройте свойства папки
- Перейдите на вкладку “Безопасность”
- Нажмите “Дополнительно”
- Выберите пользователя и нажмите “Эффективный доступ”
- Убедитесь, что у пользователя нет прав на доступ к скрытым папкам
Тестирование с разными пользователями
Тестируйте работу ABE с учетными записями разных пользователей:
- Пользователь с правами доступа: должен видеть все разрешенные папки
- Пользователь без прав доступа: должен видеть только разрешенные папки
- Пользователь с частичными правами: должен видеть только папки с доступными разрешениями
Логирование событий ABE
Для отладки включите расширенное логирование событий:
- Откройте Event Viewer
- Перейдите в Applications and Services Logs → Microsoft → Windows → SMBServer
- Настройте уровень логирования Verbose
- Мониторируйте события, связанные с доступом к файлам
Распространенные проблемы и их решения
| Проблема | Причина | Решение |
|---|---|---|
| Папки видны даже после отмены прав | Унаследованные разрешения | Отключите наследование и установите явные разрешения |
| ABE не работает на DFS-пространствах | Не включен ABE для DFS | Включите ABE через DFS Management |
| Пользователи видят папки, но не могут получить доступ | Права на перечисление есть, но права на доступ отсутствуют | Проверьте и корректно настройте оба типа разрешений |
Заключение
Access Based Enumeration — мощный инструмент для повышения безопасности файловых серверов, но его правильная настройка требует внимания к деталям наследования разрешений. Ключевые моменты успешной настройки:
- Всегда отключайте наследование разрешений на папках, которые нужно скрыть от определенных пользователей
- Удаляйте группу DOMAIN\Users из списка разрешений на уровне папок
- Устанавливайте явные разрешения только для групп, которым доступ действительно необходим
- Тестируйте работу ABE с учетными записями разных пользователей после каждой настройки
- Используйте эффективные права доступа для проверки корректности настроек
Для решения проблемы видимости папок после отмены прав доступа необходимо тщательно проверить и переconfigure наследование разрешений, отключив его на уровне проблемных папок и установив явные разрешения только для авторизованных групп.
Источники
- Access Based Enumeration: How to Enable ABE for Windows Server - Tenfold Security
- Enable Access-based Enumeration on a Namespace - Microsoft Learn
- Using Inherited Permissions with Access-based Enumeration - Microsoft Learn
- Enable Access-based Enumeration (ABE) on Shared Folders (SMB) - Windows OS Hub
- Configure Access Based Enumeration on Windows Server 2016 – TheITBros
- Display only Folders that a User has Access: Configuring Access Based Enumeration on Windows Server 2012/2016 - SID-500
- What am I doing wrong? access-based enumeration not working with share-subfolders - Server Fault
- How to hide folders from local Administrators using Access-based Enumeration? - Super User
- How to work with Access-Based enumeration in Dfs? - Server Fault
- Access based Enumeration NOT working - Microsoft Q&A