SAMBA : Présentation,Fonctionnalités et Mise en place d'un serveur de partage de fichiers - Partie 2

IV/ Installation et configuration de Samba
Pour les besoins de ce tutoriel, nous nous servirons d’une machine sous Debian 12 faisant office de serveur et de deux clients qui sont : Windows 10 et Ubuntu Desktop 23.04.
1-Installation de Samba
1-1 Installer la partie serveur de Samba
Pour installer la partie serveur de Samba sur notre Debian 12, nous ferons :
apt-get install samba
N.B :Il est aussi bon à savoir que le serveur Samba fonctionne essentiellement grâce à deux daemons (programmes qui s’exécutent en arrière-plan) qui sont :
-smbd:c’est lui qui se charge de rendre accessible les services de partage de fichiers et d’impression sur le réseau. Il est responsable de l’authentification des utilisateurs, du verrouillage et du partage des ressources
-nmbd:c’est lui qui propose le support du système de nommage NetBIOS avec ses différentes fonctionnalités et se charge de l’affichage du voisinage réseau de Windows.
1-2 Installer la partie client de Samba
Pour la partie client de Samba sur notre Ubuntu 23.04, nous ferons :
sudo apt-get install smbclient
En ce qui concerne notre Windows 10, nous l’avons déjà dit précédemment il possède déjà son client SMB natif.
2-Configuration de Samba
Les configurations que nous aurons à faire seront sur la partie serveur de Samba. La configuration côté serveur de Samba n’est basé que sur un seul fichier qui est /etc/samba/smb.conf. Il définit les paramètres de fonctionnement de notre serveur. Il se présente comme suit :
Dans ce fichier, les commentaires débutent par un «# » ou par un « ; » et se terminent à la fin de la ligne.
Le caractère « \ » permet de scinder une ligne de configuration sur plusieurs lignes.
Les grandes parties de ce fichier sont déclarées entre des ‘[ ]’
Sous ces grandes parties sont directement définis les paramètres selon la syntaxe suivante :
paramètre = valeur
Certaines fois ces paramètres peuvent prendre différentes valeurs et dans ce cas les valeurs sont assignées de la manière suivante :
paramètre = valeur1,valeur2,valeur3
ou bien
paramètre = valeur1 valeur2 valeur3
En parcourant ce fichier de configuration on constate qu’il est constitué de 4 grandes parties :
-[global] : cette partie rassemble les paramètres généraux ;
-[homes] : cette partie rassemble les paramètres du partage des répertoires utilisateurs ;
-[printers] : cette partie rassemble les paramètres des imprimantes ;
-[print$] : cette partie rassemble le partage des pilotes d’imprimantes ( ce partage permet de centraliser les pilotes des imprimantes partagées et de faciliter leur installation sur les machines qui ne disposent pas déjà de ces pilotes)
*La partie [global]
Dans cette partie nous pouvons retrouver plusieurs paramètres dont les principaux que nous aurons à définir sont les suivants :
workgroup : Ce paramètre permet de définir le groupe de travail ou le nom de domaine NetBIOS. La valeur à assigner à ce paramètre est en majuscule. Par défaut ce paramètre prend la valeur WORKGROUP (workgroup = WORKGROUP)
netbios name : Ce paramètre permet de définir le nom NetBIOS de notre serveur c’est-à-dire le nom par lequel notre serveur sera visible sur le poste client Windows. Il peut prendre au maximum 15 caractères.
server string : Ce paramètre permet de définir la description du serveur apparaissant dans l’explorateur Windows.
hosts allow : Ce paramètre permet de restreindre les clients de notre serveur uniquement à certains réseaux et/ou adresses IP. Les adresses des réseaux qui pourront accéder à notre serveur se terminent par un . seulement et pour les séparer on utilise une virgule ou un espace.
Exemple : Si nous voulons rendre accessible le serveur aux réseaux 192.168.0.0 et 127.0.0.0 nous donnerons les valeurs suivantes au paramètre hosts allow selon la manière suivante :
hosts allow = 192.168.0.,127. Ou bien encore
hosts allow = 192.168.0. 127.
Il faut noter que l’on ne termine jamais l’adresse réseau par 0
Si nous voulons rendre accessible le serveur à l’adresse IP 10.0.0.1 nous ferons
hosts allow = 10.0.0.1
hosts deny : Ce paramètre permet de définir les clients adresses IP et/ou réseaux qui n’auront pas accès à notre serveur. Il fonctionne de la même manière que hosts allow.
log file : Ce paramètre permet de spécifier le fichier dans lequel seront enregistrés les logs liés aux évènements clients
security : Ce paramètre permet de spécifier le modèle de sécurité utilisé par notre serveur. Ce modèle de sécurité peut prendre les valeurs suivantes
share : ce modèle de sécurité dit « de partage » est lié à la ressource partagée. Dans ce cas, un mot de passe est associé à chaque partage (On tend à ne plus s’en servir) ;
user : celui-ci est lié à l’utilisateur et à son authentification. Ici pour accéder au partage l’utilisateur doit s’authentifier avec son nom d’utilisateur et son mot de passe Samba (C’est la sécurité qu’on met en place le plus souvent) ;
server : le mécanisme d’authentification est délégué à un autre serveur ;
domain : le mécanisme d’authentification est toujours délégué à un autre serveur mais dans ce cas-ci notre serveur Samba doit être membre du domaine ;
ads : le mécanisme d’authentification est réalisé par un serveur Active Directory
passdb backend: Ce paramètre spécifie le moyen de stockage des noms d’utilisateurs et des mots de passe. Par défaut, ce paramètre prend la valeur tdbsam (Trivial Database) qui indique que les identifiants des utilisateurs sont stockés dans la base de données Trivial. Ce moyen de stockage limite le nombre d’utilisateurs à 250. Pour avoir plus d’utilisateurs, on devra passer à la valeur ldapsam. Cette valeur indique que dans ce cas, les identifiants des utilisateurs seront stockés dans une base LDAP.
En dehors de ces paramètres, il en existe plusieurs autres que nous pouvons définir ou rencontrer dans la partie [global]. Ils correspondent à des options de personnalisation plus avancées de notre serveur Samba.
*La partie [homes]
Comme on l’avait dit précédemment, cette partie concerne le partage des répertoires personnels des utilisateurs. Le nom « homes » donné à ce partage ne doit être en aucun cas utilisé pour un autre partage ni modifié
comment : ce paramètre permet d’afficher un commentaire à propos du partage dans l’explorateur de fichiers
browseable : ce paramètre permet d’afficher le partage dans le voisinage réseau. Il peut prendre les valeurs yes ou no. Ainsi, nous pouvons rendre visible ou non notre partage.
writable : ce paramètre permet de définir si le partage sera accessible en écriture ou en lecture seule. Il peut prendre les valeurs yes ou no
Si nous avons autorisé le partage des répertoires personnels dans notre fichier de configuration, tous les utilisateurs verront le même partage homes mais son contenu sera propre à chaque utilisateur. En effet, selon l’utilisateur qui s’authentifie ce sera son répertoire personnel.
*La partie [printers]
comment : ce paramètre permet d’afficher un commentaire à propos du partage dans l’explorateur de fichiers
browseable : ce paramètre permet d’afficher le partage dans le voisinage réseau. Il peut prendre les valeurs yes ou no. Ainsi, nous pouvons rendre visible ou non notre partage.
writable : ce paramètre permet de définir si le partage sera accessible en écriture ou en lecture seule. Il peut prendre les valeurs yes ou no
guest ok : ce paramètre permet de définir un accès invité au partage. Par défaut, sa valeur est no mais il peut aussi prendre la valeur yes. Si jamais, vous décidez de mettre cette valeur en yes, sachez que vous aurez des paramètres supplémentaires à ajouter…
printable : ce paramètre permet de spécifier si oui ou non on peut se servir de notre imprimante pour imprimer. On le garde par défaut à yes. Il peut tout à fait prendre la valeur no mais je ne vois pas l’intérêt de partager une imprimante et de bloquer l’impression aux utilisateurs.
*La partie [print$]
Ici nous regrouperons les pilotes requis pour nos imprimantes
comment : ce paramètre permet d’afficher un commentaire à propos du partage dans l’explorateur de fichiers
browseable: ce paramètre permet d’afficher le partage dans le voisinage réseau. Il peut prendre les valeurs yes ou no. Ainsi, nous pouvons rendre visible ou non notre partage.
writable : ce paramètre permet de définir si le partage sera accessible en écriture ou en lecture seule. Il peut prendre les valeurs yes ou no
path : ce paramètre donne le chemin absolu du répertoire à partager sur le réseau. Ici notre répertoire contiendra donc nos pilotes à installer
En dehors de ces 4 grandes parties , nous pouvons déclarer nos propres partages dans ce fichier de configuration en suivant la syntaxe suivante :
[nom_du_partage]
paramètre = valeur
Toutefois avant de créer un partage personnalisé, il convient que nous nous posions les questions qu’il faut notamment : Qu’est-ce que je veux partager ? Quel est le chemin absolu de mon répertoire à partager? Est-ce que mon partage sera visible dans l’explorateur Windows ? Qui pourra y avoir accès ? Est-ce que les utilisateurs pourront modifier le contenu de mon partage et pourront-ils y ajouter du contenu ? Etc …