Windows Server 2022 : empêcher l’accès à \servername\folder_share (SMB, NTFS, ABE, GPO, FSRM)

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.

Sommaire

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

DimensionPartage (SMB)NTFS
PérimètreConnexion réseau au partageObjets du système de fichiers (dossier/fichier)
GranularitéCoarse (Read/Change/Full)Fine (Read, Modify, Write, Delete, etc.)
Ordre d’évaluationAu moment de l’accès au partageÀ l’accès au dossier/fichier concret
RecommandationMiroiter les groupes autorisésSource 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 et SYSTEM avec contrôle total.

Étapes côté NTFS (onglet Sécurité)

  1. Sur D:\Shares\Folder, ouvrez Propriétés > Sécurité > Avancé.
  2. 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.
  3. Retirez toute entrée Domain Users, Users ou Authenticated Users.
  4. Ajoutez vos groupes AD :
    • G-App-Folder-ReadLecture et exécution, Affichage du contenu du dossier, Lecture.
    • G-App-Folder-ModifyModifier (inclut Écriture/Suppression).
  5. Laissez Administrators et SYSTEM en Contrôle total.
  6. É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)

  1. Supprimez Everyone et/ou Authenticated Users s’ils sont présents.
  2. Ajoutez les mêmes groupes AD qu’en NTFS :
    • G-App-Folder-ReadRead.
    • G-App-Folder-ModifyChange.
  3. 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&nbsp;: <strong>User Configuration &gt; Preferences &gt; Windows Settings &gt; Drive Maps</strong>.</li>
  <li>Créez un nouveau mapping (Action&nbsp;: <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> &gt; <em>Targeting…</em> &gt; 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 «&nbsp;pour tout le monde&nbsp;».</p>

<h2>Rendre le message d’accès refusé plus clair (FSRM)</h2>
<p>Par défaut, Windows affiche un sobre «&nbsp;Vous n’avez pas l’autorisation&nbsp;». 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&nbsp;:
    <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

  1. Actualisez les stratégies : gpupdate /force.
  2. Nettoyez d’anciens mappages et jetons : net use * /delete /y.
  3. Ouvrez \\servername\folder_share avec un compte non autorisé : vous devez obtenir Accès refusé immédiatement.
  4. Testez avec un membre de G-App-Folder-Read puis de G-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

GroupeTypeDroit NTFSAutorisation de partageUsage
AdministratorsLocal (serveur)Full ControlFullOpérations/Support
SYSTEMLocal (OS)Full Controln/aSystème
G-App-Folder-ModifyGlobal (AD)ModifyChangeÉquipe éditrice
G-App-Folder-ReadGlobal (AD)Read & ExecuteReadLecteurs

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é

ÉtapeActionÉtat
Dossier dédiéLe partage pointe vers D:\Shares\Folder, pas vers C:\
Groupes ADG-App-Folder-Read et G-App-Folder-Modify existent
NTFSRetrait de Domain Users/Everyone, droits précis appliqués
PartageSuppression d’Everyone, ajout des groupes autorisés
ABEAccessBased activé sur le partage
GPODrive Maps ciblés, anciens mappages nettoyés
FSRMAssistance d’accès refusé personnalisée (optionnel)
AuditAuditpol configuré, SACL en place, journaux vérifiés
TestsAccè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.

Sommaire