Remplacer un serveur Windows NT/2000 par Linux et SAMBA

ArticleCategory: [Choose a category, do not translate this]

SystemAdministration

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: orhttp://homepage]

original in es Sebastian Sasías

es to en Sebastian Sasías

en to fr Jean-Fran�ois Messier

AboutTheAuthor:[A small biography about the author]

Il utilise Linux depuis plusieurs ann�es comme outil de d�veloppement de solutions technologiques.
Il travaille sur le contr�le d'�quipement avec Linux : traitement de signal, communication et s�curit� de r�seaux.
Professionel en Electronique - Automatisation et en Informatique.
Il a contribu� au d�veloppement de logiciel libre sous GNU/GPL.

Abstract:[Here you write a little summary]

Cet article ajoute des aspects pr�sent�s au pr�alable dans d'autres articles de LinuxFocus sur SAMBA, et sur son usage pour partager des ressources dans un environnement h�t�rog�ne Unix-Windows. Il se concentre plus pr�cis�ment sur l'utilisation de Linux avec SAMBA pour fournir des services, habituellement fournis par les syst�mes Windows.
Ce n'est pas seulement une d�monstration de la puissance et de la souplesse de Linux, mais aussi un moyen d'en pr�senter les impacts �conomiques importants tels que :

Un serveur Linux avec SAMBA bien configur� peut se substituer � un serveur Windows NT/2000, peut facilement partager des r�pertoires, fournir un service Active Directory (ADS) mais peut aussi fonctionner en tant que contr�leur primaire de domaine (PDC), fournissant les services d'authentification avec les clients Windows 2000/NT/98/95, partageant les ressources (r�pertoires et imprimantes) et g�rant les sessions utilisateur.
Cet article se concentre particuli�rement sur ces aspects.

Comme r�sultat, dans de nombreux contextes o� c'est la fonction primaire d'un serveur Windows, un serveur Linux avec SAMBA peut ex�cuter toutes les fonctions d'un serveur bas� sur le syst�me de Microsoft, sans changement sur les ordinateurs clients.
Pour les diff�rentes �tapes abord�es, nous consid�rons que : SAMBA est d�j� install� et fonctionne correctement sur la machine qui sera le serveur. Le lecteur conna�t les concepts de base des serveurs Linux et Windows.

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

Etude de cas

Consid�rons un serveur Linux/SAMBA fonctionnant en tant que PDC, o� chaque utilisateur authentifi� a aussi acc�s �deux r�pertoires partag�s sur le serveur, un dans une zone publique, et l'autre dans une zone priv�e. Au cours de cet article, il sera fr�quent d'acc�der � une zone priv�e, le r�pertoire personnel de chaque utilisateur.



D�tails � consid�rer:

Nom du serveur Linux/Samba NetBIOS :SMBServeur
Nom du domaine Windows (workgroup): LEDOMAINE
Partition priv�e de chaque usager: H: (Windows) => /home/ (Linux server)
Partition publique : P: (Windows) => /home/public



La figure 1 montre un simple r�seau avec des ordinateurs clients fonctionnant sous Windows qui utilisent des ressources et des services d'un serveur Windows NT/2000. Ce serveur peut �tre remplac� par un serveur Linux/SAMBA.

Network diagram
Fig. 1 – PDC et serveur de fichiers sous Windows

Configuration

Etapes � suivre:

1) Cr�er les utilisateurs qui devront �tre authentifi�s sur le serveur PDC (Linux et Samba).
Utiliser les commandes adduser,useradd ou userconf, ou d'autres utilitaires pour la gestion d'utilisateurs avec interface graphique (Webmin, Linuxconf, Yast, etc.).

Assurez-vous que les usagers ont seulement acc�s aux services de Linux/SAMBA (si vous le souhaitez), ce qui implique qu'ils n'ont pas acc�s au shell Linux. A cette fin, ils auront /dev/null comme r�pertoire personnel et /bin/false comme shell.

2) Convertissez les usagers Unix en usagers Linux/Samba/Windows, en cr�ant le fichier smbpasswd.
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

Une autre m�thode consiste �ex�cuter les commandes de SAMBA pour la cr�ation d'utilisateurs et la d�finition de mots de passe.

