Aller au contenu
medium

SMB/CIFS : partage de fichiers réseau avec Samba

8 min de lecture

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.

  • La différence entre SMB, CIFS et Samba.
  • Les versions de SMB et pourquoi SMB1 est dangereux.
  • Accéder à un partage avec smbclient et le monter.
  • Auditer un serveur SMB avec nmap.
  • Durcir une configuration Samba.

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.

TermeRéalité
CIFSancien nom de SMB1
SMBle protocole actuel (SMB2, SMB3)
Sambal'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.

Choisir la bonne version est d'abord une question de sécurité. Trois générations coexistent, et la première doit disparaître.

VersionApparitionÀ retenir
SMB1 (CIFS)années 90obsolète, vecteur d'EternalBlue, à désactiver
SMB2Windows Vista / Server 2008signature disponible, pas de chiffrement
SMB3Windows 8 / Server 2012chiffrement et signature par défaut
SMB 3.1.1Windows 10 / Server 2016chiffrement 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 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 = no

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.

  1. Lister les partages d'un serveur, après authentification :

    Fenêtre de terminal
    smbclient -L //serveur -U alice
    Sharename Type Comment
    partage Disk
    IPC$ IPC IPC Service (Samba Server)
  2. 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
  3. 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.0

    L'option vers=3.0 force SMB3 : explicite, c'est plus sûr que de laisser la négociation automatique choisir une version ancienne.

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 :

Fenêtre de terminal
nmap -p445 --script smb-protocols serveur
445/tcp open microsoft-ds
| smb-protocols:
| dialects:
| 2.1
| 3.0

Le 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 :

Fenêtre de terminal
smbclient -L //serveur -N
Sharename Type Comment
partage Disk

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 sessions

Chaque ligne ferme une faille concrète :

  • server min protocol = SMB3 élimine SMB1 (EternalBlue) et SMB2 non chiffré ;
  • smb encrypt = required chiffre les échanges (n'a d'effet qu'avec SMB3) ;
  • server signing = mandatory contre le relais NTLM (SMB relay) ;
  • restrict anonymous = 2 coupe 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.

  • 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 -L liste, smbclient //srv/share se connecte, mount -t cifs monte (forcez vers=3.0).
  • Auditez avec nmap --script smb-protocols et 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.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn