version imprimable

Transcription

version imprimable
Client/Serveur protocoles internet
Accès aux fichiers distants
Fabien Rico ([email protected])
Olivier Glück
Univ. Claude Bernard Lyon 1
séance 2
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
1 / 30
Introduction
Accès aux fichiers distants
C’est un ensemble client/serveur qui permet pour une machine de mettre
à disposition ses fichiers sur le réseau.
L’accès aux fichiers distants est complètement transparent pour
l’utilisateur ;
◮
◮
◮
tout se passe comme si le système de fichiers distant était local (disque
réseaux)
l’utilisateur peut éditer le fichier, le modifier, . . . ; les modifications
seront répercutées sur le système de fichiers distant ;
les utilisateurs de la machine cliente peuvent utiliser n’importe quel
logiciel pour manipuler les fichiers distribués.
Cela concerne généralement les machines du client et du serveur.
Le serveur met à disposition une partie de son système de fichier :
◮
◮
gestions des droits ;
gestion des accès concurrents.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
2 / 30
Introduction
Questions
Par rapport au transfert de fichier, y a-t’il plus ou moins de
contraintes sur la bande passante ou le délai
Comment résoudre le problème de la différence entre utilisateurs de la
machine locale et ceux de la machine distante
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
3 / 30
Introduction
Exemple d’utilisation
Partage de fichiers, disque réseaux.
Mise à disposition de logiciel (/usr/share/.
Mise à disposition de programme d’installation ;
◮
◮
installation d’une machine windows (Serveur RIS, unattended) ou linux
(kickstart, preseed) ;
mise à disposition des paquets logiciels (Statégie de Groupe).
Déploiement des comptes sur un parc informatique (clients lourds).
Utilisation des machines virtuelles (pour les données utilisateurs).
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
4 / 30
Introduction
Protocoles
Réseaux locaux
◮
◮
NFS : Network File System
SMB/CIFS : Server Message Block/Common Internet File System
Autres
◮
◮
AFS : Andrew File System
WebDAV
Pour les cluster :
◮
◮
◮
◮
GFS : Global File System (RedHat).
Google File System.
Lustre : Linux cluster (SUN/Oracle).
GPFS : General Parallel File System (IBM).
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
5 / 30
Network File System (NFS)
1
Introduction
2
Network File System (NFS)
NFSv3
NFSv4
3
Serveur Message Block (SMB)
Samba
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
6 / 30
Network File System (NFS)
Network File System (NFS)
Présenté par Sun en 1985.
permet à ses stations sans disque d’accéder à un système de gestion
de fichiers distant (RFC 1094).
Utilise les appels de procédures distantes Sun-RPC (qui sont issues
des travaux sur NFS).
A priori, le client et le serveur NFS devraient être des processus
utilisateur s’exécutant au-dessus de RPC/XDR/UDP/IP. Mais en fait,
le client et le serveur sont des modules du noyaux.
La dernière version (version 4) est totalement différente (et
incompatible) avec les précédentes. On parle donc séparément de
NFSv3 (ancienne version) et NFSv4 (nouvelle).
Pourquoi l’implémentation est-elle intégrée au noyau
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
7 / 30
Network File System (NFS)
NFS : principe de fonctionnement
Machine locale
Machine distante
Processus utilisateur
OS
Systeme de Fichier Virtuel
fichiers locaux
(ext/ntfs)
Serveur
NFS
Client NFS
Fichiers locaux
(ext/ntfs)
M a t.
Internet
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
8 / 30
Network File System (NFS)
Les éléments d’accès aux fichiers
Manipule des chemins, des
descripteurs de fichiers, fait des
déplacements
Processus utilisateur :
I/O dans un fichier
OS
Manipule des Files, Dentries,
Inodes, . . .
Virtual File System (VFS)
Ext3 , Ntfs , NFS
Masque les différences à
l’application (API uniforme).
Block Device Layer
IDE , SCSI , . . .
Manipule des blocks.
M a t.
Dépend du matériel.
Du point de vue de l’administrateur
système, NFS se présente comme un
système de fichier particulier.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
9 / 30
Network File System (NFS)
NFSv3
NFSv3 : en pratique . . .
Exemple (Client NFSv3)
root@192 . 1 6 8 . 6 9 . 1 # t a i l −1 / e t c / f s t a b
1 9 2 . 1 6 8 . 6 9 . 2 : / home / nfshom e
nfs
d e f a u l t s , noauto 0 0
root@192 . 1 6 8 . 6 9 . 1 # m k di r / nfshom e
root@192 . 1 6 8 . 6 9 . 1 # mount / nfshom e
root@192 . 1 6 8 . 6 9 . 1 # l s − l / nfshom e
drwxr−xr−x
2 1003
5000
1024 f e v 16 1 3 : 3 2 o l i v i e r
root@192 . 1 6 8 . 6 9 . 1 # d f
Filesystem
1k−b l o c k s
Used A v a i l a b l e Use% Mounted on
/ de v / hda2
3898108
2766592
930304 75%
/
1 9 2 . 1 6 8 . 6 9 . 2 : / home
16128636
1493328 13815996 10%
/ nfshom e
/nfshome
Exemple (Serveur NFSv3)
root@192 . 1 6 8 . 6 9 . 2 # c a t / e t c / e x p o r t s
# / e t c / e x p o r t s : t h e a c c e s s c o n t r o l l i s t f o r f i l e s y s t e m s whi c h
# may be e x p o r t e d t o NFS c l i e n t s .
Se e e x p o r t s ( 5 ) .
/home 1 9 2 . 1 6 8 . 6 9 . 0 / 2 5 5 . 2 5 5 . 2 5 5 . 0 ( rw , r o o t s q u a s h , a s y n c )
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
/home
séance 2
10 / 30
Network File System (NFS)
NFSv3
NFSv3 : en pratique . . .
Exemple (Client NFSv3)
root@192 . 1 6 8 . 6 9 . 1 # r p c i n f o −u 1 9 2 . 1 6 8 . 6 9 . 2 showmount
program 100005 v e r s i o n 3 r e a d y and w a i t i n g
root@192 . 1 6 8 . 6 9 . 1 # r p c i n f o −u 1 9 2 . 1 6 8 . 6 9 . 2 n f s
program 100003 v e r s i o n 3 r e a d y and w a i t i n g
root@192 . 1 6 8 . 6 9 . 1 # showmount −a 1 9 2 . 1 6 8 . 6 9 . 2
A l l mount p o i n t s on 1 9 2 . 1 6 8 . 6 9 . 2 :
1 9 2 . 1 6 8 . 6 9 . 1 : / home
root@192 . 1 6 8 . 6 9 . 1 # showmount −d 1 9 2 . 1 6 8 . 6 9 . 2
E x p o r t e d d i r e c t o r i e s on 1 9 2 . 1 6 8 . 6 9 . 2 :
/home
root@192 . 1 6 8 . 6 9 . 1 # showmount −e 1 9 2 . 1 6 8 . 6 9 . 2
Export l i s t f o r 1 9 2 . 1 6 8 . 6 9 . 2 :
/home 1 9 2 . 1 6 8 . 6 9 . 0 / 2 5 5 . 2 5 5 . 2 5 5 . 0
/nfshome
Exemple (Serveur NFSv3)
root@192 . 1 6 8 . 6 9 . 2 # showmount
H o s t s on 1 9 2 . 1 6 8 . 6 9 . 2 :
192.168.69.1
c O.Glück & F.Rico (U.C.B.L.)
/home
Client/Serveur
séance 2
11 / 30
Network File System (NFS)
NFSv3
NFSv3 et la sécurité
Principe d’authentification :
◮
◮
Les identifiants (uid, gid) locaux sont mappés en (uid, gid) distants
=⇒ équivalence entre les droits locaux et distants
Problème pour root :
⋆ quels droits possède le root d’une machine cliente sur les fichiers
⋆
exportés par un serveur NFSv3 ?
par défaut, root est mappé en nobody pour des raisons de sécurité
(sinon il faut mettre no root squash dans /etc/exports )
Règle de non transitivité de NFS :
◮
◮
si A exporte /home à B ; si B monte A:/home dans /home2 et exporte
/home2 à C alors C n’aura pas accès au /home de A
sinon il n’y aurait aucun contrôle possible des règles d’exportation donc
pas de sécurité. . .(B pourrait exporter à C alors que A ne veut pas
autoriser C)
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
12 / 30
Network File System (NFS)
NFSv3
NFSv3 : les procédures distantes
GETATTR : retourne les attributs d’un fichier (type, taille,
permissions, propriétaire, date de dernière modification, . . .)
SETATTR : modifie les attributs d’un fichier
STATFS : retourne l’état d’un SGF (espace libre, . . .)
LOOKUP : recherche le fichier dont le nom et en argument, retourne
un file handle et les attributs (appelée à l’ouverture du fichier)
READ : lecture dans le fichier d’au plus N octets à partir d’un certain
offset (N doit être inférieur à 8192)
WRITE : écriture dans le fichier de N octets à partir d’un certain
offset, les données se trouvant dans le tampon @
CREATE/REMOVE/RENAME : créer, supprimer, renommer
LINK/SIMLINK/READLINK : création/lecture d’un lien
MKDIR/RMDIR/READDIR : manipulation des répertoires
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
13 / 30
Network File System (NFS)
NFSv3
MOUNT : les procédures distantes
Procédures distantes utilisées par mount et showmount
◮
◮
◮
◮
◮
MNT : montage d’une partition distante, retourne un file handle
correspondant au répertoire monté (racine)
DUMP : retourne la liste de tous les file system montés
UMNT : supprime un point de montage
UMNTALL : supprime tous les points de montage pour ce client
EXPORT : retourne les informations sur les file system qui sont
exportés
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
14 / 30
Network File System (NFS)
NFSv3
NFSv3 : un serveur sans état
Le serveur NFSv3 est sans état : entre deux requêtes, il ne conserve
aucune information sur
◮
◮
◮
◮
les accès précédents à un fichier donné,
les fichiers ouverts, . . .
le LOOKUP correspond au open() mais il n’y a pas de procédure
correspondant au close()
après un LOOKUP, le serveur ne sait pas si le client va effectivement
”utiliser” le fichier ou non.
Contrainte du serveur sans état :
◮
Procédures indempotentes (La 2ème exécution ne doit plus modifier et
donner le même résultat).
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
15 / 30
Network File System (NFS)
NFSv3
NFSv3 : un serveur sans état
Avantage du serveur sans état :
◮
En cas de crash du serveur NFS
◮
En considérant le risque de perte des requètes
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
16 / 30
Network File System (NFS)
NFSv3
NFSv3 : procédures non-idempotentes
Toutes les opérations précédentes ne sont pas idempotentes : deux
exécutions identiques successives ne donnent pas le même résultat
Ne sont pas idempotentes CREATE, REMOVE RENAME,
LINK,SIMLINK,MKDIR, RMDIR
Solution :
◮
◮
le serveur utilise un cache des requêtes/réponses récentes pour les
procédures non-idempotentes
quand une nouvelle requête arrive, le serveur regarde dans son cache si
la réponse est déjà présente, auquel cas il renvoie cette réponse sans
re-exécuter la proc.
Mais :
◮
◮
on ne peut gérer les verrous directement (protocole extérieur) ;
il est difficile d’utiliser un cache sur le client.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
17 / 30
Network File System (NFS)
NFSv4
NFSv4
Largement inspiré de AFS et CIFS.
N’utilise plus le protocole UDP.
Délégation de gestion du fichier sur le client (cache)
Meilleure sécurité :
◮
◮
authentification des utilisateurs du client,
chiffrage des échanges.
Amélioration de la montée en charge.
⇒NFSv4 n’est pas compatible avec NFSv3. Il ne faut pas
partager les mêmes fichiers par les 2 méthodes.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
18 / 30
Network File System (NFS)
NFSv4
Gestion de cache
Pour permettre l’utilisation de caches locaux, le serveur doit déléguer la
gestion d’un fichier à l’un des clients :
soit une délégation pour la lecture (signifiant que le client peut lire le
fichier sans demander au serveur s’il a été modifié)
soit une délégation pour l’écriture (signifiant que le serveur peut
écrire sur le fichier sans prévenir le serveur)
Questions :
Quelles sont les contraintes sur ces délégations
En considérant qu’un client peut se déconecter brutalement, quelles
sont les sécurités à appliquer aux délégations
Quelles choix de l’administrateur peuvent avoir un effet sur les
performances du système
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
19 / 30
Serveur Message Block (SMB)
1
Introduction
2
Network File System (NFS)
NFSv3
NFSv4
3
Serveur Message Block (SMB)
Samba
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
20 / 30
Serveur Message Block (SMB)
SMB : Server Message Block
Protocole de Microsoft et Intel permettant le partage de ressources
(disques, imprimantes. . .) à travers un réseau (1987).
On peut se connecter à un
répertoire partagé par un
serveur distant.
On peut lui attribuer une lettre
(le monter ?)
L’utilisateur doit s’identifier
auprès du serveur.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
21 / 30
Serveur Message Block (SMB)
SMB : Server Message Block
SMB est prévu pour être utilisé sur l’interface NetBIOS
Applications
Permet le transfert de données
◮
SMB
◮
Permet le nommage :
NetBios
◮
TCP/IP
NetBEU
IPX/SPX
802.X
PPP
...
c O.Glück & F.Rico (U.C.B.L.)
par session
par datagram
Client/Serveur
◮
de machine
de groupe
séance 2
22 / 30
Serveur Message Block (SMB)
SMB : nom des machines
Chaque machine (client ou serveur) possède un nom NetBios
◮
◮
◮
le nom contient 16 caractères ;
les 15 premiers sont utilisés pour le nom ;
le 16eest un type qui permet de distinguer les stations de travail,
serveur,. . .
Pour associer une adresse à un nom
◮
◮
on peut utiliser le broadcast : chaque nouvel arrivant envoie son nom à
tous, ...
on peut utiliser un serveur WINS :
⋆
⋆
◮
comme un serveur DNS ;
mais dynamique.
Actuellement, avec Active directory, ce service est remplacé par un
serveur DNS dynamique
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
23 / 30
Serveur Message Block (SMB)
SMB : Groupe de machines
Notion de groupe de travail
◮
◮
Ensemble de machine qui partage leurs données avec SMB
Un client qui essaye d’accéder à un partage doit s’authentifier
⋆
⋆
par un mot de passe unique associé au partage (mode partage) ;
par un couple (utilisateur/passwd)
Notion de domaine
◮
◮
◮
un ensemble d’utilisateurs (avec nom et mot de passe) et de serveurs
(avec des droits d’accès)
un primary domain controler (PDC) contient la base de données des
utilisateurs et de leurs mots de passe. Il peut être répliqué par des
domain controlers (DC).
Les autres serveurs délèguent les authentifications aux DCs.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
24 / 30
Serveur Message Block (SMB)
Samba
Interopérabilité avec Samba
Samba : implémentation de SMB sous Unix qui permet un partage de
ressources entre les mondes Unix et Windows ; Samba permet de :
partager un disque ou une imprimante Unix pour des machines
Windows ;
accéder à un disque ou une imprimante Windows depuis une machine
Unix ;
jouer le rôle de DC ou PDC.
Samba peut être membre d’un domaine AD
Pour le moment Samba ne permet pas totalement de remplacer un
Serveur Active Directory :
Dans AD les données utilisateurs sont stockées par un annuaire
LDAP. Samba peut utiliser LDAP mais il doit être installé par ailleur.
Samba ne permet pas la gestion des stratégies de groupes qui
permettent la gestion centralisée des postes windows.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
25 / 30
Serveur Message Block (SMB)
Samba
Question
Quel est l’importance du fait que LDAP et samba soient séparés
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
26 / 30
Serveur Message Block (SMB)
Samba
Samba Détails
Samba se décompose en 3 deamons :
smbd le serveur SMB/CIFS
nmbd le serveur winbind
winbindd le client winbind (le programme qui fournit au système linux
les informations machines et utilisateurs.
Le fichier de configuration principale de samba est généralement
/etc/samba/smb.conf. Il contient une description des partages :
Le compte utilisateur [home].
Les imprimantes [ printers ] .
Les profiles initérant [ Profiles ] .
Le partage nécessaire à l’authentification [netlogon] .
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
27 / 30
Serveur Message Block (SMB)
Samba
Samba commandes importantes
smbclient le client SMB permet d’explorer et utiliser les partages
smbmount ou mount −t cifs l’utilitaire qui permet d’ajouter un partage
samba au système de fichier.
net équivalent de la commande windows net :
◮
◮
◮
net join −U nom utilisateur −S 192.168.56.3 joindre le domaine du
serveur 192.168.56.3
net groupmap add unixgroup=root ntgroup=admin mapper les groupe
root sous unix et admin sous windows
sous windows : net use x: \\HORUS\DSK ajoute le partage
\\HORUS\DSK comme disque réseau avec la lettre x:.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
28 / 30
Serveur Message Block (SMB)
Samba
Utilisation de données
Pour distribuer un fichier, on peut utiliser le transfert de fichier ou y
accéder. Selon les cas que faut-il faire ?
Si le fichier est :
◮
◮
◮
◮
petit (assez pour être copié en totalité) ;
nécessaire pour le fonctionnement (ex fichier .xauth) ;
lu/écrit souvent (ntuser .dat) ;
très rarement modifié (installation de logiciels).
Il vaut mieux utiliser le transfert du fichier. Par exemple les profils
itinérants, les fichiers de configuration de la machine, les paquets. . .
Si le fichier est :
◮
◮
◮
trop gros pour être dupliqués ;
difficile à copier localement (installation sans les droits) ;
a des contraintes de synchronisation (travaux étudiants) ;
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
29 / 30
Serveur Message Block (SMB)
Samba
Conclusion Accès au fichiers distants
Accès à des données du réseau de manière transparente :
◮
◮
on configure les système clients et serveurs ;
tous se passe ensuite comme si les données étaient locales.
Les protocoles ont beaucoup été modifiés :
◮
◮
◮
pas forcement de compatibilité ascendante ;
il est parfois nécessaire de préparer les données ;
les besoins ont changé
⋆
⋆
⋆
⋆
réseaux grande distance ;
réseaux sécurisés ;
tolérance au panne, haute disponibilité ;
volumes de données.
À cause de la transparence, il est nécessaire de gérer les droits, accès
concurrents,. . .
⇒ il faut associer au partage de fichier un partage des utilisateurs.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 2
30 / 30