smbadduser
smbpasswd

Ces commandes fonctionnent de fa�on similaire aux commandes adduser et passwd.

3) Editez le fichier de configuration Sambe (smb.conf), en vous assurant d'inclure ou de supprimer les commentaires des options ci-dessous:

netbios name = SMBServer
workgroup = THEDOMAIN
server string = Linux Samba NT Server
log file = /var/log/samba/%m.log
max log file = 0
security = user
encrypt password = yes
smb password file = /etc/samba/smbpasswd
ssl CA certificate = /usr/share/ssl/.... (retirer commentaire)
socket options = (retirer commentaire)
local master = yes
preferred master = yes
domain master = yes
domain logons = yes
logon script = logon.bat
wins support = yes


Note:
Pour un login sp�cifique �chaque utilisateur, remplacer le script de logon par %U.bat, ainsi, chaque utilisateur a un "script de logon" avec son nom d'utilisateur; %u peut aussi �tre utilis�. Si vous souhaitez g�rer le groupe auquel l'utilisateur appartient, vous pouvez utiliser %g ou %G. La signification de ces param�tres ou d'autres se trouvent dans le manuel.(man smb.conf)


4) Cr�ez les ressources partag�es
Editez le fichier smb.conf et commentez tous les exemples de partages, en faisant les modifications n�cessaires pour ajouter les informations suivantes:

[netlogon]
comment = Initialization Scripts
path = /home/netlogon
read only = yes
guest ok = yes
browseable = no

[home]
comment = User Directory
path = /home/%U
browseable = yes
writable = yes

[public]
comment = Public Directory
path = /home/public
browseable = yes
writable = yes
guest ok = yes
create mask = 0777
force create mask = 0777


Sauvegardez le fichier smb.conf

5) Vouz pouvez v�rifier la conformit� de smb.conf en utiliant la commande:

testparm

Cette commande analyse le fichier smb.conf et rapporte les erreurs qui y sont trouv�es.

6) Cr�ez les r�pertoires /home/netlogon et /home/public avec les permissions 0754(netlogon) and 0777 (public).

7) Editez le fichier de script Logon: logon.bat.
Important : Utilisez un �diteur de texte pour Windows/DOS (comme Notepad ou Edit) pour cr�er le fichier logon.bat (afin de le sauvegarder dans un format texte MS); vous pouvez aussi utiliser un �diteur sous Linux, et convertir au bon format de texte. Par exemple, vim, a une commande ":set textmode" permettant d'obtenir un fichier avec les fins de lignes MS.

net time \\SMBServer /y (vous pouvez aussi utiliser: /yes au lieu de /y )
net use H: \\SMBServer\home -y
(vous pouvez aussi utiliser: /yes ou /y au lieu de -y )
net use P: \\SMBServer\public -y

8) Ins�rez l'information SMBServer dans le fichier lmhosts
Editez le fichier /etc/samba/lmhosts (ou /etc/lmhosts) et ajoutez-y une ligne avec l'information de votre SMBServer :

SMBServeur, i.e: 192.168.0.10 SMBServer

9) D�marrez/red�marrez le d�mon Samba (smbd)

service smb restart

Si �a ne fonctionne pas correctement sur votre distro Linux, vous pouvez utiliser :
ps -auxgx | grep smb
kill -9 <# ID de processus de smb>
smbd

10) Utilisez smbclient pour v�rifier que la configuration indiqu�e pr�c�demment fonctionne correctement.

smbclient -L //SMBServeur

Si "Password:" est affich�, pressez "Enter" et les ressources partag�es du serveur seront affich�es.

11) Effectuez un login de client, � partir d'une autre machine Windows 95/98/NT, dans le domaine LEDOMAINE, avec un nom d'utilisateur Linux/Samba cr�� pr�alablement (voir �tapes 1 et 2).

Sous Windows 95/98/ME, l'ordinateur client devrait �tre configur� comme suit:

D�marrer => Param�tres => Panneau de contr�le => R�seau => Client pour R�seaux Microsoft => Propri�t�s.

Une m�thode tr�s similaire peut �tre utilis�e pour les clients Windows NT/2000 (Workstation/Professional), bien que la s�quence puisse �tre diff�rente.

