Samba

Samba est une application libre qui tourne sous Linux et qui permet de créer un serveur de fichiers en s'appuyant sur l'implémentation du protocole SMB (CIFS). C'est précisément cette fonctionnalité qui va nous intéresser aujourd'hui, mais sachez que Samba permet également de partager des imprimantes et de créer un véritable contrôleur de domaine Active Directory (prise en charge des GPO, Kerberos, LDAP, DNS, etc.).

Présenation

image.png

Qu’est-ce que Samba ?

Samba est un logiciel libre qui permet de partager des fichiers et des imprimantes entre ordinateurs, même s’ils utilisent des systèmes d’exploitation différents. Principalement, Samba facilite la communication entre des machines Linux/Unix et des machines Windows.

Grâce à Samba, un ordinateur Linux peut agir comme un serveur de fichiers accessible depuis un poste Windows, ou inversement. C’est un outil essentiel dans de nombreux réseaux pour centraliser les ressources partagées.

À quoi sert Samba ?

Samba sert à créer un espace commun où les utilisateurs peuvent accéder, modifier et partager des fichiers et des imprimantes, quel que soit leur système. Cela simplifie le travail collaboratif et évite de dupliquer les données.

Il est très utilisé dans les entreprises pour gérer des dossiers partagés, permettre l’accès à des imprimantes réseau, et même intégrer un serveur Linux dans un domaine Windows Active Directory.

Comment fonctionne Samba ?

Samba fonctionne en implémentant les protocoles SMB (Server Message Block) et CIFS (Common Internet File System), qui sont ceux utilisés par Windows pour partager des ressources sur le réseau.

Un serveur Samba propose des partages, c’est-à-dire des dossiers ou imprimantes accessibles aux autres machines. Les clients, qu’ils soient Windows, Linux ou macOS, peuvent se connecter à ces partages en fonction des droits attribués.

Pourquoi utiliser Samba ?

Samba est très utile lorsqu’on souhaite faire communiquer des machines avec des systèmes différents. Il permet de centraliser les données et de faciliter l’accès aux ressources réseau.

Il est aussi performant, personnalisable, et bénéficie d’une large communauté, ce qui garantit une bonne stabilité et un support régulier.

Cas d’usage courants

Samba est souvent utilisé pour :

En résumé

Samba est une solution incontournable pour partager des fichiers et imprimantes entre différents systèmes d’exploitation. Il facilite le travail en réseau en garantissant compatibilité et sécurité.

Installation

image.png

Installer les paquets

Connectez-vous sur votre machine Linux et mettez à jour la liste des paquets :

apt-get update

Ensuite, installez le paquet "samba" :

apt-get install -y samba

Suite à l'installation, on peut afficher la version actuelle de Samba via la commande smbd :

smbd --version
Version 4.13.5-Debian

Pour afficher le statut du serveur Samba, et voir s'il est démarré ou arrêté, voici la commande à exécuter :

systemctl status smbd

Avant de passer à la suite, nous allons activer le démarrage automatique de smbd (Samba) :

systemctl enable smbd

Maintenant, passons à la création du partage Samba.

Créer un partage

La création du partage va s'effectuer en plusieurs étapes : la configuration de Samba dans un premier temps, et la préparation du groupe, de l'utilisateur et du dossier du partage dans un second temps.

smb.conf

Le fichier de configuration de Samba est "/etc/samba/smb.conf", nous allons l'éditer :

nano /etc/samba/smb.conf

Ajoutez ensuite les lignes suivantes pour déclarer notre partage :

[partage]
   comment = Partage de données
   path = /srv/partage
   guest ok = no
   read only = no
   browseable = yes
   valid users = @partage

Quelques explications :

La configuration étant terminée, sauvegardez le fichier et redémarrez le service smbd :

systemctl restart smbd

Créer un utilisateur et un groupe

Le groupe "partage" que nous avons déclaré dans la configuration n'existe pas. Nous allons créer le groupe, ainsi qu'un utilisateur nommé "it-connect" et qui sera membre de ce groupe.

Créez l'utilisateur "it-connect" et définissez son mot de passe :

adduser rakouns

Pour que l'utilisateur puisse se connecter au partage, il faut l'autoriser dans Samba, en plus de la création au sein du système Linux. Pour cela, il faut utiliser la commande "smbpasswd" pour déclarer l'utilisateur et lui créer un mot de passe Samba (ce dernier pouvant être différent du mot de passe du compte sur le système).

Voici la commande pour ajouter l'utilisateur "it-connect" :

smbpasswd -a rakouns

Lorsqu'un utilisateur exécute lui-même la commande "smbpasswd", cela lui permet de modifier lui-même son mot de passe Samba.

L'utilisateur étant prêt, nous allons créer le groupe "partage" :

groupadd partage

Avec gpasswd ou usermod, ajoutez l'utilisateur "rakouns" au groupe "partage" :

gpasswd -a rakouns partage

Le tour est joué pour l'utilisateur et le groupe !

Préparer le dossier du partage

Le partage va être hébergé à l'emplacement "/srv/partage" de notre serveur. Commençons par créer le dossier :

mkdir /srv/partage

Ensuite, on va attribuer le groupe "partage" comme groupe propriétaire de ce dossier :

chgrp -R partage /srv/partage/

Puis, nous allons ajouter les droits de lecture/écriture à ce groupe sur ce dossier :

chmod -R g+rw /srv/partage/

On peut vérifier la configuration des droits avec la commande suivante :

ls -l /srv/

Tout est prêt, nous pouvons tester depuis un poste client.

Accès depuis Windows

image.png

Pour tester l'accès au partage, j'ai pris une machine Windows mais j'aurais pu utiliser un client sous Linux également. Pour accéder au partage, il y a plusieurs possibilités : à partir de l'explorateur de fichiers Windows, d'un lecteur réseau, de la commande net use voire même New-PSDrive en PowerShell.

image.png

Utilisons la méthode la plus courante pour accéder à un partage : un chemin UNC directement dans la barre d'adresse de l'Explorateur de fichiers. Pour ma part, ma machine se nomme "debian-11", ce qui donne :

\\debian-11\partage

image.png

Le message accès refusé apparaît, c'est normal, car je dois m'authentifier, donc j'utilise le compte "rakounst" et le mot de passe saisit lors de l'exécution de la commande "smbpasswd".

image.png

Parfait ! J'accède bien à mon partage Samba depuis Windows ! Je peux même créer un fichier puisque j'ai accès en lecture / écriture.