Serveur Samba – La solution pour un réseau multiplateforme

Qu’est-ce qu’un serveur Samba?

Un serveur Samba est caractérisé comme tel lorsqu’une suite de logiciels gratuits est utilisée pour partager les ressources de systèmes incompatibles par nature. La licence publique générale GNU permet l’implantation du protocole SMB (Server Message Block), qui a donné le nom à la suite Samba, dans les systèmes d’exploitation Linux et Unix.  Ce protocole de partage des ressources (SMB), aussi connu dans sa version plus récente CIFS pour Common Internet File System ou système de fichier Internet commun, était à l’origine utilisé comme réseau local Windows établissant des interactions avec des serveurs de fichiers, d’imprimantes et autres services.Grâce à une telle mise en œuvre des ordinateurs sous Windows, Linux et Unix peuvent être connectés, de manière à pouvoir échanger des données ou utiliser conjointement des imprimantes et autres services. Peu importe si le serveur est installé sous Linux ou Unix, car la quatrième version du logiciel prend en charge le rôle d’Active Directory Domain Controllers, par lequel une autorisation et authentification centralisée des différents ordinateurs et des utilisateurs est possible.

Pour configurer un protocole SMB (ou bien CIFS) il faut installer quelques modules de la suite du serveur Samba. Les quatre daemons (tâches de fond, ou processus qui s’exécute en arrière-plan) suivants forment le noyau de cette suite :

  • samba: le daemon ajouté dans la version quatre, qui permet la gestion de l’Active Directory Domain Controllers. Configuration sur smb.conf
  • smbd: partage des données et imprimantes. Configuration sur smb.conf
  • nmbd: responsable de la résolution des noms NetBIOS dans les adresses IP, peut être configuré sur le fichier smb.conf
  • winbindd: résoud les informations de groupes d’utilisateurs, il les rend compréhensibles pour UNIX/Linux et offre des possibilités de configurations autonomes

Configurer un serveur SAMBA: Comment ça marche?

SMB/CIFS est le protocole standard pour les partages simples de réseau sous Windows. Toutefois, l’échange tout comme le partage de données est toujours problématique lorsque différents systèmes d’exploitation comme Linux et Windows sont connectés en réseau. Lorsque vous aurez fini de configurer un serveur Samba, celui-ci va permettre la transmission entre les différents terminaux, de manière à résoudre ces problèmes de compatibilité. Comme le paquet Samba est constitué de composants open source, aucun paiement ne vous sera demandé. Vous trouverez ci-dessous le descriptif des étapes indispensables à la configuration d’un serveur Linux-Samba.

Étape 1: Installation

Vous devez tout d’abord choisir entre agir directement sur votre serveur ou bien par accès à distance. Par la suite, entrez la commande suivante pour installer le paquet Samba sur le serveur :

apt-get install samba

Étape 2: Ajouter les comptes utilisateurs à la base de données Samba

Après avoir installé le serveur Samba, les comptes utilisateurs correspondants doivent être activés. Quelques distributions Linux synchronisent automatiquement les comptes d’utilisateurs de système disponibles dans le réseau et elles les ajoutent à la base de données Samba. Par exemple si le paquet libpam-smbpass est installé, les mots de passe Linux et SMB sont synchronisés. Dans d’autres cas, il est nécessaire de gérer manuellement les comptes utilisateurs pour que ces derniers puissent bénéficier des services de réseau correspondants.

L’administration des comptes utilisateurs est contrôlée par la commande smbpasswd comprenant quatre paramètres a, x, d et e représentés par leurs lignes de commandes respectives comme ci-dessous :

sudo smbpasswd -a NOM UTILISATEUR (MOT DE PASSE)
sudo smbpasswd -x NOM UTILISATEUR
sudo smbpasswd -d NOM UTILISATEUR
sudo smbpasswd -e NOMU TILISATEUR