Choisissez l'option "D�marrer une session de domaine Windows NT/2000" et tapez ce domaine: LEDOMAINE (WORKGROUP).

Exemple de fichier de configuration

Voici une configuration compl�te de Samba, qui a �t� test�e avec plusieurs distributions de Linux. Le lecteur peut la modifier pour obtenir les r�sultats escompt�s pr�sent�s dans cet article. Chaque instruction est comment�e.

Un dernier conseil pour ceux qui d�sirent une configuration rapide de Samba. Vous pouvez installer Webmin et/ou SWAT pour configurer d'une fa�on plus conviviale.

#============================================================#
# /etc/smb.conf
#------------------------------------------------------------------------------------------------------------#
# Fichier de configuration principal de SAMBA
# S�lectionnez les param�tres selon vos besoins
#------------------------------------------------------------------------------------------------------------#
# Test� avec les syst�mes: Solaris et les distributions Linux:
# RedHat 6.0, 7.0 y 7.1
# Solaris 7
# Slackware 7.x
# Mandrake 6.1, 7.0 y 8.1
# SuSe 7.2
#------------------------------------------------------------------------------------------------------------#
# derniers changements: 08/12/2001
# Sebastian Sasias - sasias(at)linuxmail(dot)org
# Commentaires traduits de l'anglais
# Note du traducteur: Les titres de param�tres avant "=" doivent rester tels quel. #============================================================#
#
# Ce fichier a �t� d�velopp� selon les sp�cifications du fichier
# SAMBA, du manuel smb.conf(5)
#
# NOTE: Apr�s avoir �dit� ce fichier, testez-le avec
# la commande "testparm"
#
#======================== Options Globales =======================#
#
# Configuration G�n�rale
#
[global]
#.......................................................................................................................................#
# workgroup = Domaine-NT ou nom-de-WorkGroup, ie: LEDOMAINE
# Domaine PDC
workgroup = LEDOMAINE
#.......................................................................................................................................#
# Nom annonc� aux autres ordinateurs
netbios name = SMBServeur
#.......................................................................................................................................#
# Le commentaire suivant appara�tra dans le "Voisinage r�seau"
server string = Serveur de test SAMBA
#.......................................................................................................................................#
# Cette ligne est importante pour des raisons de s�curit�
# pour permettre la connexion � des ordinateurs sp�cifiques du r�seau local.
# Par exemple, ici, l'acc�s est permis aux ordinateurs connect�s au r�seau 192.168.8.0
# Classe C commune) et � partir de l'interface "loopback".
# Pour plus de d�tails, lire la page man du fichier smb.conf
# Ex. : les ressources partag�es ne peuvent �tre utilis�es que par des ordinateurs dont l'adresse IP commence
# par 192.168.8 et par 127 (en commentaires sur la ligne suivante)
; hosts allow = 192.168.8. 127.
#.......................................................................................................................................#
# Pour charger une liste d'imprimantes au lieu de les
# �num�rer, utilisez:
; load printers = yes
#.......................................................................................................................................#
# Remplacer le chemin du fichier printcap :
; printcap name = /etc/printcap
#.......................................................................................................................................#
# Sous SystemV les propri�t�s de noms printcap pour lpstat doivent permettre
# d'obtenir automatiquement une liste d'imprimantes � partir du spool
# de SystemV (Belle r�p�tition :-)
; printcap name = lpstat
#.......................................................................................................................................#
# Il ne devrait pas �tre n�cessaire de sp�cifier le type de syst�me d'impression � moins qu'il ne soit pas standard
# Les syst�mes actuellement support�s sont:
# bsd, sysv, plp, lprng, aix, hpux, qnx
; printing = bsd
#.......................................................................................................................................#
# D�commentez pour obtenir un compte d'invit� (guest)
# vous devez l'ajouter � /etc/passwd sinon, l'utilisateur "nobody" sera utilis�
; guest account = pcguest
#.......................................................................................................................................#
# Pour obliger l'utilisation d'un fichier log distinct pour� chaque ordinateur
# se connectant au serveur SAMBA
log file = /var/log/samba/log.%m
#.......................................................................................................................................#
# Pour limiter la taille de fichiers log (en Ko).
max log size = 50
#.......................................................................................................................................#
# Voir security_level.txt pour plus de d�tails
# Indique la m�thode de validation des mots de passe
# User level security = chaque utilisateur avec son mot de passe (smbpasswd)
security = user
#.......................................................................................................................................#
# Si security = server la validation sera faite � partir d'un autre serveur
# Utiliser la valeur "password server" seulement avec security = server
# password server = [Adresse IP du serveur d'authentification].
; password server = <Serveur-NT>
#.......................................................................................................................................#
# Pour crypter les mots de passe. Veuillez lire ENCRYPTION.TXT,
# Win95.txt et WinNT.txt dans la documentation Samba.
# N'activez cette option que si vous avez suffisamment de connaissances sur cette propri�t�.
# Information: Win95, Win98 et WinNT envoient des mots de passe crypt�s.
encrypt passwords = yes
#.......................................................................................................................................#
# Les lignes suivantes servent �personnaliser less configurations
# de chaque ordinateur sur le r�seau. %m est remplac� par le nom
# NetBios de la machine qui se connecte.
; include = /usr/local/samba/lib/smb.conf.%m
#.......................................................................................................................................#
# La documentation et certains "trucs" disent
# que l'option suivante donne de bonnes performances. Essayez !

