Serveur de fichiers – Comment activer l’énumération basée sur l’accès sur Windows Server ?
Sommaire
I. Présentation
Dans ce tutoriel, nous allons apprendre à configurer l'énumération basée sur l'accès sur les partages d'un serveur de fichiers sous Windows Server 2022. Avant de passer à la pratique, cette fonctionnalité sera expliquée et nous verrons le rôle qu'elle peut jouer sur un serveur.
Cet article s'inscrit dans une suite d'articles sur les sujets des serveurs de fichiers sur Windows Server. Suivez ce lien :
II. Qu'est-ce que l'énumération basée sur l'accès ?
En entreprise, un serveur de fichiers représente un espace de stockage centralisé et utilisé par différents services (secrétariat, ressources humaines, comptabilité, etc.). Ainsi, le serveur de fichiers pourra contenir plusieurs partages (un par service, par exemple) ou un partage racine avec des sous-dossiers par service. Chaque salarié, en fonction de ses attributions professionnelles, pourra accéder à un ou plusieurs dossiers à partir de son compte utilisateur. Les permissions sont gérées à l'aide des autorisations NTFS et des autorisations de partage. Néanmoins, par défaut, l'utilisateur pourra visualiser dans son Explorateur de fichiers tous les dossiers : qu'il dispose de droits d'accès ou non.
L'énumération basée sur l'accès, que l'on appelle également "ABE" pour "Access-Based Enumeration", apporte une réponse intéressante à cette problématique. En effet, cette fonctionnalité va en quelque sorte "filtrer" l'affichage dans l'Explorateur de fichiers de Windows, pour que chaque utilisateur puisse voir uniquement les éléments sur lesquels il a des droits (de lecture ou de lecture/écriture). Autrement dit, l'affichage tient compte des permissions réelles de l'utilisateur.
Remarque : Windows Server 2008 et les versions plus récentes prennent en charge nativement l'ABE. Il est également possible d'utiliser cette fonction sur Windows Server 2003 avec le SP1. Il est pris en charge par tous les systèmes d'exploitation desktop à partir de Windows XP SP1.
Il y a plusieurs bonnes raisons qui doivent vous pousser à utiliser cette fonctionnalité :
- L'utilisateur voit uniquement ce qui le concerne, ce qui évitera qu'il soit frustré parce qu'il ne peut pas accéder à tel ou tel dossier (quand il est confronté à un message "Accès refusé")
- Les noms de répertoire peuvent contenir des informations confidentielles : Bilan_comptable_2023, Plan_Licenciement_2023, etc...
- L'utilisateur pourra naviguer plus facilement au sein des partages puisque l'affichage sera épuré
En résumé, vous devez activer l'ABE pour éviter de révéler des informations inutilement, que ce soit auprès des utilisateurs ou peut-être même d'un cybercriminel qui explore actuellement votre infrastructure...
Le seul inconvénient de l'ABE, c'est qu'elle va consommer des ressources sur le serveur de fichiers. Toutefois, ce sera invisible sur un partage avec moins de 15 000 fichiers, sinon il peut y avoir un délai compris entre 1 et 3 secondes pour "générer" l'affichage. Une bonne organisation de la structure de dossier du serveur de fichiers permet de contourner le problème.
Remarque : l'énumération basée sur l'accès peut être configurée sur les partages standards (partages SMB) mais également sur les dossiers DFS.
III. Configurer l'énumération basée sur l'accès
Il y a plusieurs façons de configurer l'énumération basée sur l'accès, dont : l'interface graphique de Windows Server, PowerShell et l'utilitaire en ligne de commande abecmd.exe.
A. Contexte
Pour cette démonstration, nous allons utiliser un dossier partagé en tant que racine avec plusieurs sous-dossiers :
- Partage
- Commercial
- Comptabilité
- Direction
- Informatique
- RH
Les permissions NTFS sont gérées selon la méthode AGDLP. L'héritage des permissions NTFS est désactivé sur chaque sous-dossier de manière à attribuer les permissions uniquement pour certains groupes de sécurité sur chaque dossier. L'utilisateur "Chris Tal", directeur de cette entreprise fictive, peut accéder en lecture/écriture au répertoire "Direction", et en lecture seule aux répertoires suivants : Commercial, Comptabilité, RH. Il n'a pas accès au répertoire "Informatique".
Pourtant, pour le moment, il voit bien le répertoire "Informatique" lorsqu'il navigue dans le partage. L'accès à ce répertoire lui est bien refusé.
B. Activer l'ABE avec l'interface graphique
Pour effectuer la configuration, ouvrez le "Gestionnaire de serveur", cliquez sur à gauche "Services de fichiers et de stockage" (1). Ensuite, cliquez sur "Partages" (2), sélectionnez le partage dans la liste (3) et à l'aide d'un clic droit choisissez "Propriétés" (4).
Au sein des propriétés, cliquez sur "Paramètres" et activez l'option nommée "Activer l'énumération basée sur l'accès". Validez.
La configuration est terminée...
Il ne reste plus qu'à fermer puis rouvrir la session de "Chris Tal" sur son poste de travail. Désormais, quand il navigue dans "Partage", il ne voit plus le répertoire "Informatique" : ce dossier est invisible, car l'utilisateur n'a pas de permissions !
L'ABE est bien configurée sur ce partage !
C. Configurer l'ABE avec PowerShell
Via l'interface graphique, il faut agir partage par partage pour gérer la fonctionnalité ABE. S'il y a deux ou trois partages, ça va. S'il y en a beaucoup plus, cela peut vite devenir pénible. C'est là que PowerShell entre en jeu. Vous devez utiliser au minimum PowerShell 5.0.
Tout d'abord, vous pouvez obtenir l'état de la fonctionnalité "Énumération basée sur l'accès" pour tous les partages de votre serveur grâce à cette commande :
Get-SmbShare | Select-Object Name, Path, FolderEnumerationMode
Cette commande retourne la liste des partages avec le nom, le chemin et l'état de la fonction ABE.
Vous pouvez activer l'ABE sur tous les partages à l'aide d'une simple commande PowerShell. Il faudra simplement exclure tous les partages spéciaux, tels que "C$" (et ceux des autres volumes), ainsi que "ADMIN$" et "IPC$". Nous pouvons exclure ces partages en utilisant le paramètre "-Special" du cmdlet "Get-SmbShare".
Voici la commande magique :
Get-SmbShare -Special $false | Set-SmbShare -FolderEnumerationMode AccessBased -Force
Si vous souhaitez savoir quels sont les partages qui seront configurés, exécutez au préalable cette commande :
Get-SmbShare -Special $false | Select-Object Name, Path, FolderEnumerationMode
Pour faire un retour arrière et désactiver l'ABE :
Get-SmbShare -Special $false | Set-SmbShare -FolderEnumerationMode Unrestricted -Force
IV. Conclusion
Grâce à ce tutoriel, d'une part, vous savez à quoi correspond la fonctionnalité "Énumération basée sur l'accès" sur les partages, et d'autre part, vous êtes capable de faire la configuration à l'aide de l'interface graphique et de PowerShell.
Si vous avez une question, n'hésitez pas à poster un commentaire ou à venir en discuter sur notre serveur Discord.
Bonjour Florian, sais-tu si c’est réalisable sur un partage où le tiering Azure est activé ?
Je me réponds à moi même 😉 :
Does Azure Files support using Access-Based Enumeration (ABE) to control the visibility of the files and folders in SMB Azure file shares?
Using ABE with Azure Files isn’t currently supported, but you can use DFS-N with SMB Azure file shares.
Bonjour,
Nous l’avons testé et cela ne fonctionne pas avec les groupes AD …
Bonjour Sylvain,
Ce n’est pas normal car cela fonctionne avec les utilisateurs et les groupes de sécurité. D’ailleurs ma démo (visible dans la vidéo) est basée sur des permissions définies sur des groupes de sécurité AD.