¿Cómo habilitar la enumeración basada en acceso (ABE) en Windows Server?

Enumeración basada en acceso (ABE) permite ocultar objetos (archivos y carpetas) de los usuarios que no tienen permisos NTFS (lectura o lista) en una carpeta compartida de red para poder acceder a ellos. Por lo tanto, puede proporcionar confidencialidad adicional de los datos almacenados en una carpeta compartida (debido a que oculta la estructura y los nombres de carpetas y archivos), mejorar su usabilidad ya que los usuarios no verán datos extraños (no tienen acceso a ellos) y, qué más importante, salvar al administrador del sistema de las preguntas constantes de los usuarios «¡¡¡Por qué no puedo acceder a esta carpeta !!! «. Intentemos considerar esta tecnología, las peculiaridades de configuración y el uso de ABE en varias versiones de Windows en detalle.

¿Cómo funciona el acceso a las carpetas compartidas en Windows?

Uno de los inconvenientes de la tecnología de carpetas compartidas de red en Windows es el hecho de que, de forma predeterminada, todos los usuarios podrían al menos ver su estructura y la lista de todos los archivos y directorios en dicha carpeta, incluidos aquellos a los que no tienen permisos NTFS para acceder ( al intentar abrir dicho archivo o carpeta, un usuario recibe el error «Acceso denegado»). ¿Por qué no ocultar esos archivos y carpetas a los usuarios que no tienen permisos para acceder a ellos? La enumeración basada en acceso puede ayudar a hacerlo. Al habilitar ABE en una carpeta compartida, puede asegurarse de que diferentes usuarios vean una lista diferente de carpetas y archivos en el mismo recurso compartido de red según los permisos de acceso individual (ACL) del usuario.

¿Cómo ocurre la interacción entre el cliente y el servidor al acceder a una carpeta compartida a través de SMB?

  • Un cliente solicita al servidor que acceda a un directorio en la carpeta compartida de la red;
  • El servicio LanmanServer en el servidor verifica los permisos del usuario para acceder a esta carpeta;
  • Si se permite el acceso (permisos NTFS: lista de contenido, lectura o escritura), el usuario ve el contenido del directorio;
  • Luego, el usuario solicita acceso a un archivo o subcarpeta de la misma manera (puede ver quién abrió un archivo específico en una carpeta de red como esta);
  • Si se deniega el acceso, se notifica al usuario en consecuencia.

De acuerdo con este esquema, queda claro que el servidor primero muestra todo el contenido de la carpeta al usuario, y los permisos NTFS se verifican solo cuando el usuario intenta abrir un archivo o carpeta específicos.

Enumeración basada en acceso (ABE) permite comprobar los permisos de acceso a los objetos del sistema de archivos antes de que el usuario reciba una lista del contenido de la carpeta. Entonces, la lista final incluye solo aquellos objetos a los que un usuario tiene permisos NTFS para acceder (al menos permiso de solo lectura), y todos los recursos inaccesibles simplemente no se muestran (ocultan).

Significa que un usuario de un departamento (por ejemplo, almacén) verá una lista de archivos y carpetas en una carpeta compartida (\ filesrv1 docs). Como puede ver, solo se muestran dos carpetas para el usuario: Pública y Almacén.

ocultar carpetas y archivos en la carpeta compartida utilizando la enumeración basada en el acceso

Y para un usuario de otro departamento, por ejemplo, el departamento de TI (que está incluido en otro grupo de seguridad de Windows), se muestra una lista diferente de subcarpetas. Además de los directorios Público y Almacén, este usuario ve 5 directorios más en la misma carpeta de red.

implementar abe en la carpeta compartida de Windows

La principal desventaja de usar ABE en los servidores de archivos de Windows es la carga extra en el servidor. Es especialmente prominente en servidores de archivos de alta carga. Cuantos más objetos haya en el directorio visualizado y cuantos más archivos abran los usuarios en él, mayor será la demora. Según Microsoft, si hay 15.000 objetos (archivos y directorios) en la carpeta mostrada, una carpeta se abre 1-3 segundos más lento. Es por eso que se recomienda prestar mucha atención a hacer una estructura de subcarpetas clara y jerárquica al diseñar una estructura de carpetas compartidas para hacer menos evidente el retraso al abrir carpetas.

Nota. Debe comprender que la enumeración basada en acceso no oculta la lista de carpetas compartidas de red en un servidor de archivos, solo oculta su contenido. Si necesita ocultar una carpeta compartida a un usuario, debe agregar un símbolo $ al final del nombre del recurso compartido.

Puede administrar ABE desde el símbolo del sistema (abecmd.exe utilidad), desde la GUI, PowerShell o una API especial.

Restricciones de enumeración basadas en acceso

La enumeración basada en acceso en Windows no funciona en los siguientes casos:

  • Si está utilizando Windows XP o Windows Server 2003 sin el Service Pack 1 como servidor de archivos;
  • Si está viendo directorios localmente (directamente desde el servidor);
  • Para miembros del grupo de administradores del servidor de archivos local (siempre ven la lista completa de archivos).

Uso de ABE en Windows Server 2008/2008 R2

En Windows Server 2008 / R2, para usar la funcionalidad de enumeración basada en acceso, no es necesario instalar componentes adicionales, ya que la función de administración ABE ya está integrada en la GUI de Windows. Para habilitar la enumeración basada en acceso para una carpeta determinada en Windows Server 2008/2008 R2, abra la consola de administración de MMC Gestión de almacenamiento y recursos compartidos (Inicio -> Programas -> Herramientas administrativas -> Gestión de almacenamiento y recursos compartidos). Vaya a las propiedades de la acción necesaria. Entonces ve al Avanzado configuración y comprobar Habilitar la enumeración basada en el acceso.

Habilite la enumeración basada en el acceso en el recurso compartido de Windows Server 2008

Configuración de la enumeración basada en acceso en Windows Server 2012 R2 / 2016

La configuración de ABE en Windows Server 2012 R2 / 2016 también es muy simple. Para habilitar ABE en Windows Server 2012, primero debe instalar Rol de servicios de archivo y almacenamientoy luego vaya a las propiedades del recurso compartido en el Administrador del servidor.

Propiedades de recursos compartidos de Windows 2012

En Ajustes sección marque la opción Habilitar la enumeración basada en el acceso.

Windows Server 2012: habilite la enumeración basada en el acceso

Implementación de la enumeración basada en acceso en Windows Server 2003

En Windows Server 2003 (no se admite ahora), ABE se hizo compatible a partir de Service Pack 1. Para habilitar la enumeración basada en acceso en Windows Server 2003 SP1 (o posterior), debe descargar e instalar un paquete siguiendo este enlace http://www.microsoft.com/en-us/download/details.aspx?id=17510. Durante la instalación, debe especificar si ABE estará habilitado para todas las carpetas compartidas en su servidor o lo configurará manualmente. Si elige la segunda opción, aparecerá una nueva pestaña, Enumeración basada en acceso, en las propiedades del recurso compartido de red después de la instalación.

Instale la enumeración basada en el acceso en Windows-Server 2003 SP1

Para activar ABE para una carpeta determinada, marque la opción Habilite la enumeración basada en el acceso en esta carpeta compartida en sus propiedades.

Habilite la enumeración basada en acceso en esta carpeta compartida Windows Server 2003

Es importante mencionar que Windows 2003 admite la enumeración basada en acceso basada en DFS, pero solo se puede configurar desde el símbolo del sistema mediante cacls.

Administrar ABE desde el símbolo del sistema

Puede administrar la configuración de enumeración basada en acceso desde el símbolo del sistema mediante la utilidad Abecmd.exe. Esta herramienta es parte del paquete de enumeración basada en acceso para Windows Server 2003 SP1 (consulte el vínculo anterior).

Abecmd.exe permite activar ABE para todos los directorios a la vez o solo para algunos de ellos. El siguiente comando habilita la enumeración basada en acceso para todos los recursos compartidos:

abecmd /enable /all

Éste es para una carpeta determinada (por ejemplo, una carpeta compartida de red con el nombre Docs):

abecmd /enable Docs

Administrar la enumeración basada en acceso mediante PowerShell

Puede utilizar el módulo SMBShare PowerShell (instalado de forma predeterminada en Windows 10 / 8.1 y Windows Server 2016/2012 R2) para administrar la configuración de la enumeración basada en acceso para carpetas específicas. Enumeremos las propiedades de una carpeta compartida específica:

Get-SmbShare Install|fl *

Get-SmbShare FolderEnumerationModeTenga en cuenta el valor de la FolderEnumerationMode atributo. En nuestro caso, su valor es Irrestricto. Esto significa que ABE está deshabilitado para esta carpeta.

Puede verificar el estado de ABE para todas las carpetas compartidas del servidor:

Get-SmbShare | Select-Object Name,FolderEnumerationMode

Para habilitar ABE para una carpeta específica:

Get-SmbShare Install | Set-SmbShare -FolderEnumerationMode AccessBased

Set-SmbShare AccessBased: habilite ABE con PowerShellPuede habilitar la enumeración basada en acceso para todas las carpetas de red publicadas (incluidos los recursos compartidos administrativos ADMIN $, C $, E $, IPC $,…) ejecutando el comando:

Get-SmbShare | Set-SmbShare -FolderEnumerationMode AccessBased

Para deshabilitar ABE use el comando:

Get-SmbShare Install | Set-SmbShare -FolderEnumerationMode Unrestricted

Enumeración basada en acceso en Windows 10 / 8.1 / 7

A muchos usuarios, especialmente en redes domésticas o SOHO, también les gustaría utilizar las funciones de enumeración basada en acceso. El problema es que los sistemas operativos cliente de Microsoft no tienen interfaz gráfica ni de comando para administrar la enumeración basada en acceso.

En Windows 10 (Server 2016) y Windows 8.1 (Server 2012R2), puede usar PowerShell para administrar la enumeración basada en acceso (consulte la sección anterior). En versiones anteriores de Windows, debe instalar la última versión de PowerShell (> = 5.0) o usar la utilidad abecmd.exe del paquete de Windows Server 2003, funciona bien en los sistemas operativos cliente. Dado que el paquete de enumeración basado en acceso de Windows Server 2003 no está instalado en Windows 10, 8.1 o 7, primero debe instalarlo en Windows Server 2003 y luego copiarlo desde el directorio C: windows system32 a la misma carpeta en el cliente. Después de eso, puede habilitar ABE de acuerdo con los comandos descritos anteriormente.

Nota. En un entorno corporativo, ABE se combina perfectamente con las carpetas DFS al ocultar las carpetas al usuario y proporcionar una estructura más conveniente del árbol de carpetas públicas. Puede habilitar ABE en DFS usando DFS Management o dfsutil.exe:
dfsutil property abde enable \namespace_root

Además, puede habilitar ABE en computadoras en el dominio AD usando GPO. Esto se puede hacer usando GPP en la sección: Configuracion de Computadora -> Preferencias -> Configuración de Windows -> Recursos compartidos de red).

habilitar abe usando gpo
En las propiedades de la carpeta de red hay una Enumeración basada en acceso opción, si cambia el valor a Permitir, El modo ABE se habilitará para todas las carpetas compartidas creadas con este GPO.

Artículos Interesantes