# Voir speed.txt et les pages de manuel pour plus ample information
socket options = TCP_NODELAY
#.......................................................................................................................................#
# Configuration Samba pour utiliser plusieurs cartes r�seau
# Pour pouvoir utiliser plusieurs cartes r�seaux,
# elles doivent �tre list�es ici. Comme dans l'exemple ci-dessous.
# Lire les pages de manuel pour plus de d�tails.
; interfaces = 192.168.8.2/24 192.168.12.2/24
#.......................................................................................................................................#
# Options de contr�le de l'explorateur:
# D�finir "local master = no" pour que Samba ne soit pas le ma�tre explorateur du r�seau.
local master = yes
#.......................................................................................................................................#
# "OS Level" indique la pr�c�dence du serveur dans le choix du
# master browser. La valeur par d�faut est commun�ment suffisante
; os level = 33
#.......................................................................................................................................#
# Domain Master d�finit Samba comme ma�tre explorateur de domaine.
# Ceci permet �Samba d'agir au titre de contr�leur de domaine et aussi de "voir"
# les ordinateurs des diff�rents sous-r�seaux TCP/IP

# Ne l'utilisez pas si vous avez d�j� un contr�leur de domaine NT/2000 qui effectue cette t�che.
domain master = yes
#.......................................................................................................................................#
# "Preferred Master" oblige Samba �choisir un explorateur local par d�faut au d�marrage
# et augmente l�g�rement ses chances de le devenir.
# Si on a plus d'un serveur, "Preferred Master" deviendra le "favori"
#quand les clients chercheront un serveur dans la liste
preferred master = yes
#.......................................................................................................................................#
# A n'utiliser que s'il y a d�j� un serveur NT/2000 fonctionnant comme PDC.
# (primary domain controller).
; domain controller = <Serveur-de-domaine-NT>
#.......................................................................................................................................#
# Pour d�finir Samba comme serveur de logon pour le domaine
# pour les stations Windows 9x/Me.
domain logons = yes
#.......................................................................................................................................#
# Si vous utilisez "domain logons" il vous faut un script de logon
# pour chaque ordinateur ou chaque utilisateur

; logon script = %m.bat

# Pour un script sp�cifique �chaque utilisateur :
; logon script = %U.bat
#.......................................................................................................................................#
# O� stocker les profils itin�rants (seulement pour Win95 et WinNT)
# %L remplace le nom NetBIOS du serveur, %U remplace le nom de l'utilisateur

