Partage SaMBa


Comment transformer votre machine en serveur de fichiers (et en cauchemar pour les intrus)

Vous êtes sous Debian, vous avez des fichiers, et, ô surprise, vous souhaitez les partager avec d’autres machines. Si vous avez choisi Samba, félicitations, vous venez d’ouvrir la porte d’un monde merveilleux mêlant interopérabilité, configuration mystique et légères crises de nerfs.

Qu’est-ce que Samba et le protocole SMB/CIFS ?

Samba est un logiciel libre qui implémente les protocoles SMB (Server Message Block) et CIFS (Common Internet File System). SMB est un protocole de partage de fichiers, d’imprimantes et autres ressources réseau, développé initialement par IBM, puis adopté et étendu par Microsoft. CIFS n’est qu’une implémentation plus récente (et plus verbeuse) de SMB par Microsoft, utilisée notamment avec Windows NT4/2000. Aujourd’hui, on parle plutôt de SMBv2 et SMBv3, bien plus efficaces et sécurisés.

Principe de fonctionnement

Samba repose sur deux démons principaux :

  • smbd : s’occupe du partage de fichiers et d’imprimantes.
  • nmbd : gère la résolution des noms NetBIOS et la découverte du réseau (utile si vous aimez le folklore des années 90).

En résumé : vous installez Samba, vous configurez un fichier qui semble écrit en latin médiéval, vous redémarrez les services, et vous priez.

Installation sous Debian

apt update
apt install samba

Une fois installé, le fichier principal de configuration se trouve dans /etc/samba/smb.conf.

Configuration de base

Exemple simple :

[global]
   workgroup = WORKGROUP
   security = user
   map to guest = Bad User

[documents]
   path = /srv/partage/docs
   browseable = yes
   read only = yes
   valid users = alice, bob
   write list = alice

Ici, seul alice peut écrire. bob peut lire mais pas modifier. Le paramètre read only = yes est équivalent à writable = no, son opposé étant writeable = yes. Ne vous laissez pas piéger par cette double négation qui semble sortir d’une dissertation de Kafka.

Autre exemple avec read list et valid users

[secret]
  path = /mnt/secret
  browseable = no
  valid users = @admin
  write list = root,admin1
  read list = admin2

Seuls les membres du groupe admin peuvent accéder au partage. root et admin1 peuvent écrire, admin2 peut seulement lire. C’est un partage d’élite, donc il n’apparaît pas dans les partages visibles (browseable = no).

Création des utilisateurs Linux et Samba

Avant d’ajouter un utilisateur Samba, créez l’utilisateur sur le système :

adduser alice

Puis ajoutez-le à la base Samba :

smbpasswd -a alice

Les mots de passe Samba sont stockés dans /var/lib/samba/private/passdb.tdb, une base de données binaire propre à Samba, distincte de /etc/shadow.

Pour désactiver un utilisateur Samba :

smbpasswd -d alice

Redémarrer les services

systemctl restart smbd nmbd

Vérification

Pour tester les partages visibles :

smbclient -L localhost -U alice

Conclusion

Samba est un outil puissant mais exigeant. Bien configuré, il transforme un simple Debian en serveur de fichiers redoutable. Mal configuré, il devient une énigme kafkaïenne, prête à vous faire douter de votre santé mentale.

Bonne chance, et que le démon smbd soit clément avec vous.