Comprendre et dépanner le protocole Server Message Block (SMB)

Server Message Block (SMB) est un protocole réseau essentiel de partage de fichiers qui permet aux utilisateurs et aux applications d’accéder à des fichiers, des imprimantes et d’autres ressources partagées sur un réseau. Couramment utilisé dans les environnements Windows, SMB facilite une communication fluide entre les systèmes clients et serveurs. Dans cet article, nous explorerons le fonctionnement de SMB, ses composants, les étapes courantes de dépannage et les bonnes pratiques pour résoudre les problèmes liés à SMB.



Qu’est-ce que SMB ?

Server Message Block (SMB) est un protocole réseau qui permet aux utilisateurs de lire, d’écrire et de gérer des fichiers sur des serveurs distants comme s’ils étaient locaux. SMB est largement utilisé dans les réseaux Windows pour permettre l’accès partagé aux fichiers, aux imprimantes et aux ports série. Il est également pris en charge par les systèmes Linux et macOS, ce qui en fait un protocole polyvalent pour la communication multiplateforme.


Fonctionnement de SMB

  1. Demande du client : Le client SMB (par exemple Windows, Linux ou macOS) envoie une demande au serveur SMB pour accéder à une ressource partagée.
  2. Réponse du serveur : Le serveur SMB valide la demande en fonction de l’authentification et des autorisations.
  3. Accès aux ressources : Une fois l’accès accordé, le client peut lire, écrire ou modifier des fichiers comme s’ils se trouvaient sur un lecteur local.

Terminologie clé de SMB

  • Serveur SMB (SRV) : Le système qui héberge le système de fichiers partagé.
  • Client SMB (CLI) : Le système qui accède au système de fichiers partagé.

Par exemple, si une machine Windows Server 2016 accède au partage SMB \\MyWorkstation\Data sur un ordinateur Windows 10, le serveur joue le rôle de client SMB, et le poste de travail est le serveur SMB.


Versions de SMB

1. SMB 1.0 (hérité)

  • Vulnérable aux attaques comme WannaCry et EternalBlue.
  • Dépourvu des fonctionnalités de sécurité modernes.

2. SMB 2.0 / 2.1

  • Performances et sécurité améliorées.
  • Prend en charge des tailles de mémoire tampon plus importantes pour de meilleurs débits de transfert de données.

3. SMB 3.0+

  • Introduction du chiffrement pour une sécurité renforcée.
  • Les fonctionnalités incluent SMB Multichannel et SMB Direct pour des transferts de fichiers à haut débit.

Composants de SMB

1. Binaires

  • Binaires du client SMB : Situés dans %windir%\system32\Drivers:
    • RDBSS.sys
    • MRXSMB.sys
    • MRXSMB10.sys
    • MRXSMB20.sys
    • MUP.sys
    • SMBdirect.sys
  • Binaires du serveur SMB :
    • %windir%\system32: Srvsvc.dll
    • %windir%\system32\Drivers: SRVNET.sys, SRV.sys, SRV2.sys, SMBdirect.sys

2. Liaisons

  • Liaison du client SMB : Client for Microsoft Networks
  • Liaison du serveur SMB : File and Printer Sharing for Microsoft Networks

Ports et communication SMB

SMB peut fonctionner sur différents ports selon le protocole utilisé :

ProtocolePortDescription
NetBIOS over TCP/IPUDP 137Résolution de noms
NetBIOS over TCP/IPUDP 138Services de datagrammes
NetBIOS over TCP/IPTCP 139Services de session
SMB direct sur TCPTCP 445Communication SMB par défaut

Les réseaux modernes utilisent principalement TCP 445, tandis que les systèmes plus anciens peuvent s’appuyer sur NetBIOS.


Comment résoudre les problèmes SMB

1. Vérifier la connectivité

  • Assurez-vous que le client peut se connecter au serveur via TCP 445:
Test-NetConnection <server_IP_or_hostname> -Port 445
  • En cas d’échec, vérifiez si Azure Firewall, les groupes de sécurité réseau ou les pare-feu locaux bloquent le trafic SMB.

2. Vérifier la résolution de noms

  • Testez l’accès au serveur via le nom d’hôte et l’adresse IP :
nslookup <server_hostname>
  • Si le nom d’hôte échoue, vérifiez la configuration DNS.

3. Vérifier les services SMB

  • Assurez-vous que les services requis sont en cours d’exécution :
Get-Service -Name LanmanServer, LanmanWorkstation
  • Démarrez les services s’ils sont arrêtés :
Start-Service -Name LanmanServer, LanmanWorkstation

4. Vérifier les règles de pare-feu

  • Confirmez que les règles SMB sont activées :
netsh advfirewall firewall show rule name="File and Printer Sharing (SMB-In)"

5. Vérifier les autorisations

  • Vérifiez les autorisations de partage et NTFS via les propriétés du dossier ou CMD :
net share <sharename>
icacls <folder_path>

6. Tester l’accès avec un chemin UNC

  • Ouvrez Run (Win + R) et saisissez :
\\<server_IP_or_hostname>\sharename

Dépannage avancé et collecte de données

1. Vérifier les sessions SMB

  • Affichez les sessions SMB actives :
Get-SmbSession

2. Réinitialiser la configuration SMB

  • Désactivez puis réactivez SMB 2 et 3 :
Set-SmbServerConfiguration -EnableSMB2Protocol $true -Force

3. Traces réseau

  • Utilisez Wireshark pour collecter les paquets réseau liés à SMB :
    1. Commencez à capturer le trafic sur le client et le serveur SMB.
    2. Reproduisez le problème.
    3. Analysez les paquets pour détecter des erreurs SMB ou des délais d’attente dépassés.

4. Collecter les journaux d’événements

  • Exportez les journaux d’événements liés à SMB pour une analyse plus approfondie :
    • Journaux du client SMB.
    • Journaux du serveur SMB.
SMB

Documentation de référence :

Dépannage avancé de Server Message Block (SMB) | Microsoft Learn

Problèmes connus de SMB | Microsoft Learn

Conseils de dépannage SMB – Windows Server | Microsoft Learn

Présentation du protocole SMB Microsoft et du protocole CIFS – Applications Win32 | Microsoft Learn

Détecter, activer et désactiver SMBv1, SMBv2 et SMBv3 dans Windows | Microsoft Learn

Présentation du partage de fichiers avec le protocole SMB 3 dans Windows Server | Microsoft Learn

Présentation de la signature Server Message Block – Windows Server | Microsoft Learn

Améliorations de sécurité SMB | Microsoft Learn


Conclusion

SMB est un protocole puissant pour le partage de fichiers et l’accès aux ressources, mais il peut rencontrer des problèmes en raison de configurations incorrectes, de restrictions réseau ou de composants obsolètes. En suivant les étapes de dépannage décrites ci-dessus, vous pouvez identifier et résoudre efficacement les problèmes liés à SMB. Pour les problèmes complexes, des diagnostics avancés comme les traces réseau et les journaux d’événements peuvent fournir des informations plus détaillées.

Laisser un commentaire