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.