Samba

Lorsque vous utilisez un réseau hétérogène composé de machines Linux, Win95/98 et NT, il vous est nécessaire de pouvoir partager et utiliser des ressources entre les postes. Samba est un jeu d'utilitaires permettant d'accéder à tous les services fournis par NetBIOS. Vous pourrez ainsi partager les arborescence de fichiers, les imprimantes et passer des messages à travers tout le réseau. En clair, Samba est l'interprète qui fait parler UNIX en langue Microsoft.

 

1ere partie : la théorie

Samba est distribué sous licence GNU GPL. Il utilise le jeu de commandes SMB (Server Message Block) provenant de NetBIOS (Network Basic Input/Output system). A l'heure où ces lignes sont écrites, la version 2.0.0 vient juste d'être mise à disposition sur le site www.samba.org. SMB a été mis au point conjointement par Microsoft, Intel et IBM. Il s'agit d'un LAN Manager pour TCP/IP.

PRINCIPE

SMB fonctionne en architecture client/serveur. En clair, le client (esclave) demande et le serveur (maître) renvoi une réponse. Il est important de savoir qu'une machine peut-être, à la fois, cliente et serveur.

Sur la base d'un réseau TCP/IP, les clients se connectent au serveur en utilisant NetBIOS. Ensuite, ils peuvent envoyer des commandes SMB (demandes) pour recevoir les informations requises. Il existe plusieurs dialectes dans le langage de commande SMB, parmi lesquels on retrouve :

 
Variante SMB Nom du protocole

PC Network Program 1.0 (PC LAN 1.0)

Microsoft Networks 1.03

Microsoft Networks 3.0

LANMAN 1.0

DOS LM1.2X002

LM1.2X002

DOS LANMAN2.1

LANMAN2.1

Windows for Workgroups 3.1a

NT LM 0.12 NT

Samba NT LAN

CIFS 1.0 NT

Core Protocol

Core Plus Protocol

DOS LAN Manager

LAN Manager 1.0

LAN Manager 2.0

LAN Manager 2.0

LAN Manager 2.1

LAN Manager 2.1

LAN Manager 2.1 ?

LAN Manager 1.0 ?

Manager 1.0 ?

LAN Manager 1.0

Lorsqu'une connexion est établie, le client et le serveur négocient un dialecte commun. Core Protocol est compris par toutes les machines. C'est donc celui-ci qui sera utilisé en cas d'échec de la négociation.

BESTIAIRE

NetBIOS : SMB utilise NetBIOS. Il s'agit historiquement du premier protocole réseau utilisé pour partager des fichiers entre micros. Il a été conçu par IBM et a trouvé sa première utilisation avec Windows for Worksgroup de Microsoft. NetBIOS existe sur trames 802.3 (natif) ou encapsulé (enrobé/embalé) dans les trames TCP/IP comme dans le cas de Samba.

Le protocole utilise un fonctionnement peu courant, où chaque machine possède un nom et tient à jour une table avec les noms et les adresses des autres machines. La couche ISO/OSI N°3 (réseau) n'étant pas utilisé, le protocole n'est pas routable. Il faut donc utiliser la diffusion broacasts TCP/IP dans le cas d'une encapsulation.

Domaine : Pour regrouper les utilisateurs postes de travail, on utilise un domaine. Un domaine est une entité logique. Elle n'a pas d'existence physique en terme de réseau. Le domaine entier est désigné par un nom. Celui-ci sera unique pour toutes les machines du domaine.

PDC ou serveur primaire : Il s'agit d'un serveur assurant la gestion de la table globale des utilisateurs. Les autres machines du domaine le consultent pour mettre à jour leur propre table.

DBC ou serveur backup : C'est un serveur primaire de secours. En cas de problème, il deviendra serveur primaire. Sa tâche est donc de conserver (à jour) une copie de la base des utilisateurs (table).

Serveur membre : Il s'agit d'un serveur, dans le sens où il tient à jour sa copie de la base des utilisateurs. La différence provient du fait qu'il ne peut pas remplacer le serveur primaire.

Ressource IPC : LAN Manager peut supporter les applications dites “réparties”. Une ressource spéciale IPC$ existe, permettant d'utiliser la communication inter-processus .

Nom de partage : Chaque ressource porte un nom unique sur chaque serveur. Attention, s'il existe plusieurs serveurs, il faut utiliser le :

Nom réseau : Le nom complet d'une ressource est composé du nom du serveur et du nom de la ressource. On parle alors du nom réseau de la ressource. Exemple : \\Gravage\cgrav est la ressource cgrav de la machine Gravage.

LA CONFIGURATION DE SAMBA

Un seul fichier de configuration permet le contrôle de Samba. Il se nomme smb.conf et est placé dans le répertoire /usr/local/samba/lib ou dans /etc.

Le fichier est structuré en sections pour en faciliter la lecture.

Chaque section, débute avec son nom entre crochets [] et se termine avec le début d'une autre section ou la fin du fichier.

Les lignes de commentaire débutent avec le symbole # (dièse) ou ; (point-virgule).

Dans chaque section, des valeurs sont attribuées à des paramètres avec la syntaxe paramètre=valeur. De manière générale, les sections sont les services et le contenu de la section représente les paramètres ou les propriétés de ce service.

Cependant, trois sections sont utilisées de manière différente :

[global] définit les paramètres pour l'ensemble du

serveur.

[homes] permet à un utilisateur de la machine Linux d'accéder à son répertoire de travail depuis un poste sous Windows.

[printers] définit les paramètres en rapport avec la gestion des imprimantes pour l'ensemble du serveur.

UTILISATION DE SAMBA

L'utilitaire smbclient est inclus dans le package samba. Celui-ci permet de ce connecter à une ressource SMB, qu'il s'agisse d'un lecteur, d'une imprimante ou d'une boîte à lettres.

Première étape : lister les ressources disponibles sur le serveur distant :

smbclient -L nomduserveur

nomduserveur est le nom NetBIOS offrant des ressources SMB.

Ensuite, il est possible d'accéder à une ressource avec la syntaxe suivante :

smbclient \\\\nomduserveur\\nomressource -U nomutilisateur

Il vous sera alors demandé un mot de passe qui correspond à celui enregistré dans Windows. A cet instant, vous serez connecté à la ressource SMB. Vous pourrez utiliser cette connexion un peu à la manière ftp pour vous déplacer dans les répertoires, envoyer et récupérer des fichiers.

Une autre solution, plus agréable, consiste à utiliser smbmount qui permet de monter des ressources SMB de la même manière que NFS ou votre lecteur de CDROM.

Pour procéder à la manipulation, il vous faudra inclure le support du système de fichiers SMB dans la configuration de votre kernel. Ensuite, récupérez les utilitaires smbfs sur un miroir sunsite comme : ftp.lip6.fr/pub/linux/sunsite/system/filesystem/smbfs/.

La commande smbmount s'utilise avec la syntaxe suivante :

smbmount //nomduserveur/ressource /pointdemontage

Pour les impressions, les choses se passent de la même manière avec smbclient :

smbclient \\\\nomduserveur\\nomimprimante -P

puis,

print fichier

Vous pouvez ensuite surveiller la file d'impression avec la commande queue ou quitter smbclient avec exit.

Voilà la base de samba, le mois prochain nous étudierons le fichier de configuration smb.conf en détail. En attendant, jetez un oeil sur la man page de smb.conf pour expérimenter cela de votre coté.

 

Le site FTP de Microsoft : indisensable pour avoir les drivers à jour.

 


© Copyright 2000 Diamond Editions/Linux magazine France. - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled "GNU Free Documentation License".