recherche

 

SAMBA : Les clients Linux et Netbios (source: VIA/ECP)

 


Le voisinage réseau Windows sous Linux


Table des matières

Samba côté serveur

Installation des packages

Configuration

Samba côté client

en console

en mode graphique


L'objectif de ce chapitre est d'être capable de surfer sur le voisinage réseau Windows en console (c'est l'aspect client), et de pouvoir mettre en partage des fichiers (c'est l'aspect serveur). Pour cela, on va utiliser les outils développés par le projet GPL Samba.

Samba côté serveur

Installation des packages

Il suffit d'installer le package samba, qui va installer par dépendance le package samba-common qui sert à la fois au serveur et au client :


# apt-get install samba

Configuration

Dès l'installation, il te demande si tu veux configurer Samba avec Debconf : répond Non. En effet, je te propose de télécharger un fichier de configuration que tu vas personnaliser.

Le fichier de configuration de Samba est /etc/samba/smb.conf. Ce fichier a une petite partie commune au client et au serveur, le reste étant spécifique au serveur. Copie mon fichier de configuration d'exemple dans le répertoire /etc/samba :

# cp ~/config/smb.conf /etc/samba/

Edite le fichier et personnalise les paramètres en lisant les instructions en commentaire. Une fois que le fichier est bien personnalisé, vérifie s'il est bien valide avec le programme testparm :

# testparm

Si le fichier de configuration est bien valide, tu peux alors demander à Samba de relire son fichier de configuration :

# /etc/init.d/samba reload

Reloading /etc/samba/smb.conf (smbd only).


Il n'y a pas de processus samba qui tourne en tâche de fond pour le serveur, mais deux processus : smbd qui s'occupe des partages et de l'autentification, et nmbd qui s'occupe de la résolution des noms NetBIOS.

Samba côté client

en console

Installation du client en mode texte

Le client pour le voisinage réseau Windows en console s'appelle smbclient :

# apt-get install smbclient

Utiliser smbclient

Voici une liste des commandes les plus utiles (à chaque fois il te demandera de taper ton mot de passe pour le domaine Windows) :

Pour avoir la liste des machines du voisinage réseau :

% smbclient -L nom_DNS_ou_NetBIOS_du_contrôleur_de_domaine -U login_Windows

Pour voir les partages de l'ordinateur ordi1 :

% smbclient -L ordi1 -U login_Windows

Pour télécharger le fichier fichier1.txt disponible dans le partage partage1 de l'ordinateur ordi1 :


% smbclient //ordi1/partage1 -U login_Windows

smb: \> ls

smb: \> cd répertoire_distant

smb: \> lcd répertoire_local

smb: \> get fichier1.txt

smb: \> quit


Pour imprimer le fichier PostScript fichier2.ps sur l'imprimante printer2 partagée par l'ordinateur ordi2 :


% smbclient //ordi2/printer2 -U login_Windows

smb: \> print fichier2.ps

smb: \> quit


Pour déposer le fichier fichier3.txt sur le partage incoming partagée en écriture par l'ordinateur ordi3 :


% smbclient //ordi3/incoming -U login_Windows

smb: \> put fichier3.txt

smb: \> quit

Pour changer son mot de passe du voisinage réseau Windows :


% smbpasswd -r nom_DNS_ou_NetBIOS_du_contrôleur_de_domaine -U login_Windows


Monter un partage du voisinage réseau :

Tout d'abord, il faut avoir compilé le module smbfs nécessaires pour le noyau (cf Configuration du noyau Linux). Ensuite, il faut installer le package smbfs :


# apt-get install smbfs

Pour monter le partage partage1 de l'ordinateur ordi1 dans le répertoire /mnt/test déjà existant :


# mount -t smbfs //ordi1/partage1 /mnt/test -o username=login_Windows

Quand tu n'en as plus besoin, tu peux démonter le système de fichiers :


# umount /mnt/test

en mode graphique

Installation et configuration

Installe le package xsmbrowser :

# apt-get install xsmbrowser smbclient

Pour configurer xsmbrowser, il faut d'abord le lancer avec la commande du même nom. Ensuite, clique sur le bouton Network avec la croix verte :

Figure 54-1. Premier écran de configuration de xsmbrowser

Name : donne un nom au réseau que tu es entrain de configurer,

Type : sélectionne Wins si tu appartiens à un vrai domaine Windows,

Primary Wins : rentre le nom DNS ou l'adresse IP du contrôleur de domaine,

Secondary Wins : rentre le nom DNS ou l'adresse IP de l'éventuel deuxième contrôleur de domaine,

Workgroup : tape le nom du domaine ou du groupe de travail Windows.

Ensuite, clique sur Advanced Options :

Figure 54-2. Deuxième écran de configuration de xsmbrowser

Username and Password : rentre ton login Windows et le mot de passe correspondant,

Computer List : entre le nom NetBIOS et l'adresse IP (ou le nom DNS) du contrôleur de domaine,

Workgroup Behavior : laisse la case Static Workgroup cochée.

Se servir de xsmbrowser

Clique sur l'icône portant le nom du réseau que tu as configuré, et tu vois apparaître la liste des ordinateurs du voisinage réseau.

Figure 54-3. xsmbrowser

Le reste est intuitif : pour faire des transferts de fichier, positionne-toi sur le répertoire dans lequel tu veux télécharger ou déposer des fichiers et clique sur Transfer.



Station Linux, cliente d'un serveur Windows9x


Un client SMB pour Linux est aussi inclus dans Samba.
On peut alors à l'inverse connecter un client Linux à un "serveur" Windows. Le client pourra alors monter une ressource Windows déclarée partagée.

