Vous devez empêcher les « Domain Users » d’ouvrir \\servername\folder_share
? Voici une méthode éprouvée pour Windows Server 2022 : architecture saine, permissions NTFS+partage, ABE, GPO, assistance d’accès refusé, tests, audit et dépannage, le tout pas à pas.
Contexte et objectif
Dans bien des environnements, un partage SMB pointe par erreur vers C:\
ou vers un dossier système trop permissif. Résultat : tout membre de « Domain Users » peut au minimum explorer le chemin, voire écrire. L’objectif est double : bloquer l’exploration/écriture pour les non‑autorisés et afficher un message Accès refusé lorsqu’ils tentent de s’y connecter, tout en laissant fonctionner les comptes et groupes autorisés.
Isoler les données et ne jamais partager la racine
Premier principe : ne partagez pas la racine d’un disque (C:\
, D:\
, etc.). Créez un conteneur dédié pour chaque besoin applicatif ou métier, par exemple :
D:\Shares\Folder
Ensuite, assurez‑vous que le partage SMB cible ce répertoire dédié, pas la racine. Si le partage actuel pointe sur C:\
, migrez‑le : créez le nouveau dossier, copiez/déplacez les données avec conservation des ACL, recréez le partage vers le bon chemin, puis supprimez l’ancien.
Copier avec conservation des ACL
robocopy "C:\AncienDossier" "D:\Shares\Folder" /COPYALL /SEC /E /R:1 /W:1
Le commutateur /COPYALL
préserve les ACL NTFS, les attributs, l’horodatage. /SEC
garantit la copie des informations de sécurité.
Appliquer le moindre privilège avec NTFS et permissions de partage
La sécurité d’un partage Windows repose sur deux couches complémentaires :
- les permissions NTFS sur le dossier (qui s’appliquent indépendamment du protocole),
- les autorisations de partage SMB sur le partage lui‑même.
Ces couches s’imbriquent : l’accès effectif est l’intersection des deux. Un refus côté NTFS bloque, même si le partage autorise, et vice‑versa. Moralité : définissez des autorisations cohérentes sur les deux couches, et n’accordez que le nécessaire.
Différence entre autorisations de partage et NTFS
Dimension | Partage (SMB) | NTFS |
---|---|---|
Périmètre | Connexion réseau au partage | Objets du système de fichiers (dossier/fichier) |
Granularité | Coarse (Read/Change/Full) | Fine (Read, Modify, Write, Delete, etc.) |
Ordre d’évaluation | Au moment de l’accès au partage | À l’accès au dossier/fichier concret |
Recommandation | Miroiter les groupes autorisés | Source de vérité des droits |
Modèle de groupes recommandé
Créez des groupes AD dédiés pour décorréler les droits des utilisateurs individuels :
G-App-Folder-Read
(membres : utilisateurs/équipes en lecture seule)G-App-Folder-Modify
(membres : équipes qui doivent créer/mettre à jour)- Conservez
Administrators
etSYSTEM
avec contrôle total.
Étapes côté NTFS (onglet Sécurité)
- Sur
D:\Shares\Folder
, ouvrez Propriétés > Sécurité > Avancé. - Désactivez l’héritage si le dossier hérite de droits trop larges, puis convertissez les entrées héritées en entrées explicites.
- Retirez toute entrée
Domain Users
,Users
ouAuthenticated Users
. - Ajoutez vos groupes AD :
G-App-Folder-Read
→ Lecture et exécution, Affichage du contenu du dossier, Lecture.G-App-Folder-Modify
→ Modifier (inclut Écriture/Suppression).
- Laissez
Administrators
etSYSTEM
en Contrôle total. - Évitez les Deny explicites, sauf cas ultra ciblés (un Deny l’emporte sur tout et peut piéger des admins hors groupe).
Étapes côté partage (Partage avancé > Autorisations)
- Supprimez
Everyone
et/ouAuthenticated Users
s’ils sont présents. - Ajoutez les mêmes groupes AD qu’en NTFS :
G-App-Folder-Read
→ Read.G-App-Folder-Modify
→ Change.
- Conservez un groupe
Administrators
en Full Control sur le partage.
Exemples PowerShell pour aller plus vite
# Créer le dossier cible
New-Item -Path "D:\Shares\Folder" -ItemType Directory -Force
# Couper l'héritage et repartir propre
icacls "D:\Shares\Folder" /inheritance\:r
# Définir des ACL NTFS minimales
icacls "D:\Shares\Folder" /grant "Administrators:(OI)(CI)(F)" "SYSTEM:(OI)(CI)(F)"
icacls "D:\Shares\Folder" /grant "G-App-Folder-Read:(OI)(CI)(RX)" "G-App-Folder-Modify:(OI)(CI)(M)"
# Créer le partage SMB
New-SmbShare -Name "folder\_share" -Path "D:\Shares\Folder" -CachingMode None -Description "Données applicatives"
# Nettoyer les autorisations de partage trop larges
Revoke-SmbShareAccess -Name "folder\_share" -AccountName "Everyone" -Force -Confirm:\$false
# Accorder uniquement les groupes autorisés
Grant-SmbShareAccess -Name "folder\_share" -AccountName "G-App-Folder-Read" -AccessRight Read -Force
Grant-SmbShareAccess -Name "folder\_share" -AccountName "G-App-Folder-Modify" -AccessRight Change -Force
Résultat attendu
Un utilisateur non membre d’un groupe autorisé qui tente d’ouvrir \\servername\folder_share
obtient immédiatement Accès refusé. Il ne peut ni parcourir ni déposer de fichiers. Les groupes autorisés, eux, ont les droits exacts dont ils ont besoin.
Masquer ce qui n’est pas autorisé
Activer l’Access‑Based Enumeration (ABE)
L’ABE évite d’afficher aux utilisateurs les dossiers auxquels ils n’ont pas accès, limitant la curiosité et les tickets inutiles. Activez‑le sur le partage :
Set-SmbShare -Name "folder_share" -FolderEnumerationMode AccessBased
Via l’interface : Gestionnaire de serveur > Services de fichiers et de stockage > Partages > Propriétés du partage > Paramètres > Activer l’énumération basée sur l’accès.
Utiliser un partage masqué (optionnel)
Renommez le partage en folder_share$
pour qu’il n’apparaisse pas dans la liste de \\servername\
. Attention : c’est uniquement de l’obfuscation, pas une mesure de sécurité. On ne peut pas « renommer » un partage existant ; il faut le recréer :
# Supprimer l'ancien partage
Remove-SmbShare -Name "folder_share" -Force
# Recréer en suffixant par \$
New-SmbShare -Name "folder\_share\$" -Path "D:\Shares\Folder" -CachingMode None
Grant-SmbShareAccess -Name "folder\_share\$" -AccountName "G-App-Folder-Read" -AccessRight Read -Force
Grant-SmbShareAccess -Name "folder\_share\$" -AccountName "G-App-Folder-Modify" -AccessRight Change -Force
Set-SmbShare -Name "folder\_share\$" -FolderEnumerationMode AccessBased </code></pre>
<h2>Piloter l’expérience avec les GPO (sans s’appuyer sur elles pour la sécurité)</h2>
<p>Les Group Policy Preferences (GPP) permettent d’afficher <em>uniquement</em> les lecteurs nécessaires aux utilisateurs autorisés, tout en laissant la sécurité à NTFS/SMB.</p>
<ol>
<li>Ouvrez la GPO utilisateur appropriée : <strong>User Configuration > Preferences > Windows Settings > Drive Maps</strong>.</li>
<li>Créez un nouveau mapping (Action : <em>Replace</em>) vers <code>\\servername\folder_share</code> (ou <code>folder_share$</code>) avec une lettre libre.</li>
<li>Dans <strong>Common</strong>, cochez <em>Item-level targeting</em> > <em>Targeting…</em> > ajoutez une condition <em>Security Group</em> <strong>G-App-Folder-Read</strong> ou <strong>G-App-Folder-Modify</strong>.</li>
<li>Cochez <em>Remove this item when it is no longer applied</em> pour retirer le lecteur si l’utilisateur quitte le groupe.</li>
</ol>
<p>Retirez les mappages hérités trop larges et nettoyez les scripts de logon qui mappent des lecteurs « pour tout le monde ».</p>
<h2>Rendre le message d’accès refusé plus clair (FSRM)</h2>
<p>Par défaut, Windows affiche un sobre « Vous n’avez pas l’autorisation ». Si vous souhaitez un message contextualisé avec par exemple un lien vers un formulaire de demande d’accès, utilisez <strong>File Server Resource Manager (FSRM)</strong> et l’<em>Access‑Denied Assistance</em>.</p>
<ol>
<li>Installez FSRM :
<pre><code>Install-WindowsFeature FS-Resource-Manager -IncludeManagementTools
Dans FSRM, configurez un message d’aide (texte, variables dynamiques comme l’utilisateur/la ressource).
Diffusez l’assistance côté clients via stratégie : Computer Configuration > Administrative Templates > System > Access-Denied Assistance (activer et personnaliser).
Les utilisateurs non autorisés verront alors un message d’aide guidant la demande d’accès au bon canal.
Vérifier, tester et valider
Vérifications rapides sur le serveur
# Relire les droits de partage
Get-SmbShareAccess -Name "folder_share"
# Voir les propriétés clés du partage
Get-SmbShare -Name "folder\_share" | Format-List Name,Path,FolderEnumerationMode,CachingMode
# Évaluer l'accès effectif (via l'onglet Sécurité > Avancé > Accès effectif)
# (Interface graphique - tester avec un utilisateur non autorisé)
Tests côté client
- Actualisez les stratégies :
gpupdate /force
. - Nettoyez d’anciens mappages et jetons :
net use * /delete /y
. - Ouvrez
\\servername\folder_share
avec un compte non autorisé : vous devez obtenir Accès refusé immédiatement. - Testez avec un membre de
G-App-Folder-Read
puis deG-App-Folder-Modify
: vérifiez les opérations autorisées (lecture/modification) et bloquées (suppression pour le groupe Read, par ex.).
Points d’attention et bonnes pratiques
- Ne jamais « Deny » à grande échelle. Préférez ne pas accorder plutôt que refuser. Un Deny sur
Domain Users
peut bloquer tout le monde, y compris des admins hors des bons groupes. - Créateur‑propriétaire. L’ACE Creator Owner est utile pour donner Modifier au propriétaire d’un fichier sans l’ouvrir à tout le monde, mais évitez de la supprimer si vos workflows en dépendent.
- Traverse vs. liste. Le droit « Bypass traverse checking » permet de traverser des dossiers sans lister leur contenu. Ne le confondez pas avec « List folder ».
- Accès admin. Si des non‑admins accèdent à
C$
, c’est qu’ils sont administrateurs locaux (à tort). Corrigez l’appartenance aux groupes locaux. - Pas de sécurité par l’obscurité. Un suffixe
$
cache le partage dans l’énumération, mais ne remplace jamais NTFS/partage. - DFS et ABE. Avec DFS, activez l’ABE sur chaque cible de partage concernée pour une expérience cohérente.
Audit et traçabilité pour prouver le blocage
Activez l’audit pour obtenir des événements échec d’accès lorsqu’un non‑autorisé tente d’ouvrir le partage.
Stratégie d’audit avancée
# Activer l'audit des partages et du système de fichiers
auditpol /set /subcategory:"File Share" /success:enable /failure:enable
auditpol /set /subcategory:"File System" /success:enable /failure:enable
Puis, sur D:\Shares\Folder
, définissez une SACL (onglet Sécurité > Avancé > Auditer) pour auditer les accès échoués des groupes pertinents. Consultez le journal Security dans l’Observateur d’événements : événements caractéristiques 5140/5145 (partage), 4663 (fichier).
Modèle d’autorisations clair
Groupe | Type | Droit NTFS | Autorisation de partage | Usage |
---|---|---|---|---|
Administrators | Local (serveur) | Full Control | Full | Opérations/Support |
SYSTEM | Local (OS) | Full Control | n/a | Système |
G-App-Folder-Modify | Global (AD) | Modify | Change | Équipe éditrice |
G-App-Folder-Read | Global (AD) | Read & Execute | Read | Lecteurs |
Automatiser de bout en bout
Ce script prépare le dossier, applique des ACL propres, crée le partage sécurisé, active l’ABE et affiche l’état :
$shareName = "folder_share"
$sharePath = "D:\Shares\Folder"
$grpRead = "G-App-Folder-Read"
$grpModify = "G-App-Folder-Modify"
# 1) Dossier et ACL NTFS
New-Item -Path \$sharePath -ItemType Directory -Force | Out-Null
icacls \$sharePath /inheritance\:r
icacls \$sharePath /grant "Administrators:(OI)(CI)(F)" "SYSTEM:(OI)(CI)(F)"
icacls \$sharePath /grant "\$grpRead:(OI)(CI)(RX)" "\$grpModify:(OI)(CI)(M)"
# 2) Partage SMB
if (Get-SmbShare -Name \$shareName -ErrorAction SilentlyContinue) {
Remove-SmbShare -Name \$shareName -Force
}
New-SmbShare -Name \$shareName -Path \$sharePath -CachingMode None
Revoke-SmbShareAccess -Name \$shareName -AccountName "Everyone" -Force -Confirm:\$false
Grant-SmbShareAccess -Name \$shareName -AccountName \$grpRead -AccessRight Read -Force
Grant-SmbShareAccess -Name \$shareName -AccountName \$grpModify -AccessRight Change -Force
# 3) ABE
Set-SmbShare -Name \$shareName -FolderEnumerationMode AccessBased
# 4) Récap
Write-Host "\`n--- Résumé des autorisations de partage ---"
Get-SmbShareAccess -Name \$shareName | Format-Table
Dépannage : pourquoi l’accès n’est‑il pas bloqué ?
- Un droit hérité s’applique encore. Ouvrez Sécurité > Avancé et vérifiez l’héritage. Convertissez puis nettoyez.
- Un autre groupe donne un accès. Vérifiez l’Accès effectif pour l’utilisateur, et inspectez ses appartenances (groupes imbriqués).
- Le partage autorise « Everyone ». Supprimez‑le côté partage (Partage avancé) et gardez seulement vos groupes.
- Cache ou bouclage de session. Fermez toutes les sessions SMB et videz les mappages :
net use * /delete /y
. Déconnectez/reconnectez pour renégocier les jetons. - Scripts de logon hérités. Un script mappe le lecteur pour tous. Supprimez‑le ou ciblez‑le par groupe.
- Offline Files. Les fichiers visibles en cache peuvent prêter à confusion. Désactivez le mode hors connexion sur ce partage si nécessaire (Propriétés > Paramètres du partage > CachingMode None).
Sauvegarde et retour arrière des ACL
Avant toute modification majeure, exportez l’état des ACL pour pouvoir revenir en arrière.
# Sauvegarder les ACL NTFS
icacls "D:\Shares\Folder" /save "C:\Temp\ACL_Folder_backup.txt" /t
# Exporter les ACL en PowerShell
(Get-Acl "D:\Shares\Folder").Access | Export-Csv "C:\Temp\ACL\_Folder\_backup.csv" -NoTypeInformation
# Restaurer si besoin
icacls "D:\Shares" /restore "C:\Temp\ACL\_Folder\_backup.txt"
Questions fréquentes
Faut‑il un « Deny » pour bloquer « Domain Users » ?
Non. Il suffit de ne pas accorder. Retirez « Domain Users » côté NTFS et côté partage, et donnez l’accès uniquement aux groupes autorisés.
Un utilisateur voit le partage mais ne peut pas l’ouvrir.
C’est cohérent si le partage autorise mais que NTFS bloque l’accès au dossier racine. Activez l’ABE pour éviter l’énumération inutile.
Puis‑je tout mettre en « Full Control » au partage et gérer seulement NTFS ?
Pratique courante côté serveurs de fichiers : au partage, Full pour les admins et Change/Read pour les groupes finaux, la finesse restant en NTFS. Évitez « Everyone » à tout prix.
Dois‑je chiffrer SMB ?
Optionnel. Pour les données sensibles hors LAN de confiance, activez le chiffrement SMB au niveau du partage (EncryptData) ou imposez SMB Signing selon votre politique.
Checklist de mise en conformité
Étape | Action | État |
---|---|---|
Dossier dédié | Le partage pointe vers D:\Shares\Folder , pas vers C:\ | □ |
Groupes AD | G-App-Folder-Read et G-App-Folder-Modify existent | □ |
NTFS | Retrait de Domain Users /Everyone , droits précis appliqués | □ |
Partage | Suppression d’Everyone , ajout des groupes autorisés | □ |
ABE | AccessBased activé sur le partage | □ |
GPO | Drive Maps ciblés, anciens mappages nettoyés | □ |
FSRM | Assistance d’accès refusé personnalisée (optionnel) | □ |
Audit | Auditpol configuré, SACL en place, journaux vérifiés | □ |
Tests | Accès refusé confirmé pour un non‑autorisé | □ |
En synthèse opérationnelle
- La barrière réelle est constituée par NTFS + autorisations de partage (groupes AD dédiés, aucun
Everyone
). - ABE et, si souhaité, suffixe
$
pour réduire l’énumération. - GPO pour ne mapper que ce qui est autorisé (confort), jamais pour « faire la sécurité ».
- FSRM Access‑Denied Assistance pour un message plus parlant côté utilisateur.
- Audit pour prouver le blocage et détecter les tentatives.
En appliquant ces étapes, vous empêcherez efficacement « Domain Users » d’accéder à \\servername\folder_share
sur Windows Server 2022, tout en donnant aux équipes autorisées un accès net et maintenable.