tp linux : linux-samba serveur de fichiers pour utilisateurs wi

Transcription

tp linux : linux-samba serveur de fichiers pour utilisateurs wi
TP LINUX : LINUX-SAMBA SERVEUR DE FICHIERS POUR
UTILISATEURS WINDOWS
I
LA MISSION
Votre entreprise cherche maintenant à réduire le coût des licences. Elle vous confie la mission qui
consiste à tester différents logiciels libres, dont le serveur samba disponible sous linux et qui paraît-il
permet de remplacer avantageusement un serveur fichier voir un serveur d’authentification de type
Windows 2003 serveur.
Après quelques recherches sur internet, vous comprenez que samba est un serveur permettant de
rendre accessible des disques Linux à partir de machines Windows et de partager des imprimantes
Linux pour des machines Windows. En approfondissant vos recherches, vous vous apercevez que
samba peut aussi jouer le rôle de serveur d’authentification au moment de l’accès des utilisateurs au
réseau.
Vous comprenez aussi que le client « smbclient », disponible dans l’environnement linux, permet
d’accéder à un disque Windows depuis une machine Linux et d’utiliser une imprimante Windows
depuis une machine Linux.
En administrateur réseau consciencieux, vous décidez dans un premier temps de tester les possibilités
du serveur samba en tant que serveur de fichiers pour les utilisateurs de votre LAN. A partir de votre
réseau réel, vous avez donc élaboré la plateforme de tests présentée ci-dessous :
A l’issue de vos tests, vous devrez pouvoir expliquer le rôle et l’intérêt d’un serveur samba à votre
direction.
1
Marie-pascale Delamare
II
ACTIVATION DU SERVEUR SAMBA EN SERVEUR DE FICHIERS
II.1
OBJECTIFS
Dans cette étude, nous souhaitons faire de Samba un serveur de fichiers sur lequel chaque utilisateur
trouvera un répertoire de travail. L’utilisateur doit être authentifié pour atteindre son répertoire
personnel. Attention cette authentification s’effectue juste au moment de l’accès aux ressources
et non à la connexion réseau.
Commencez par créer sur la machine XP réelle l’utilisateur « delmp » mot de passe « delmp » et
l’utilisateur « toto » mot de passe « toto ».
Déconnectez-vous sous Windows et reconnectez-vous sous le nom d’utilisateur « delmp » mot de
passe « delmp ».
Lancez votre machine virtuelle Linux et créez ensuite sur la machine Linux virtuelle, l’utilisateur
« toto » mot de passe « toto ». Connectez-vous une fois sous ce nom pour créer le bureau de cet
utilisateur.
Changez le nom de votre machine virtuelle Linux. Il ne doit pas y avoir de noms en double sur le
réseau.
Nb : Ce Tp n’a pas pour ambition d’être exhaustif sur Samba. Certains paramètres ne seront pas
abordés. Si vous voulez approfondir, il faudra le faire en utilisant les ressources internet, les forums de
discussion, les fichiers d’aide de samba (apt-get update puis apt-get install samba-doc).
II.2
INSTALLATION