Montage de répertoire Windows

La commande smbmount permet de monter (comme par NFS) des répertoires distants d'une machine Windows9x, sur l'arborescence Linux, et ainsi de disposer des fichiers.

Pour monter la ressource //PC1/C_PC1 sur le répertoire /mnt/diskc_pc1 du système de fichiers :
smbmount //PC1/C_PC1 /mnt/diskc_pc1
Password : valider.
On parcourt ensuite le répertoire
/mnt/diskc_pc1 comme un dossier local.

S'il y a blocage (faire ctrl-C) et se demander :
Le client Samba connait-il la machine nommée PC1 ?
--> il est nécessaire que le nom de l'hôte (ici PC1) ait été déclaré dans
/etc/hosts
La ressource C_PC1 est-elle déclarée partagée sur le serveur Windows9x ?
--> clic-droit dans l'explorateur sur le disque concerné/partager ../ etc..

Le client Samba respecte le type de partage Windows en lecture seule ou lecture/écriture.
Supposons que C:\temp soit un sous-répertoire du disque C: du serveur WorkGroup PC1
C: est partagé en lecture seule sous le nom de partage C_PC1
C:\temp est partagé en lecture/écriture sous le nom de partage
C_temp_PC1
Monter les ressources :
smbmount //PC1/C_PC1   /mnt/diskc_pc1
smbmount //PC1/C_temp_PC1   /mnt/temp_pc1
Tester :
Transférer des fichiers dans C:\temp
Par exemple, copier
/etc/fstab dans /mnt/diskc_pc1 et dans /mnt/temp_pc1.

Pour partager les fichiers montés en lecture-écriture pour tous, on ajoute le paramètre -f 777

Pour démonter la ressource Windows, utiliser subumount point-montage :
smbumount /mnt/diskc_pc1


Problèmes rencontrés


Pas de visibilité du serveur dans le "voisinage réseau" de la station Win9x

Sur le serveur, les 2 démons smbd et nmbd sont-ils à l'affus ?
---> vérifier avec la commande
/etc/rc.d/init.d/smb status
---> si cela n'est pas encore fait, activer le service
smb au démarrage avec l'utilitaire ntsysv

Sur la station cliente, le protocole NetBios est-il bien activé au-dessus de TCP/IP ?

Visibilité du serveur SMB, mais erreur à la connexion

Problème de connexion sous Windows9x
Une station 98 correctement configurée (domaine MS, NetBios activé) voit le serveur SMB, mais le processus de connexion n'aboutit pas ...
Le problème vient de MS qui a modifié l'authentification des mots de passe. Windows98 les envoie maintenant cryptés alors que par défaut le serveur Samba les attend en clair ..
Il faut donc instaurer une cohérence, soit activer ce cryptage soit intervenir sur la base de registres des stations pour inhiber le crytage.

Marche à suivre pour ne pas crypter les mots de passe

Lancer c:\windows\regedit.exe

Dans la base de registre, se placer dans le rép. HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/VxD/VNETSUP

Menu Edition / Nouveau / valeur DWORD

Une nouvelle entrée est créée, lui donner le nom EnablePlainTextPassword.

Double-cliquer pour l'éditer, et donner la valeur hexadécimale 1.

Fermer et redémarrez la machine .. et çà fonctionne !

On peut aussi exécuter un fichier .reg qui contient

REGEDIT4


[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]

"EnablePlainTextPassword"=dword:00000001

"Serveur pxx non accessible, le réseau est occupé"
Ce message d'erreur a été rencontré sans raisons évidentes.
Bizarrement (?) la connexion a quelquefois été rétablie :

en commentant la ligne hosts allow = 10.194.2.

en activant la ligne interfaces= 10.194.2.100/24 (n° ip du serveur, /24 indiquant le masque de sous-réseau)

Difficulté de résolution des noms Netbios

Le serveur Samba doit pouvoir "résoudre", c'est-à-dire trouver le N° IP correspondant à un nom NetBios envoyé par une station, en quête d'un serveur ...

Lorsqu'on paramétre une station, en effet, on lui donne un nom personnel et un nom de workgroup, pas de nom ni d'adresse IP de serveur ! Il faut aider Samba ! Si on indique rien la recherche s'effectue par broadcast dans le même sous-réseau et apparemment cela ne fonctionne pas toujours bien.

Il est préférable d'indiquer au serveur, dans /etc/smb.conf, une méthode explicite de résolution.

La méthode "host"
Le serveur utilise le nom
NetBios comme nom Linux, et fait appel à un serveur DNS. Par défaut, il s'agit du fichier /etc/hosts.
En cas de problème de connexion d'une station, aller voir et si nécessaire compléter ce fichier.

La méthode "wins"

C'est celle qui semble recommandée ...
Le serveur Samba est configuré pour être aussi
serveur wins. Il enregistre alors les correspondances : nom netbios <--> adresse IP

Sur chaque station de travail, dans voisinage réseau renseigner l'onglet Configuration Wins en indiquant l'adresse IP du serveur.

Dans smb.conf, section [global], décommenter la ligne
wins support = yes
SANS modifier la ligne
wins server = w.x.y.z


Compléments et références

Références

documentation dans /usr/doc/samba-2.0.5/docs/textdocs/, en particulier DIAGNOSIS.txt et ENCRYPTION.txt

pour les courageux, voir le man samba.conf

Le livre Samba, installation et mise en oeuvre, édition O'Reilly (parution août 2000)

La "gazette" Linux

http://fr.samba.org/samba/samba.html

http://samba.linuxbe.org/


 

 dernière modification:   Lundi, 1 Juillet 2002

 Copyright © 2001 formsys - tous droits réservés.