13/05/2024

StockageSystème

Windows Server : Créer un partage SMB 3.0 avec du chiffrement

I. Présentation

Le protocole SMB depuis sa version 3.0 révolutionne le protocole de partage de fichiers de Windows, notamment car il augmente la sécurité comme nous allons le voir dans ce tutoriel. En effet, une fonction de chiffrement est directement implémentée au sein du SMB depuis la version 3.0 (disponible depuis Windows 8 et Windows Server 2012).

Grâce à cela, fini les transferts de données en clair sur le réseau ! SMB 3.0 peut chiffrer les échanges via de l'AES-CCM 128 bits, avec de l'authentification habituelle en environnement Windows à savoir Kerberos ou NTLM.

De ce fait, dans ce tutoriel on va créer un partage en SMB 3.0 et mettre en place le chiffrement pour sécuriser les transferts de fichier. Enfin, on analysera le trafic avec le logiciel Wireshark pour vérifier que le trafic est sécurisé.

Au niveau de l'environnement que j'utilise, il s'agit de deux machines virtuelles sur Hyper-V, l'une étant sous Windows Server 2012 R2 (Active Directory - DNS - Serveur de fichiers), l'autre sous Windows 8.1 (intégré au domaine it-connect.local).

II. Création du partage SMB 3.0

Passons à la création du partage SMB sur le serveur Windows, ceci nécessite que la machine soit serveur de fichiers. Si ce n'est pas le cas de votre serveur, installez rapidement la fonctionnalité avec cette commande PowerShell :

Add-WindowsFeature -Name FS-FileServer

smbv3-1

Ensuite, ouvrez le Gestionnaire de serveur, sur la gauche sélectionnez les services de fichiers et de stockage, et enfin cliquez sur la section "Partages" qui permet comme son nom l'indique de visualiser les partages présents sur le serveur.

Services de fichiers
Services de fichiers et de stockage

En cliquant sur "Tâches" et "Nouveau partage" on va pouvoir démarrer l'assistant de création d'un partage.

Créer un nouveau partage
Créer un nouveau partage

Dans le cadre de tutoriel, on va sélectionner le profil "Partage SMB - Rapide", car il permet de créer un partage SMB avec une configuration simple, alors que le mode avancé rentre dans les détails comme la gestion des quotas. Enfin, le mode application est conseillé si vous utilisez ce partage pour stocker des machines virtuelles avec Hyper-V (externalisation des VMs sur un espace de stockage partagé et accessible via SMB).

Création d'un partage SMB simple
Création d'un partage SMB simple

Il faut maintenant indiquer où l'on souhaite positionner le partage sur le serveur, c'est à dire au sein de quel répertoire : Où est-ce que je veux stocker les données de ce partage ? Si vous choisissez une lettre de lecteur, il y aura un répertoire "Shares" de créé à sa racine et il contiendra un sous-dossier pour votre partage. Si comme moi, vous préférez personnaliser le chemin remplissez la zone "Tapez un chemin personnalisé". Pour ma part, je le stocke sous "C:\PartageSMBv3", préférez une autre partition que le volume système C: si c'est possible.

Emplacement du partage sur le serveur
Emplacement du partage sur le serveur

On va nommer le partage, par exemple le même nom que le répertoire afin de s'y retrouver plus facilement : PartageSMBv3. Profitez-en pour repérer le chemin d'accès local et le chemin d'accès distant (UNC).

smbv3-6
Donnez un petit nom à votre partage, par exemple "PartageSMBv3"

Comme on a indiqué un chemin personnalisé qui n'existe pas en local actuellement, un message d'avertissement est affiché. Validez avec "OK" pour qu'il soit créé.

Confirmer que l'on souhaite créer le dossier du partage
Confirmer que l'on souhaite créer le dossier du partage

Voilà une étape cruciale ! C'est maintenant qu'il faut activer l'option de chiffrement : "Chiffrer l'accès aux données". Activez les autres options si nécessaire, notamment l'énumération basée sur l'accès autrement dit si vous activez cette option, un utilisateur verra au sein du partage uniquement les données sur lesquelles ils disposent d'un accès (au niveau des droits). Pour l'option de mise en cache, elle autorise ou non l'utilisation du contenu en mode hors connexion, et éventuellement lors de l'utilisation de BranchCache.

Attention : Pensez à activer le chiffrement
Attention : Pensez à activer le chiffrement

Cette étape est importante également puisqu'elle permet de définir des autorisations pour contrôler l'accès au partage et à ses données. C'est ici que vous devez définir si un utilisateur à le droit uniquement de lire le contenu, de lire et d'écrire pour créer du contenu... Gérer ses autorisation selon vos besoins, sachant que l'on peut bien sûr les modifier ultérieurement.

Gérez les autorisations
Gérez les autorisations