# Il faut "d�commenter" le partage [Profiles] ci-dessous
; logon path = \\%L\Profiles\%U
#.......................................................................................................................................#
# Support de Windows Internet Name Service (WINS):
# WINS Support - indique � NMBD d'activer son serveur WINS.
# WINS protocol, convertit les noms de machines en adresses IP,
# il fonctionne comme le DNS de TCP/IP.
; wins support = yes
#.......................................................................................................................................#
# WINS Server - indique aux composants NMBD de Samba d'agir comme client WINS
# SAMBA peut �tre serveur WINS ou client WINS,
# mais pas les deux en m�me temps.
# Ici, on doit sp�cifier le serveur WINS
; wins server = 192.168.8.1
#.......................................................................................................................................#
# WINS proxy - Demande �Samba de r�pondre aux requ�tes de r�solution de noms pour les clients non WINS
# On doit avoir au moins un serveur WINS sur le r�seau pour que cette option fonctionne.
# La valeur par d�faut est NO.
; wins proxy = yes
#.......................................................................................................................................#
# DNS Proxy - demande � Samba de r�soudre les noms NetBIOS ou pas, par le nslookup de DNS.
# La valeur par d�faut pour la version 1.9.17 est "yes",
# qui a chang� depuis la version 1.9.18 en "no".

# Ici nous pouvons indiquer � SAMBA si la r�solution de nom se fera par DNS ou pas.
# dns proxy = yes
# dns proxy = no (la r�solution de nom se fera par lmhosts )
#........................................................................................................................................#
# Si "logon drive" n'est pas sp�cifi�, Z: sera automatiquement "mont�"
logon drive = P:
#.......................................................................................................................................#
#Quand un login se produit, ce script est �x�cut�: /etc/samba/netlogon/SAMBA.BAT
# et "monte" les unit�s de disques par "net use"
logon script = SAMBA.BAT

#====================== D�finitions de partages ========================#

# R�pertoire personnel pour chaque utilisateur
# Unit� P:

[homes]
comment = R�pertoires personnel
browseable = no
writable = yes
readonly = no
force create mode = 0700
create mode = 0700
force directory mode = 0700
directory mode = 700

#------------------------------------------------------------------------------------------------------------#
# R�pertoire des fichiers temporaires
# Unit� T:

[tmp]
comment = Fichiers temporaires
path = /tmp
readonly = no
public = yes
writable = yes
force create mode = 0777
create mode = 0777
force directory mode = 0777
directory mode = 0777

#------------------------------------------------------------------------------------------------------------#
# CD-ROM du serveur
# Unit� L:

[cdrom]
comment = CD-ROM
path = /mnt/cdrom
public = yes
writable = no

#------------------------------------------------------------------------------------------------------------#
# Groupe, correspondant � /home/grp.name_group
# /home/user/group est un lien vers� /home/grp.name_group
# grp.name_group a les permissions 770
# Unit� G:

[group]
comment = Directory of Group
path = /home/%u/group
writable = yes
readonly = no
force create mode = 0770
create mode = 0770
force directory mode = 0770
directory mode = 0770

#------------------------------------------------------------------------------------------------------------#
# Cette unit� sert aux applications et installations de logiciels,
# logiciels corporatifs, etc.
# Les permissions de /net et /net/install sont 755, i.e: ici, root en est le propri�taire
# Unit� N:

[net]
comment = Directory Net
path = /net
writable = yes
readonly = no
force create mode = 0750
create mode = 0750
force directory mode = 0750
directory mode = 0750

#------------------------------------------------------------------------------------------------------------#
[netlogon]
comment = Service d'acc�s au r�seau
path = /etc/samba/netlogon
guest ok = yes
writable = no
locking = no
public = no
browseable = yes
share modes = no

#------------------------------------------------------------------------------------------------------------#

#============================================================#

Consid�rations Finales

SAMBA ainsi que d'autres outils pour Linux �voluent continuellement, et il se peut donc que certains d�tails pr�sent�s ici ne soient plus d'actualit�. En fait, au cours de l'�volution de SAMBA, certains noms de param�tres dans les fichiers de configuration ont l�g�rement chang�, avec comme objectif d'obtenir une meilleure structure.

Si pendant la configuration de SAMBA vous obtenez des messages d'erreurs concernant des param�tres inconnus, vous avez deux solutions au probl�me :

R�f�rences: Bibliographie et outils

Copyright Notes

SAMBA is a product distributed under GPL Licence
Linux is a registered mark of Linus Torvald.
Solaris is operating system and registered mark of Sun Microsystems.
MS Windows is operating system and registered mark of Microsoft.
The use of SAMBA implies big savings on licence fees to Microsoft.