La première commande permet d’ajouter l’utilisateur respectif à la base de données du serveur Samba et activer le partage de réseau. Le mot de passe utilisateur (suivant le nom d’utilisateur) peut être attribué ou bien changé. Ce dernier peut être identique au mot de passe Linux ou bien s’en différencier. La deuxième commande (x) expulse l’utilisateur de la base de données tandis que la commande (d) le désactive. La commande (e) permet d’activer (ou de réactiver) un compte utilisateur. Le serveur peut charger et prendre en compte toutes les modifications effectuées grâce à la commande suivante :

sudo service smbd reload

Étape 3: Configurer le partage de données

Autorisations générales

Les autorisations générales peuvent être déterminées dans le fichier de configuration du serveur Samba. Ce fichier regroupe toutes les autorisations administratives et les propriétés générales du serveur. Ouvrez le fichier avec la commande suivante :

sudo gedit /etc/samba/smb.conf

Le fichier smb.conf contient de nombreux exemples non commentés, qui sont en règle générale inactifs et caractérisés par des losanges (#), ou point-virgules (;). Si vous souhaitez activer un tel exemple, il vous suffit de supprimer le caractère spécial. Vous pouvez insérer de nouvelles entrées selon les places disponibles sur le réseau à la fin du fichier en plaçant le nouveau nom entre crochets. La ligne qui suit servira à indiquer le chemin jusqu’au dossier, voire au fichier correspondant ainsi que ses paramètres. Si vous souhaitez par exemple partager un dossier avec des photos et autorisant des ajouts et modifications d’autres utilisateurs, vous pouvez configurer ces paramètres avec les commandes suivantes :

[Photos]
path= /documents/photos
writeable = yes
guest ok = yes

Pour prendre en compte ces modifications, vous devez à nouveau charger le serveur, grâce à la commande suivante:

sudo service smbd reload

Autorisations personnelles

Afin d’établir des autorisations spécifiques, l’utilisateur doit d’abord appartenir au groupe de partage Samba. Utilisez la commande suivante pour ajouter un utilisateur dans ce groupe :

sudo usermod -aG sambashare NOM UTILISATEUR

L’appartenance au groupe s’effectue dès lors que l’utilisateur s’enregistre, ou que Linux est redémarré. La mise en place des autorisations ne s’effectuera pas dans le fichier smb.conf mais plutôt dans un fichier à part, qui se situe en général dans le dossier /var/lib/samba/usershares. Chacun de ces fichiers contient le nom de partage (Sharename) et le chemin d’accès aux autorisations, ainsi qu’un espace optionnel pour les commentaires. Ces fichiers contiennent aussi une liste de contrôle d’accès partagée entre utilisateurs ACL (Access control list, qui met les différentes autorisations à disposition des utilisateurs qui peuvent aussi dans certains cas les modifier), et qui énumère également les accès. Voici un exemple de commande : 

net usershare add Photos /documents/photos Vacances 2015 Everyone: r, UTILISATEUR1: f

Serveur Samba: Windows et Linux unis en réseau

Si l’utilisation commune d’imprimantes et de fichiers en réseau depuis différents systèmes d’exploitation pose problème, l’installation d’un serveur Samba  est la solution idéale. Les logiciels gratuits qui le constituent introduisent le protocole réseau SMB/CIFS dans les systèmes Unix et Linux.  Cela permet de rendre les appareils Windows compatibles en réseau, peu importe que cela vienne du client ou du serveur.

Un serveur Linux-Samba permet d’organiser les autorisations de partage de données et autres services en réseau (comme un serveur Windows), mais aussi de prendre en charge le rôle d’Active Directory Domain Controllers. Si vous souhaitez configurer un serveur Samba et le gérer, vous pouvez faire cela depuis votre ordinateur par accès à distance. Vous avez également le choix d’entrer directement des commandes sous forme de lignes de commandes, ou bien installer une surface graphique supplémentaire visant à simplifier ces processus.