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 :
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 :
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
:
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 :
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/
|