Salut, la semaine derniere je vous disais que je pilote mon reseau de 15 pc
win98 avec samba, dans le fichier joint vous trouverez toutes les
explications necessaires pour realiser une configuration similaire.
Si vous avez des commentaires a faire, contactez moi en perso
[EMAIL PROTECTED]
stephane
A propos :
C'est la premiere fois que je me lance dans la redaction d'un article, donc
soyez indulgents, surtout pour l'orthographe et la grammaire ainsi
que le style :-)
Vous pouvez bien entendu, modifier, ameliorer,distribuer, publier ce document, je vous
demande seulement de m'en tenir au courant
Si vous avez des des questions sur cet article mailez moi
stephane CROSES
[EMAIL PROTECTED]
Fais � Tarnos (France) le 22/10/2002
Configuration de Samba
je vais tenter de vous expliquer comment j'ai configurer samba en tant que controleur
de domaine, qui actuellement sert de serveur de fichier a 15 pc sous windows 98
Ennonce du probl�me :
Je suis "formateur en informatique" dans un centre de formation qui a vocation d'aider
les gens a retrouver du boulot. Nous proposons plusieurs formations dont
un bac pro en scretariat-compta, mais aussi d'autres pour lesquels les stagiaires sont
amen�s a r�aliser des CV et des rapport de stages. Moi, dans tout �a je
donne des cours de windows, word, excel, internet....en gros toute la gamme des
produits microsoft sauf access, j'y pige rien (pour les bases de donnes je ne
jure que par apache-php-mysql).
Le gros probl�me avec tous les stagiaires c'est qu'ils ont de grosses difficult�s pour
comprendre qu'ils faut enregistrer leurs fichiers dans le r�pertoires de
leur groupe, et j'atteins le graal si ils cr�ent un r�pertoire a leur nom dans le
r�pertoire de leur groupe et qu'ils y enregistre leurs fichiers.
Pour palier a ce probl�me, j'avais d�signe un pc de la salle (ordinateur nomme p6) en
tant que serveur de fichier. En fait j'avais modifier le chemin d'acc�s du
r�pertoire "mes documents" de chaque pc vers le r�pertoire "mes documents" du pc p6.
Comme �a quelque soit le pc utilise on retrouvais dans le r�pertoire "mes
documents" les documents fabriques par tout le monde. A l'int�rieur de "mes documents"
se trouve des r�pertoire au nom des groupes : prqmm, bacpro, aqs,
sife.... Chaque stagiaire a pour consigne d'enregistrer ses fichiers dans le
r�pertoire de leur groupe, �a c'est la th�orie. Dans la pratique le stagiaire
moyen fais fichier enregistrer, la boite d'enregistrement apparais, puis appuis
joyeusement sur le bouton enregistrer, sans m�me donner un nom au document
(pourquoi le faire, word en a deja mis un...). Au final tous les fichiers sont
enregistrer dans le r�pertoire "mes documents", avec des fichiers qui portent le
presque tous des noms similaires.
Et biens �videment quand un stagiaire essaye de retrouver un document, 1 fois sur 2
j'ai droit a "monsieur, je retrouve pas mon CV".
Je me suis donc fais la r�flection suivante : ce serais biens si chaque stagiaires
pouvais se connecter aux pc avec un mot de passe commun a tout son groupe,
et que en fonction du login et mot de passe, le r�pertoire "mes documents" ne rende
visible que le contenu du r�pertoire de son groupe. Comme �a m�me si on
enregistre directement dans "mes documents" les donnes seront enregistrer dans le
r�pertoire de son groupe.
C'est la qu'interviens la solution : Samba
Le materiel :
Pour le serveur ce sera un puisant pc : pentium 133, 48 Mo ram-edo, 1 disque 1Go, 1
disque 2 Go, 1 carte r�seau realtek pci combo 10Mb
Pour les logiciels : une mandrake 8.0 traktopel (en fait n'importe quelle distribution
convient)
Dans la salle de cours se trouve 15 pc sous win 98 pour les stagiaires et 1 pc pour le
formateur
il faudra bien entendu que le formateur puisse acc�der a tous les r�pertoires des
stagiaires en se connectant avec son login
L'installation :
Il s'agit d'une installation tr�s classique (je ne la d�taillerais pas ce n'est pas le
but de cet article)
Le partitionnement est le suivant : sur le disque de - 1 Go : 96 Mo de swap, le
reste pour la racine
- 2 Go
: tout pour /home
Les logiciels installes sont - gnome (je sais pour un serveur c'est inutile, mais �a
me permet de r�aliser des manips que je ne sais pas faire
sur la console) Lors de l'installation ne
choisissez pas "se connecter automatiquement a l'interface graphique".
- telnet serveur (ssh est mieux mais je sais
pas m'en servir)
- Webmin, qui permet d'administrer le pc a
distance en mode graphique par un navigateur internet (qui sera upgrade gr�ce
aux rpm du site internet de webmin,
webmin.com) . La version utlils� est la 1.01
- Samba bien sur ( upgrade vers 2.2.2 gr�ce
aux rpm de rpmfind.net, ya quelques d�pendances, trouves aussi sur rpmfind)
- en plus de root, un seul utilisateur est
d�finis lors de l'installation, ce sera le formateur
- je fixe une ip pour le serveur, les clients
ont des ip dynamiques fournis par un autre serveur (windows nt 4.0
serveur)
Les test pr�alables:
pour des raisons pratique, adoptons les conventions suivantes :
-linserveur = serveur linux
- 192.168.0.100 = adresse ip du serveur linux
- clients = postes windows 98
- poste principal = poste du formateur qui lui donne acc�s a tous les r�pertoires des
stagiaires
Voyons d�j� si la carte r�seau fonctionne :
Depuis le poste principal (connectez vous des a pr�sent avec le login que vous vous
�tes attribue lors de l'installation du serveur) lance "commande msdos" et
tape ping 192.168.0.100
a la fin tu a un compte rendu :
statistique ping pour 192.168.0.100
paquets : envoy�s = 4 re�u = 4 perdus = 0 (perte 0%)
Dur�e approximative des boucles en millisecondes
minimum = 0ms maximum = 0ms moyenne = 0ms
Si tu as quelque chose comme �a c'est que la carte r�seau est bien configure. Si ca ne
marche pas verifis 2 choses : si les cables r�seaux sont biens branches,
et si ils ne sont pas d�fectueux (ca m'est deja arrive). Sur le poste principal
verifis si le protocole tcp/ip est pr�sent dans la config de la carte r�seau
On va donc se connecter au serveur par la commande suivante :
telnet 192.168.0.100
il doit appara�tre la fen�tre du telnet, dans laquelle se trouve notre console bien
aim�e. Si ca marche pas, verifis si le package telnet-serveur est pr�sent,
il n'est pas pr�sent par d�faut, lors de l'installation il faut aller le "cocher a la
main" . De toute fa�on il peut �tre rajouter par la suite sans probl�me
Connecte toi avec le compte du formateur (root par d�faut ne peut se connecter par
telnet) puis tape "su" et entre le mot de passe de root, et hop on acc�de a
tous les droits
Puisque ca marche, on va tester l'interface d'administration
Toujours depuis le poste principal et avec l'aide d'internet explorer (ou netscape, ou
opera, ou mozilla....un navigateur quoi), taper l'adresse suivante
https://192.168.0.100:10000
Tu dois avoir une fen�tre te disant que tu vas penetrer sur un site s�curise, puis sur
une fen�tre te demandant si tu accepte le certificat (repond oui),
ensuite apparais le fen�tre demandant le login et le mot de passe ; connecte toi en
root.
Si ca marche pas, verifis si webmin a �t� installe, va dans le software manager (ou le
gestionnaire de package) et recherche webmin, si tu le trouve pas rajoute
le, et pense a l'activer dans les services qui se lancent au d�marrage. Si par contre
il est pr�sent et qu'il ne marche pas, ca d�passe mes comp�tences, d�sole.
J'adore webmin, a partir de cette interface on peut absoluement tout faire, pour ma
par mon serveur est enferme dans un placard avec juste le clavier de
connecte et le c�ble r�seau (ya pas de place pour un �cran)
A partir d'ici, on consid�re que l'on a ouvert sur le bureau du poste principal : la
connection au serveur via le telnet, et la connection via webmin ( version
1.01)
Configuration du serveur :
D�finitions des utilisateurs:
Dans mon cas j'ai deux types de groupes diff�rents:
- les groupes ou tous les utilisateurs se connecterons avec le m�me login et qui par
le biais du r�pertoire "mes documents" auront acc�s a
/home/r�pertoire_du_groupe. Pour la suite des explications on d�signera ce type de
groupe : groupe simple
- les groupes ou chaque stagiaire se connectera avec son login mais par le biais de
"mes documents" ils auront acc�s a /home/r�pertoire_du_groupe. Pour
la suite des explications on d�signera ce type de groupe : groupe complexe.
- On va creer un utilisateur "invite" qui permettra aux personnes qui ne font parti
d'aucuns groupes definis d'avoir acces aux clients (en tout cas pour moi c'est
necessaire)
cr� cet utlisateur comme un groupe simple mais autorise la connection sans mot de passe
Cr�ation des utilisateurs linux
Commen�ons par les groupes simples :
Depuis le poste principal, par webmin, cliquer sur serveur puis utilisateur et groupes
puis ajouter utilisateur.
Donne un nom d'utilisateur ( qui est en fait le nom du groupe de stagiaire) le mot de
passe en clair, met bien bash en interpr�teur de commande. Les d�lais
d'expiration ,on s'en fiche (moi en tout cas), le groupe primaire est deja rempli,
c'est le m�me que l'utilisateur.
Ya qu'a sauvegarder.
Il faut aussi rendre le formateur membre du groupe qui viens d'�tre cr�e. Pour cela,
toujours dans serveur, utilisateur et groupe ; dans la moitie inf�rieure de
la fen�tre se trouve la liste des groupes, normalement, le groupe que l'on viens de
cr�er se trouve en derni�re position. Clique sur le nom du groupe, il doit
apparaite la fen�tre de gestion de ce groupe. La rubrique membre est normalement vide,
juste a droite de la liste se trouve un bouton avec trois petits
points, clique dessus, tu pourra alors choisir quel utilisateur va devenir membre du
groupe ; choisi le login du formateur. Valider par "ok" puis "valider".
Recommencer la manipulation pour tous vos groupes simples
Le formateur doit �tre pr�sent dans tous les groupes
Les groupes complexes
La caracteristique de ce groupe, c'est que tous les stagiaires se connectent avec leur
propre login mais qu'ils ont un /home commun.
Cr�er tout d'abord le groupe commun, par exemple bacpro, comme si il s'agissait d'un
groupe simple. Cette manip cr�e le r�pertoire /home/bacpro
Ensuite un va cr�er les utilisateurs du groupe bacpro, par exemple Paul ; on commence
comme pour un groupe simple, sauf pour 2 �tapes
- Sous la zone groupe primaire, cochez la case groupe existant et rentre y le nom du
groupe primaire auquel tu veux
l'affecter, pour moi : bacpro
- cocher non pour les rubriques : cr�er un r�pertoire personnel
copier les fichiers
dans le r�pertoire personnel
l'autre rubrique aussi
Cr�ation du repertoire netlogon
cd repertoire va contenir les scripts de connections
Depuis le poste principal, par la connection telnet, taper :
mkdir /home/netlogon
voila c'est tout
D�finition des droits d'acces
Quand on tilise samba les droits d'acces aux differents sont un peu compliquer car le
serveur a ses droits d'acces, et samba possede des variables pouvant accorder
des droits. Par contre quand entre les droits samba et les droits du serveur il y a
incoherence, c'est les droits du serveur qui priment.
Pour ma par je donne les droits d'ecriture, de lecture et d'execution au proprietaire
et groupe, l'execution aux autres.
Pour accorder ces droits la au groupe bacpro, je me place dans le repertoire /home et
je tape :
chmod 771 -R bacpro
L'option -R permet d'accorder ces droits aux sous fichiers et aux dossiers du
repertoire bacpro
Pour les droits d'acces definis par samba, se reporter aux commentaires du fichier
smb.conf ci apres.
Je rend aussi l'utilisateur bacpro et le groupe bacpro proprietaire du repertoire
bacpro
chown bacpro -R bacpro
chgrp bacpro -R bacpro
La aussi l'option -R permet d'accorder ces droits aux sous fichiers et aux dossiers du
repertoire bacpro
Proceder ainsi pour tous les groupes que tu a cr�e
Pour le repertoire netlogon il suffis d'accorder les droits d'excution et de rendre le
formateur proprietaire de ce repertoire
chow stephane -R netlogon
chmod 771 -R netlogon
Si lors des essai de fontionnement les clients ne peuvent pas enregistrer ou lire dans
leurs repertoire, accordes tous les droits en lecture ecriture execution pour tous
les repertoires de /home. En vous placant dans le repertoire /home, tape :
chmod 777 -R *
restreignez petit a petit ensuite les droits de facon a ce que les stagiaires puissent
lire et ecrire dans le repertoire de leur groupe.
Ne laisse pas eternellement ce type de droits d'acces, sinon ton beau serveur sous
gnu/linux serais aussi securise qu'un win 9x !!!!
Configuration de Samba
La configuration de samba est a la fois simple et complexe, simple parceque tout se
trouve dans le fichier smb.conf qu'il suffit de modifier avec un �diteur de
texte (moi je le modifis via telnet avec vi, on peut aussi le faire sur le serveur
gr�ce a l'environnement graphique), complexe car ya des tas de variables que
l'on peut modifier Donc faites comme vous voulez mais il faut aller modifier ce
fichier, il se trouve dans /etc/samba/smb.conf
Voila mon fichier commente, a vous de l'adapter avec vos variables
------------------d�but-----------------------
# Global parameters
# nom sous lequel appara�tre le serveur dans le voisinage r�seau
netbios name = LINSERVEUR
# ce qui appara�tra dans la rubrique d�tail du voisinage r�seau, %v fais appara�tre le
n� de version de samba
server string = Samba Server %v
# les mots de passes transites en cryptes
encrypt passwords = Yes
# lieux de stockage du journal des evenements
log file = /var/log/samba/log.%m
# taille max du journal
max log size = 50
# La je sais pas :-(, c'est un param�tre par d�faut de samba
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
# nomde l'imprimante partage (si il y en a une)
printcap name = lpstat
# pas de proxy dns
dns proxy = No
# pilotes d'imprimantes
printing = cups
# oblige les utilisateurs a avoir un compte sur le serveur pour se connecter
security = user
# active le fonction de serveur de temps
time server = yes
# le script de connections porte le nom du groupe, %g est la variable samba pour le
groupe primaire
logon script = %g.bat
# nom du domaine windows que l'on cr�e
workgroup = workgroup
# autorise la connections des utilisateurs sur le domaine
domain logons = yes
# le serveur est le ma�tre du domaine
domain master = yes
# dans le cas de la pr�sence de plusieurs contr�leurs de domaine, c'est le serveur
qui est le favoris
preferred master = yes
# franchement la je sais pas mais c'est ca qu'il faut mettre
local master = yes
# permet de gagner l'�lection contre les autres machines windows
os level = 255
# on donne l'acc�s au r�pertoire netlogon qui contiens les scripts de d�marrage
[netlogon]
#chemin d'acc�s du r�pertoire
path = /home/netlogon
# seul les utilisateurs sp�cifies peuvent utiliser ce r�pertoire
public = no
# on ne peut pas �crire dans ce r�pertoire
writable = no
# le r�pertoire n'apparais pas dans l'arborescence
browseable = no
#liste des utilisateurs ayant les droits root sur ce r�pertoire, ici le formateur
admin users = stephane
# r�pertoire home des groupes
[homes]
# on a le droit d'y ecrire
read only = No
# seul le r�pertoire du groupe auquel on appartiens apparais dans le voisinage r�seau
browseable = No
#r�pertoire par lequel le formateur a acc�s aux r�pertoires de tous les groupes
[administration]
# chemin d'acc�s du r�pertoire
path = /home
# seuls les utilisateurs sp�cifies peuvent utiliser ce r�pertoire
public = no
# on peut y �crire
writable = yes
# le r�pertoire n'apparais pas dans l'arborescence
browseable = no
# utilisateurs autorises a utiliser ce r�pertoire, ici le formateur
valid users = stephane
# utilisateurs ayant les droits root su ce r�pertoire
admin users = stephane
---------------------fin---------------------------------------
Cr�ation des utilisateurs samba
C'est tr�s simple, car sans le savoir il sont deja cr�es, se sont les m�mes que les
utilisateurs linux, il suffit de le dire a samba :
Par webmin clique sur serveurs, partage windows avec samba, convertir les utilisateurs
Unix vers samba, dans la fen�tre qui s'ouvre cliquer sur cr�er.
on reviens ensuite sur serveur, partage windows avec samba, et on clique sur
red�marrer le serveur samba.
Si en allant sur partage windows avec samba tu n'y acc�de pas, clique sur module
configuration et transforme /etc/smb.conf et /etc/smbpasswd en
etc/samba/smb.conf et /etc/samba/smbpasswd
Configuration du poste principal
En fait il y a rien a faire, il suffit de se connecter avec le login du formateur
(normalement c'est deja le cas) et faire voisinage r�seau, linserveur, et la
il y a 2 r�pertoires : le r�pertoire personnel du formateur, et le r�pertoire
administration dans lequel se trouve tous les r�pertoires des groupes, en fait
tout le contenu du r�pertoire /home, dont le r�pertoire netlogon ou on vas mettre les
scripts de d�marrage.
Cr�ation des scripts de d�marrage
Depuis le poste principal , a l'aide du bloc note, on va cr�er 2 fichier par groupes,
un fichier .bat et un fichier .reg.
Le fichier .reg , que l'on nommera nom_du_groupe.reg va modifier la base de registre
du client de fa�on a ce que "mes documents" face appara�tre le r�pertoire
du groupe
Le fichier .bat quel'on nommera nom_du_groupe.bat va synchroniser l'horloge du client
avec celle du serveur et va lancer le fichier nom_du_groupe.reg
Ces deux fichiers seront enregistres dans le r�pertoire netlogon. ( voisinage r�seau,
linserveur, administration, netlogon)
exemple de fichier .bat pour le groupe appelle "aqs" ce fichier sera donc nomme
"aqs.bat"
---------d�but----------
net time \\linserveur /set /yes
regedit /s \\linserveur\netlogon\aqs.reg
---------fin-------------
La variable net time permet de synchroniser l'horloge du client avec celle du serveur
(tr�s pratique quand on a des vieux pc dont la pile du CMOS a rendu l'�me depuis
longtemps et qui n'est jamais a l'heure.
regedit permet de mettre a jour la base de registre avec les param�tres contenus dans
aqs.reg
exemple de fichier .reg pour le groupe appelle "aqs" ce fichier sera donc nomme
"aqs.reg"
---------d�but-------------
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell
Folders]
"Personal"="\\\\LINSERVEUR\\aqs"
---------fin----------------
Cette modification de ma la de registre va permettre a se connecter au r�pertoire de
son groupe directement depuis le r�pertoire "mes documents" du bureau du
client
Important : le fichier reg �cris si dessus permet de modifier win98, pour les autres
versions win95, me, nt, 2000, xp, la clef a modifier est surement
diff�rente.
Pour chaque groupes dois exister le fichier .reg et .bat correspondant.
Configuration des clients
On part du principe que les cartes r�seaux sont biens configures, qu'elles ont une
adresse IP (dynamique ou fixe, peux importe, mais de la m�me classe que le
serveur192.168.0.xxx).
Depuis le bureau , clique bouton droit sur le voisinage r�seau puis propri�t�.
S�lectionne "client pour les r�seau microsoft" puis propriete. Coche "se connecter a
un domaine nt" puis donne le m�me nom de groupe que pour linserveur
workgroup. Valide par ok ; si il te demande de red�marrer r�pond non. Dans l'onglet
identification, dans la zone groupe met aussi workgroup.
Si il te demande de red�marrer r�pond non encore une fois. A l'aide du bloc note cree
le fichier suivant, nomme le comme tu veus mais donne lui l'extension .reg
----------------debut------------
REGEDIT4
[HKEY_LOCAL_MACHINE\Network\Logon]
"Mustbevalidated"=dword:00000001
-----------------fin----------------
execute ce fichier, il modifi la base de registre, et oblige l'utilisateur a se
connecter au reseau avec un login valide ; on ne peut desormais plus eviter la fenetre
de
saisie du mot de passe par "echap" .
Important : le fichier reg �cris si dessus permet de modifier win98, pour les autres
versions win95, me, xp famillial, la clef a modifier est surement
diff�rente.
Maintenant tu peut
red�marrer
Le test final
Ben voila on y est, on va voir si tout ce bazard fonctionne !!
On allume un client, et apres un delais indetermine et aleatoire la fenetre de saisi
du mot de passe se presente
Essayons de cliquer sur annuler, normallement on a un message d'erreur ; pour une fois
c'est normal
Essayons de se connecter avec un utilisateur bidon, la aussi on a un message d'erreur
Essayons avec un utilisateur valide, par exemple aqs, la ce dois marcher, on vois
deffiler les fenetres dans lesquelles s'executent le scripts de demarrage, et puisque
c'est la premiere fois
que l'on se connecte, on dois confirmer le mot de passe. Pour verifier l'execution su
script de connection, on clique avec le bouton droit sur "mes documents" puis
propriete,
dans le chemin d'acces, on dois trouver : //linserveur/aqs. Si tu a �a c'est gagne.
Refais cette verification avec les autres groupes simple.
On va tester un groupe complexe, connecte toi avec le login d'un membre d'un groupe
complexe, Paul par exemple. En verifiant le chemin d'acces du repertoire "mes document"
on dois trouver //linserveur/bacpro (paul est membre du bacpro)
Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com"