II.3
apt-get update
apt-get install samba
VÉRIFICATIONS PRÉALABLES
Vérifiez sur votre machine Linux que les deux démons smbd et nmbd sont disponibles dans le
répertoire /usr/sbin. S’ils sont présents Samba est installé, il reste à le configurer en modifiant le
fichier /etc/samba/smb.conf.
Commande passée en mode console pour vérifier la présence des exécutables :
__________________________________________________________________________________
Avant d’effectuer le paramétrage vérifiez si ces démons sont lancés automatiquement au démarrage de
votre machine
En vérifiant les processus lancés commande : _____________________________________________
En vérifiant que vous trouvez un script samba dans les répertoires contenant les scripts lancés au
démarrage :
__________________________________________________________________________________
__________________________________________________________________________________
2
Marie-pascale Delamare
II.4
PARAMÉTRAGE DE SAMBA EN CONTRÔLE AU NIVEAU DES UTILISATEURS (SERVEUR DE FICHIERS)
Pour paramétrer le serveur Samba, il faut configurer le fichier /etc/samba/smb.conf en utilisant un
éditeur quelconque. Les modifications terminées vous devrez relancer Samba vous-même par la
commande : /etc/init.d/samba {stop start restart}.
Pour commencer dans la section [global], indiquez le nom du groupe de
travail et le nom du serveur samba, en saisissant les champs suivants :
#Change this to the workgroup/NT-domain name your samba server will part of
workgroup = DOMXY
# server string is the equivalent of the NT Description field
server string = %h server (Samba %v)
Puis vous devez dé-commenter la ligne suivante, pour indiquer comment faire
la résolution des noms NETBIOS :
# What naming service and in what order should we use to resolve host names
# to IP addresses
name resolve order = lmhosts host wins bcast
Dans la section Authentification, dé-commentez la ligne suivante, pour passer en mode de
sécurité utilisateur :
# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba-HOWTO-Collection/ServerType.html
# in the samba-doc package for details.
security = user
Dans la section Misc, dé-commentez la ligne suivante, pour faire de votre serveur Samba,
l’explorateur maître du domaine (celui qui gère l’affichage du voisinage réseau) :
# Domain Master specifies Samba to be the Domain Master Browser. If this
# machine will be configured as a BDC (a secondary logon server), you
# must set this to 'no'; otherwise, the default behavior is recommended.
domain master = auto
Dans la section Share Definitions, dé-commentez les lignes suivantes pour
autoriser le partage des répertoires personnels:
# Un-comment the following (and tweak the other settings below to suit)
# to enable the default home directory shares. This will share each
# user's home directory as \\server\username
[homes]
comment = Home Directories
browseable = no
# By default, \\server\username shares can be connected to by anyone
# with access to the samba server. Un-comment the following parameter
# to make sure that only "username" can connect to \\server\username
valid users = %S
# File creation mask is set to 0600 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0664.
create mask = 0600
# Directory creation mask is set to 0700 for security reasons. If you want
# to create dirs. with group=rw permissions, set next parameter to 0775.
directory mask = 0700
3
Marie-pascale Delamare
II.5
LINUX SAMBA ET UTILISATEURS ASSOCIÉS
Tous les accès à la machine Linux depuis des machines Windows, passent d’abord par le serveur
SAMBA. C’est donc son paramétrage qui s’applique avant le paramétrage LINUX pour les droits
d’accès.
Tous les utilisateurs SAMBA sont définis dans un fichier dont le nom est /var/lib/samba/passdb.tdb..
Lorsque vous créez un utilisateur via l’interface graphique celui-ci n’est pas créé dans les fichiers
SAMBA. Vous devez donc le rajouter. Pour cela vous utiliserez la commande :
pdbedit –a nomDeUtilisateur.
Pensez à modifier le mot de passe de l’utilisateur par la commande smbpasswd suivie du nom de
l’utilisateur, par exemple smbpasswd delmp
Pour visualiser les utilisateurs du serveur SAMBA, vous utiliserez la commande : pdbedit –L -v
II.6
TEST DU FONCTIONNEMENT DU SERVEUR SAMBA
Vérifiez que vos deux démons nmbd et smbd sont bien lancés : ______________________________
Lancez la commande testparm pour vérifier le paramétrage de votre serveur.
Vérifiez qu’aucun filtrage iptables ne gènera vos connexions par la commande iptables –L –v.
Pour vérifier les partages activés, passez la commande smbclient –L nomDuServeurSamba.
Pour vérifier la résolution des noms Netbios, tapez la commande nmblookup NomDuServeurSamba
et la même pour votre client windows.
Vérifier tout le domaine nmblookup ‘*’
Essayez de vous connecter à un des partages du serveur samba en tapant la commande :
smbclient //NomDuServeurSamba/delmp –U delmp. Si vous arrivez à vous connecter vous devez
voir le prompt SMB> et en tapant la commande help connaître les différentes commandes mises à
votre disposition.
Votre serveur samba fonctionne en local.
Sur la machine Windows, tapez la commande net view \\NomDuServeurSamba en fenêtre dos. Vous
devez voir les partages activés.
Votre serveur samba fonctionne en réseau.
III
III.1
UTILISATION DES RESSOURCES LINUX
UTILISATION DES RÉPERTOIRES HOMES
Notre serveur Linux est un serveur de fichiers. Via le réseau, chaque utilisateur peut accéder à son
répertoire personnel pour enregistrer ses fichiers (chaque utilisateur est donc déclaré sur la machine
Linux).
Depuis la machine Windows, cliquez sur Voisinage réseau, puis sur la machine Linux. Que voyezvous ? ____________________________________________________________________________
Essayez d’accéder à votre répertoire personnel. Que se passe-t-il ? ____________________________
Voyez-vous d’autres répertoires personnels?______________________________________________
Créez un fichier via Windows. Droits attribués sous Linux ? _________________________________
4
Marie-pascale Delamare
Créez un répertoire via Windows. Droits attribués sous Linux ? _______________________________
Sur une autre machine Windows disponible dans la salle, changez le « workgroup » pour qu’il
corresponde au vôtre « DOMXY » et connectez-vous en rentrant dans la fenêtre réseau un autre nom
d’utilisateur connu sous votre Linux et sous Samba, par exemple « toto » mot de passe « toto ».
Que se passe-t-il dans le voisinage réseau ? _______________________________________________
Rentrez un nom inconnu sur Linux. Que se passe-t-il ? ______________________________________
III.2
UTILISATION D’UN PARTAGE PUBLIC
Créez un nouveau répertoire essai sous la racine et créez dans ce répertoire un fichier texte. Pour
partager ce répertoire, faîtes démarrer puis « Paramètres du système », choisissez « Partages » puis
« Partages de fichiers » et cochez les options tel qu’indiqué ci-dessous. Cliquez ensuite sur « Ajouter »
et partagez votre répertoire en mode public avec écriture possible.
Afficher de nouveau le contenu du fichier /etc/samba/smb.conf. _______________________________
Repérez les modifications survenues.
Depuis la machine Windows, cliquez sur Favoris réseau, puis sur la machine Linux. Que voyezvous ? ____________________________________________________________________________
Essayez de modifier le fichier texte précédemment créé. Que se passe-t-il ? _____________________
Vérifiez sur la machine linux les droits positionnés sur ce fichier. Modifiez les si nécessaires. Refaites
une tentative. Que se passe-t-il ? _______________________________________________________
On constate donc que même avec un partage public, Linux continue de vérifier les droits d’accès aux
objets manipulés.
III.3
UTILISATION D’UN PARTAGE LIMITÉ À UN GROUPE
Vos deux utilisateurs « delmp » et « toto » sont dans deux groupes différents.
5
Marie-pascale Delamare
Créez un nouveau répertoire groupe sous la racine et créez dans ce répertoire un fichier texte. Donnez
ce répertoire à « delmp » et au groupe « delmp », et donnez au groupe « delmp » le droit de modifier le
répertoire. Faites de même pour le fichier texte.
__________________________________________________________________________________
__________________________________________________________________________________
Pour partager ce répertoire, nous allons éditer le fichier /etc/samba/smb.conf dans l’éditeur vim. En fin
de fichier, créez un nouveau paragraphe identique à celui du répertoire /essai. Supprimez ensuite
l’option guest ok = yes (le partage n’est pas public) et rajoutez l’option valid users = @delmp. Cette
dernière option n’autorise l’accès à ce répertoire que pour les utilisateurs rattachés au groupe de
l’utilisateur « delmp ».
Redémarrez samba : _________________________________________________________________
Depuis la machine Windows, cliquez sur Favoris réseau, puis sur la machine Linux. Que voyezvous ?
__________________________________________________________________________________
Essayez de modifier le fichier .txt Que se passe-t-il ?
__________________________________________________________________________________
Sur une autre machine Windows disponible dans la salle, changez le « workgroup » pour qu’il
corresponde au vôtre « DOMXY » et connectez-vous en rentrant dans la fenêtre réseau un autre nom
d’utilisateur connu sous votre Linux et sous Samba, par exemple « toto » mot de passe « toto ».
Depuis la machine Windows, cliquez sur Favoris réseau, puis sur la machine Linux. Que voyez-vous ?
__________________________________________________________________________________
Essayez de modifier le fichier .txt Que se passe-t-il ?
__________________________________________________________________________________
6
Marie-pascale Delamare
TP LINUX : LINUX-SAMBA SERVEUR DE DOM AINE POUR
MACHINE WINDOWS
I
LA MISSION
Vous décidez maintenant de tester le serveur samba en tant que contrôleur de domaine. A partir de
votre réseau réel, vous avez donc élaboré la plateforme de tests présentée ci-dessous :
Cette fois vous travaillez par groupe de deux élèves, en effet rattacher une machine Windows à un
domaine, nécessite son redémarrage. Au redémarrage votre machine virtuelle sera arrêtée et donc votre
authentification à la connexion au réseau impossible. Vous ne conservez donc qu’un serveur Linux
virtuel et vous utilisez la machine XP de votre voisin comme client de votre Lan.
II
UTILISER LINUX/SAMBA COMME CONTRÔLEUR DE DOMAINE
On peut travailler en client/serveur en ayant pour serveur un serveur Linux et des clients Windows, en
lieu et place d’un serveur Windows et des clients Windows.
7
Marie-pascale Delamare
Pour paramétrer le serveur Samba en contrôleur de domaine, il faut configurer le fichier
/etc/samba/smb.conf en utilisant un éditeur quelconque. Les modifications terminées vous devrez
relancer Samba vous-même par la commande : /etc/init.d/samba {stop start restart}.
Dans la section Domains, dé-commentez les lignes suivantes, pour faire de votre serveur Samba
un contrôleur de domaine :
# Is this machine able to authenticate users. Both PDC and BDC
# must have this setting enabled. If you are the BDC you must
# change the 'domain master' setting to no
#
domain logons = yes
Les lignes suivantes permettent de spécifier le répertoire dans lequel enregistrer le profil errant.
#
#
#
#
#
;
#
The following setting only takes effect if 'domain logons' is set
It specifies the location of the user's profile directory
from the client point of view)
The following required a [profiles] share to be setup on the
samba server (see below)
logon path = \\%N\profiles\%U
Another common choice is storing the profile in the user's home directory
logon path = \\%N\%U\profile
Nota : Attention vous devez vérifier que chaque utilisateur peut écrire
dans son répertoire personnel soit writable = yes dans la section [homes]
Les lignes suivantes permettent de connecter directement le répertoire de l’utilisateur sur le
lecteur Z.
# The following setting only takes effect if 'domain logons' is set
# It specifies the location of a user's home directory (from the client
# point of view)
logon drive = Z:
logon home = \\%N\%U
Toutes les demandes d’authentification réseau effectuées à la connexion, seront désormais prises en
charge par le serveur Linux/Samba.
Mais pour que cela fonctionne nous devons d’abord créer un compte pour la machine cliente dans les
fichiers de samba. Pour parvenir à effectuer cette manipulation nous devons retirer le paramètre
invalid user = root dans le fichier /etc/samba/smb.conf
# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
passdb backend = tdbsam
; invalid users = root
et rajouter le compte root dans le fichier /var/lib/samba/passdb.tdb avec la commande pdbedit – a
root ou smbpasswd root si seul le mot de passe doit être changé.
Les comptes spéciaux réservés aux machines sont créés avec des commandes spécifiques. Sous linux,
on peut créer un groupe de machines avec : addgroup --gid 2000 windows. Puis, toujours dans la
section Domains, rajoutez dans le /etc/samba.smb.conf le paramètre suivant :
add machine script = su –c «/usr/sbin/useradd -g 2000 -d /dev/null -s /bin/false %u” root.
8
Marie-pascale Delamare
Cette commande créera un compte pour une machine dans le groupe windows sans répertoire home et
sans shell associé et nous exécuterons cette commande en étant en administrateur du serveur linux. Il
n’y a donc aucune connexion possible avec ce compte. Cette création de compte s’effectue au
basculement du mode poste à poste au mode client/serveur sur la machine Windows.
Vous avez édité le /etc/samba/smb.conf vous devez relancer samba. ___________________
Affichez de nouveau le contenu du fichier /etc/samba/smb.conf. ______________________________
Sur la station Windows de votre voisin, vous devez changer votre paramétrage réseau pour passer d’un
paramétrage poste à poste à un paramétrage client/serveur. Ce que vous savez faire.
Sur la machine linux, vérifiez le contenu du fichier /etc/passwd. Que constatez-vous ? _____________
__________________________________________________________________________________
Sur la machine linux, vérifiez le contenu du fichier /var/lib/samba/passdb.tdb. Que constatez-vous ? _
__________________________________________________________________________________
Connectez-vous avec un user connu de Linux, avec un user inconnu. Conclusion ? ________________
__________________________________________________________________________________
Vous remarquerez que le lecteur z : est automatiquement associé au répertoire home de l’utilisateur
(car le paramètre logon drive = z : et le paramètre logon home = \\%N\%U) et qu’un profil a été créé
dans le répertoire profile du répertoire home de l’utilisateur (car le paramètre logon path =
\\%N\%U\profile).
III
CRÉATION DE SCRIPTS DE CONNEXION
Pour gérer des scripts de connexion nous devons créer un répertoire partagé sur la machine linux de
nom /netlogon qui contiendra les scripts à exécuter. Dans un éditeur, modifiez le fichier
/etc/samba/smb.conf pour dé-commenter et modifier les lignes suivantes dans la section Shared
Définitions :
# Un-comment the following and create the netlogon directory for Domain
Logons
# (you need to configure Samba to act as a domain controller too.)
[netlogon]
comment = Network Logon Service
path = /netlogon
guest ok = yes
writable = no
share modes = no
Ce partage /netlogon va nous permettre de gérer des scripts de connexion. Ces scripts de connexion
sont des fichiers « .bat » (donc des fichiers de commandes DOS) qui sont enregistrés sur le serveur
Linux dans le répertoire /netlogon et qui sont lancés sur la station Windows au moment de la
connexion. Nota : ces scripts doivent être créés avec un éditeur DOS.
Le paramètre suivant doit aussi être dé-commenté et modifié dans la section Domains
#
#
#
#
The following setting only takes effect if 'domain logons' is set
It specifies the script to run during logon. The script must be stored
in the [netlogon] share
NOTE: Must be store in 'DOS' file format convention
logon script = logon.cmd
9
Marie-pascale Delamare
Si on écrit logon script = %G.bat, le même script sera lancé pour tout un groupe. Le script portant
alors le nom du groupe. Ce groupe doit être le groupe principal auquel appartient l’utilisateur, c’est à
dire le groupe apparaissant dans le fichier /etc/passwd).
Si on écrit logon script = %U.bat, on lancera un script par utilisateur. Le script portant alors le nom de
l’utilisateur.
Vous devez ensuite créer votre script dans un éditeur Dos, donc sur la machine Windows puis vous
l’enregistrez sur la machine Linux dans le répertoire correspondant au partage netlogon soit ici le
répertoire : /netlogon que vous aurez pris soin de créer et sur lequel vous avez mis les droits
nécessaires (au moins lecture et exécution pour tout le monde).
Contenu du script :
net use p: \\nomserveursamba\groupe ou essai (Vous pouvez utiliser tous les lecteurs libres sur votre
machine windows sauf z: réservé pour le répertoire home de l’utilisateur).
Enregistrer ce script sous le nom de votre utilisateur « nomDeUtilisateur ».bat.
Arrêter et relancer le serveur samba. ____________________________________________________
Connectez-vous sous le nom de l’utilisateur.
Le script s’exécute-t-il ? Que fait-il ? ____________________________________________________
__________________________________________________________________________________
10
Marie-pascale Delamare