SMB (Server Message Block) est le protocole de partage de fichiers et d'imprimantes en réseau, né dans le monde Windows. Un client monte un dossier partagé distant et l'utilise comme un disque local, sur le port TCP 445. Sur Linux, l'implémentation open source s'appelle Samba. Ce guide explique la différence entre SMB et CIFS, comment accéder à un partage avec smbclient, auditer un serveur avec nmap, et durcir une configuration Samba. Pour administrateurs et profils blue team, en ligne de commande.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- La différence entre SMB, CIFS et Samba.
- Les versions de SMB et pourquoi SMB1 est dangereux.
- Accéder à un partage avec
smbclientet le monter. - Auditer un serveur SMB avec
nmap. - Durcir une configuration Samba.
Qu'est-ce que SMB, et CIFS ?
Section intitulée « Qu'est-ce que SMB, et CIFS ? »SMB est le protocole qui permet de partager des fichiers et des imprimantes entre machines. Créé par IBM dans les années 80 puis étendu par Microsoft, c'est le mécanisme derrière les lecteurs réseau d'entreprise et la plupart des NAS (Synology, TrueNAS, QNAP).
Le terme CIFS (Common Internet File System) prête à confusion. Ce n'est pas un protocole distinct : c'est le nom donné par Microsoft en 1996 à une variante de SMB1.
| Terme | Réalité |
|---|---|
| CIFS | ancien nom de SMB1 |
| SMB | le protocole actuel (SMB2, SMB3) |
| Samba | l'implémentation open source pour Linux |
Retenez la règle simple : CIFS = SMB1, un dialecte obsolète. Quand vous montez un partage avec mount -t cifs, vous utilisez en réalité un client SMB moderne ; le nom cifs est resté pour des raisons historiques.
Les versions de SMB
Section intitulée « Les versions de SMB »Choisir la bonne version est d'abord une question de sécurité. Trois générations coexistent, et la première doit disparaître.
| Version | Apparition | À retenir |
|---|---|---|
| SMB1 (CIFS) | années 90 | obsolète, vecteur d'EternalBlue, à désactiver |
| SMB2 | Windows Vista / Server 2008 | signature disponible, pas de chiffrement |
| SMB3 | Windows 8 / Server 2012 | chiffrement et signature par défaut |
| SMB 3.1.1 | Windows 10 / Server 2016 | chiffrement AES-128-GCM, intégrité pré-auth |
Côté réseau, deux ports entrent en jeu : TCP 445 (SMB direct sur TCP, le standard) et TCP 139 (SMB historique encapsulé dans NetBIOS). En pratique, vous surveillez le 445.
Samba : SMB sur Linux
Section intitulée « Samba : SMB sur Linux »Samba est l'implémentation open source du protocole SMB pour Linux et Unix. Elle permet à un serveur Linux de partager des fichiers avec des clients Windows, macOS et Linux, et peut même jouer le rôle de contrôleur de domaine Active Directory. La version stable courante est Samba 4.24 (2026).
Sa configuration vit dans /etc/samba/smb.conf : une section [global] pour les réglages généraux, puis un bloc par partage. Un partage minimal ressemble à ceci :
[partage] path = /srv/partage valid users = alice read only = noAccéder à un partage en ligne de commande
Section intitulée « Accéder à un partage en ligne de commande »Le client de référence est smbclient (paquet smbclient sur Debian/Ubuntu, samba-client sur RHEL/Fedora). Les sorties ci-dessous proviennent d'un lab réel : un serveur Samba en conteneur exposant un partage partage.
-
Lister les partages d'un serveur, après authentification :
Fenêtre de terminal smbclient -L //serveur -U aliceSharename Type Commentpartage DiskIPC$ IPC IPC Service (Samba Server) -
Se connecter à un partage : la session est interactive, comme un client FTP (
ls,get,put,cd) :Fenêtre de terminal smbclient //serveur/partage -U alice -
Monter le partage comme un filesystem avec
cifs-utils:Fenêtre de terminal sudo mount -t cifs //serveur/partage /mnt -o username=alice,vers=3.0L'option
vers=3.0force SMB3 : explicite, c'est plus sûr que de laisser la négociation automatique choisir une version ancienne.
Auditer un serveur SMB
Section intitulée « Auditer un serveur SMB »Avant de sécuriser, il faut voir ce qu'un attaquant voit. Deux vérifications comptent : les versions acceptées et l'accès anonyme.
nmap énumère les dialectes SMB supportés. Sur le lab, le serveur accepte SMB 2.1 et 3.0, mais pas SMB1, ce qui est le comportement attendu :
nmap -p445 --script smb-protocols serveur445/tcp open microsoft-ds| smb-protocols:| dialects:| 2.1| 3.0Le second test est l'accès anonyme (null session). Sur le lab, lister les partages sans authentification réussit, ce qui révèle le partage à n'importe qui :
smbclient -L //serveur -NSharename Type Commentpartage DiskDurcir une configuration Samba
Section intitulée « Durcir une configuration Samba »La sécurité de SMB tient à quelques directives dans la section [global] de smb.conf. L'objectif : refuser les vieux protocoles, chiffrer, signer et bloquer l'anonyme.
[global] server min protocol = SMB3 # refuse SMB1 et SMB2 smb encrypt = required # chiffrement obligatoire (SMB3) server signing = mandatory # signature imposee (anti-relais NTLM) restrict anonymous = 2 # coupe les null sessionsChaque ligne ferme une faille concrète :
server min protocol = SMB3élimine SMB1 (EternalBlue) et SMB2 non chiffré ;smb encrypt = requiredchiffre les échanges (n'a d'effet qu'avec SMB3) ;server signing = mandatorycontre le relais NTLM (SMB relay) ;restrict anonymous = 2coupe les null sessions.
Complétez avec valid users sur chaque partage pour restreindre l'accès, et surtout : n'exposez jamais le port 445 sur Internet. SMB reste cantonné au réseau local, derrière un pare-feu.
À retenir
Section intitulée « À retenir »- SMB est le protocole de partage de fichiers réseau ; Samba en est l'implémentation Linux open source.
- CIFS = SMB1, un dialecte obsolète à désactiver (EternalBlue, WannaCry).
- Le port à surveiller est TCP 445 ; le 139 est historique (NetBIOS).
- Côté client CLI :
smbclient -Lliste,smbclient //srv/sharese connecte,mount -t cifsmonte (forcezvers=3.0). - Auditez avec
nmap --script smb-protocolset testez l'accès anonyme (null session). - Durcissez Samba :
server min protocol = SMB3,smb encrypt = required,restrict anonymous = 2. - Jamais de port 445 exposé sur Internet.
FAQ : questions fréquentes sur SMB/CIFS
Section intitulée « FAQ : questions fréquentes sur SMB/CIFS »Le partage de fichiers en réseau
SMB (Server Message Block) est le protocole de partage de fichiers et d'imprimantes en réseau, né dans le monde Windows. Un client SMB monte un dossier partagé distant et l'utilise comme un disque local.- créé par IBM dans les années 80, étendu par Microsoft ;
- sur Linux/Unix, l'implémentation open source est Samba ;
- écoute sur le port TCP 445.
CIFS, c'est l'ancien SMB1
CIFS (Common Internet File System) est le nom donné par Microsoft en 1996 à une variante étendue de SMB1. Ce n'est pas un protocole distinct de SMB.| Terme | Réalité |
|---|---|
| CIFS | ancien nom de SMB1 |
| SMB | le protocole actuel (SMB2, SMB3) |
mount -t cifs, vous utilisez en réalité un client SMB moderne. Retenez : CIFS = SMB1, dialecte obsolète à ne plus utiliser.Port 445 (et 139 historique)
| Port | Usage |
|---|---|
| TCP 445 | SMB direct sur TCP (standard depuis Windows 2000) |
| TCP 139 | SMB historique via NetBIOS |
smbclient, le client en ligne de commande
# Lister les partages (authentifie)
smbclient -L //serveur -U alice
# Lister en anonyme (null session)
smbclient -L //serveur -N
# Se connecter a un partage (session type FTP : ls, get, put)
smbclient //serveur/partage -U alice
Le paquet est smbclient (Debian/Ubuntu) ou samba-client (RHEL/Fedora). Pour monter un partage en filesystem, utilisez cifs-utils :mount -t cifs //serveur/partage /mnt -o username=alice,vers=3.0
Pour auditer un serveur, nmap énumère les partages et versions : nmap -p445 --script smb-enum-shares,smb-protocols <ip>.Oui, à désactiver partout
SMB1 (CIFS) est obsolète et dangereux. C'est le protocole exploité par la faille EternalBlue (MS17-010), utilisée par les rançongiciels WannaCry et NotPetya en 2017 (plus de 200 000 systèmes touchés).- Microsoft le désactive par défaut depuis Windows Server 2019 ;
- côté Samba, imposez une version minimale dans
smb.conf:
[global]
server min protocol = SMB3
smb encrypt = required
server signing = mandatory
Imposer SMB3 active le chiffrement et la signature (anti-relais NTLM). Vérifiez l'absence de SMB1 avec nmap --script smb-protocols.SMB pour Linux
Samba est l'implémentation open source du protocole SMB pour Linux et Unix. Elle permet à un serveur Linux de :- partager des fichiers et des imprimantes avec des clients Windows, macOS et Linux ;
- jouer le rôle de contrôleur de domaine Active Directory.
/etc/samba/smb.conf (sections [global] puis un bloc par partage). La version stable courante est Samba 4.24 (2026). C'est Samba qui permet d'interconnecter un parc Linux et Windows autour d'un même partage de fichiers.