Confirmez pour démarrer la création et la configuration du partage, cliquez sur "Créer".

Résumé sur le partage à créer
Résumé sur le partage à créer

C'est réussi ! Comme on peut le voir dans la console le partage "PartageSMBv3" est bien créé en tant que partage SMB.

Le partage "PartageSMBv3" est bien créé !
Le partage "PartageSMBv3" est bien créé !

En ce qui concerne le chiffrement, si vous êtes un adepte de PowerShell, mais aussi pour effectuer la modification rapidement, on peut utiliser la commande suivante pour l'activer sur un partage spécifique :

Set-SmbShare –Name <nom-partage> -EncryptData $true

En scriptant cette commande, on pourra aussi activer le chiffrement sur de multiples partages rapidement 🙂

Sur le poste client, on peut tester que le partage SMB est bien accessible en le montant depuis l'explorateur Windows, ou avec PowerShell :

New-PSDrive -Name S -Root \\SRV-AD01.it-connect.local\PartageSMBv3 -Persist -PSProvider FileSystem

La commande ci-dessus crée un lecteur réseau avec la lettre S, à destination du partage "PartageSMBv3" sur le serveur SRV-AD01.it-connect.local, de façon persistante (Persist) et il s'agit d'un partage réseau alors on précise le fournisseur "FileSystem".

Maintenant, si l'on reprend la commande "Get-SmbConnection" que l'on a déjà utilisée dans un autre tutoriel, on verra que le partage est bien monté en SMB, et que la version du SMB utilisée est 3.02 (colonne Dialect). Ceci est tout à fait logique car Windows 8.1 et Windows Server 2012 R2 supportent tous les deux cette version du protocole, ils sont donc capable de l'utiliser pour négocier l'échange.

smbv3-12

La création du partage SMB 3.0 sécurisé est désormais terminée, on va s'intéresser au trafic généré afin de confirmer que les échanges soient bien sécurisés.

III. Analyse du trafic avec WireShark

A l'aide de l'application WireShark on va analyser le trafic entre le client Windows 8.1 et le serveur de fichiers sur lequel on a créé le partage. On démarre l'analyse WireShark sur le serveur ou le client, c'est au choix... Pendant ce temps depuis le client on copie des données à destination du serveur... On stoppe la capture WireShark et on va analyser les trames.

Vous remarquerez de nombreuses trames "SMB2" avec en information "Encrypted SMB3" ce qui est déjà une bonne indication quant au chiffrement du trafic.

smbv3-14
Trames SMB 3.0 chiffrées

 

Si l'on sélectionne l'une de ces trames, que l'on regarde de plus près son contenu, on peut voir qu'un algorithme de chiffrement est déclaré : SMB2_ENCRYPTION_AES128_CCM qui correspond à de l'AES-CCM 128 bits, utilisé par le SMB 3.0 pour le chiffrement comme je le disais dans la présentation.

La ligne "Encrypted SMB3 data" affiche d'ailleurs les données chiffrées, le trafic est sécurisé !

smbv3-13

Par ailleurs, une autre trame nommée "Ioctl Response FSCTL_VALIDATE_NEGOTIATE_INFO" est intéressante et elle intervient lors de l'ouverture de la session SMB. Le client fait sa demande d'ouverture et entre en négociation avec le serveur qui lui répond, c'est d'ailleurs la réponse qui est montrée sur la copie d'écran ci-dessous. L'opération FSCTL_VALIDATE_NEGOTIATE_INFO autorise le client et le serveur à répéter le processus de négociation sur un échange signé.

smbv3-15

Si l'on regarde la trame de réponse du serveur en détail, on voit qu'il y a une succès dans la négociation de l'échange : STATUS_SUCCESS. Si le serveur n'aurait pas valider la demande, la réponse aurait pu être "STATUS_ACCESS_DENIED". De la même manière s'il y a une incompatibilité au niveau SMB (version inférieure à 3.0) entre les deux parties, notamment s'il ne gère pas le "FSCTL_VALIDATE_NEGOTIATE_INFO", une réponse comme "STATUS_NOT_SUPPORTED" pourra être retournée.

smbv3-16
Négociation réussie entre le client et le serveur

 

C'est la fin de ce tutoriel, j'espère qu'il vous permettra de mettre en place, si votre infrastructure le permet, des partages SMB 3.0 sécurisés avec le chiffrement. Pour toute question, utilisez notre forum, merci.

author avatar
Florian BURNEL Co-founder
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

1 commentaire sur “Windows Server : Créer un partage SMB 3.0 avec du chiffrement

  • Bonsoir,
    j’aimerais créer un service de stokage, partage et synchronisation de fichiers sans toutefois m’appuyer sur les services des OS existants. Une solution qui pourra être installé sur un OS tel que Windows. Pourrriez vous m’orienter je vous prie.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.