GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
service NFS sous linux
1. Service NFS
Service NFS
1. Introduction
NFS (Network File System) est un protocole créé par SUN vers 1980. Comme sont nom
l’indique, ce protocole est conçu pour permettre le partage de fichier entre système
UNIX/LINUX. Il permet d'organiser les fichiers dans un emplacement central, tout en offrant
la possibilité de laisser des utilisateurs autorisés y accéder. Grâce à NFS, les utilisateurs
peuvent partager des fichiers sur un réseau avec une transparence totale.
•
Il y a une machine qui joue le rôle de serveur de fichiers (appelée serveur NFS).
Elle exporte tout (arborescence racine /) ou partie de son système de fichiers pour une
liste de stations (accessibles par réseau) et avec des restrictions d'accès.
•
L'utilisateur peut monter cette arborescence exportée par le serveur NFS, sur un point
de montage de la machine cliente, de façon tout-à-fait semblable au montage de
systèmes de fichiers des divers périphériques (mount).
•
Mais dans un cadre de travail stable, où le serveur est dédié, il est souhaitable de
monter les ressources NFS au démarrage. Il suffit pour cela d'inclure la description du
montage sur une ligne du fichier /etc/fstab.
•
il crée tout un tas de problèmes de sécurité bien connus des crackers qui peuvent
facilement les exploiter pour obtenir l'accès (lecture, écriture et effacement) à tous vos
fichiers.
2. La configuration d’un serveur NFS
Le serveur NFS exporte (ou publie) un système de fichiers auquel le client peut
accéder par une instruction mount. Lors du montage d’un système de fichiers partagé de ce
type, le serveur vérifie les autorisations du client avant de lui permettre d’accéder aux
ressources partagées. Le serveur NFS utilise aussi les fichiers /etc/hosts.allow et
/etc/hosts.deny (TCP Wrappers) pour déterminer si un hôte donné doit être autorisé ou refusé
pour l'accès via NFS.
1
2. Service NFS
2.1 L’arrêt/démarrage du serveur
Comme les autres services Linux, NFS se gère avec un script placé dans
/etc/rc.d/init.d/. Pour lancer NFS, la commande suivante doit être exécutée :
# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
Ou bien
# /etc/rc.d/init.d/nfs
start
# /etc/rc.d/init.d/nfs
stop
2.3 Le fichier /etc/exports
L'ensemble des configurations pour le serveur NFS ont lieu dans le fichier
/etc/exports que vous devez éventuellement créer s'il n'existe pas. Ce fichier contient la liste
des dossiers exportés ainsi que leurs options d'exportation. Leur déclaration se fait de la
manière suivante :
directory_path
computer1(options1)
computer2(options2)
• directory_path : représente le chemin (absolu) du dossier à exporter
• computer1 et computer2 : sont les ordinateurs et/ou groupe d'ordinateurs ayant
le droit d accéder à cette ressource via un client NFS.
• options1 et options2 définissent la façon dont votre dossier va être exporté. C'est
ici, entre autre, que vous aurez la possibilité de choisir une exportation en lectureécriture ou en lecture seule.
Spécification des machines :
*
(l’ensemble des ordinateurs)
*.ucan.ac.ma,
jaber.ucam.ac.ma
193.201.109.0/255.255.255.0,
193.201.109.1
2
3. Service NFS
Quelques options de partage :
rw : partage en lecture/écriture
ro : partage en lecture
root_squash : Cette option retire au super-utilisateur en connexion distante tous les
privilèges de son statut en lui assignant l'ID d'utilisateur nfsnobody (personne). Ce
faisant, le pouvoir du super-utilisateur distant est réduit au niveau d'utilisateur le plus
bas, l'empêchant d'apporter des modifications non autorisées dans des fichiers sur le
serveur distant. Sinon, l'option no_root_squash annule cette fonction de réduction des
privilèges du super-utilisateur. Afin de limiter le champ d'action de chaque utilisateur
distant, y compris le super-utilisateur, utilisez l'option all_squash.
sync
: fichiers mis à jour sur disque avant la réponse du serveur
async : fichiers mis à jour sur disque indépendamment de la réponse faite par le
serveur (par défaut)
noaccess : permet d'exclure une partie de l'arborescence pour des clients donnés
Exemples :
• Partage de home en lecture seule pour la machine 192.168.0.2 et 192.168.0.3.
/home/franck 192.168.0.2(ro,sync) 192.168.0.3(ro,sync)
• Partage de home en lecture seule pour le réseau 192.168.0.0/255.255.255.0
/home/franck 192.168.0.0/255.255.255.0(ro,sync)
• Répertoire en lecture-écriture pour la machine 192.168.0.2. Toutes les requêtes qui
seront envoyées au serveur seront associées à l'utilisateur et au groupe anonyme grâce
à la directive all_squash.
/nfs/export 192.168.0.2(rw,sync,all_squash)
2.2 La commande exportfs
Chaque fichier exporté vers les utilisateurs distants via NFS ainsi que les droits d'accès
liés à ces systèmes de fichiers sont énumérés dans le fichier /etc/exports. Lorsque le service
3
4. Service NFS
nfs démarre, la commande /usr/sbin/exportfs se lance et lit ce fichier, passe le contrôle à
rpc.mountd pour le processus de montage proprement dit et ensuite à rpc.nfsd où les systèmes
de fichiers sont alors disponibles pour les utilisateurs distants.
Lorsqu'elle est exécutée manuellement, la commande /usr/sbin/exportfs permet au
super-utilisateur d'exporter ou de désexporter sélectivement des répertoires sans redémarrer le
service NFS. Avec les options appropriées, la commande /usr/sbin/exportfs écrit les systèmes
de fichiers exportés dans /var/lib/nfs/xtab OU dans /var/lib/nfs/etab. Puisque rpc.mountd se
réfère au fichier xtab lorsqu'il décide des privilèges d'accès à un système de fichiers, les
changements apportés à la liste des systèmes de fichiers exportés prennent effet
immédiatement.
Ci-dessous figure une liste des options couramment utilisées pour /usr/sbin/exportfs :
• -r provoque la relecture du fichier /etc/exports. Cette option actualise en fait la liste
d'exportation avec tous les changements apportés à /etc/exports.
•
-a fait en sorte que tous les répertoires soient exportés ou non, selon les autres options
passées à exportfs.
•
-o options permet à l'utilisateur de spécifier les répertoires devant être exportés qui ne
sont pas inclus dans la liste de /etc/exports. Ces systèmes de fichiers partagés
supplémentaires doivent être écrits de la même façon qu'ils sont spécifiés dans
/etc/exports. Cette option est utilisée pour tester un système de fichiers avant de
l'ajouter de façon permanente à la liste des systèmes de fichiers à exporter.
•
-i indique à exportfs d'ignorer /etc/exports ; seules les options données depuis la ligne
de commande sont utilisées pour définir les systèmes de fichiers exportés.
•
-u annule l'exportation de répertoires pouvant être montés par des utilisateurs distants.
La commande exportfs -ua suspend le partage de fichiers NFS tout en conservant les
divers démons NFS en marche. Pour permettre au partage de fichiers NFS de se
poursuivre, entrez exportfs -r.
•
-v opération prolixe, où les systèmes de fichiers exportés et non exportés sont affichés
de façon plus détaillée lorsque la commande exportfs est exécutée.
Si aucune option n'est passée à la commande exportfs, une liste de systèmes de fichiers
actuellement exportés s'affiche.
4
5. Service NFS
RRExemple :
• Partage l'ensemble de l'arborescence pour la machine d'ip 192.168.0.42:
# exportfs -o rw,async,no_root_squash "192.168.0.42:/"
• Pour supprimer un partage on utilise l'option -u :
Désactive le partage /:
# exportfs -u "192.168.0.42:/"
• Désactive tout les partages :
# exportfs -ua
• lister tous les partages disponible sur le serveur on utilise exportfs sans arguments :
# exportfs
/home/tito 192.168.0.42
/share 192.168.0.*
2.4 Les démons NFS
Démon
Côté
Nécssaire
Portmap
serveur
Oui
Utilité
Traduit un n° de programme RPC en
port
Rpc.mountd
serveur
Oui
Initie le montage côté serveur
Rpc.nfsd
serveur
Oui
Gère les requêtes d’accès aux fichiers
2.6 La commande showmount
Affiche les ressources disponibles d’un serveur ainsi que les montages déjà effectués
Syntaxe :
Showmount [option …] [host]
Exemple :
# showmount –e ibnourochd
export list for inourochd
5
6. Service NFS
/usr/local/pub ibnsina.inpt.ac.ma
/home
*
Options de showmount :
showmount -a machine : Affiche à la fois le nom du client et le répertoire monté
sous la forme machine:répertoire.
showmount -d machine : Affiche seulement les répertoires montés par un client.
showmount -e machine : Affiche la liste des répertoires exportés par le serveur
NFS.
showmount -h : Fournit un court résumé de l'aide.
showmount -v : Renvoie le numéro de version du programme.
3 La configuration d’un client NFS
Le montage sur le client d’un répertoire distant du serveur peut se faire :
A la volée (manuellement par la commande mount)
Au démarrage (par le système via le fichier /etc/fstab)
Automatiquement (au besoin).
3.1 Montage manuel de système de fichie
Les partages NFS sont montés côté client à l'aide de la commande mount. Le format de la
commande est le suivant :
mount -t <nfs-type> -o <options> <host>:</remote/export> </local/directory>
Remplacez <nfs-type> par nfs pour les serveurs NFSv2 ou NFSv3 ou par nfs4 pour les
serveurs NFSv4. Remplacez <options> par une liste d'options séparées par des virgules pour
le système de fichiers NFS. Remplacez <host> par l'hôte distant, </remote/export> par le
répertoire distant à monter et remplacez </local/directory> par le répertoire local où le
système de fichiers distant devra être monté.
Si vous accédez à un partage NFS en exécutant manuellement la commande mount, le
système de fichiers doit être remonté manuellement une fois le système redémarré.
Exemple :
6
7. Service NFS
# mount
-t nfs
ns1:/usr/local/man
/doc
En fin d'utilisation, le client démonte l'arborescence /tmp en utilisant la commande umount :
# umount
/doc
Le fichier /etc/mtab
Ce fichier est modifié chaque fois que l'utilisateur "monte" ou "démonte" un système de
fichier. Le système tient à jour une table des volumes montés.
Liste des dossiers montés
La commande mount sans paramètres, donne la liste des volumes montés. La commande
consulte la table maintenue à jour dans le fichier mtab.
Attention:
L'accès à la commande "mount" est, par défaut, autorisé juste pour root. Il faut rajouter
l'option "user" dans le fichier /etc/fstab, afin qu'un utilisateur puisse accéder à cette
commande.
Exemple:
/dev/cdrom
/mnt/cdrom
iso9660
noauto,ro
Devient
/dev/cdrom
/mnt/cdrom
iso9660
user,noauto,ro
La prise en compte des modifications est dynamique.
3.2 Montage au démarrage du système
Le fichier /etc/fstab
Au démarrage du système, les volumes déclarés dans le fichier /etc/fstab sont montés.
Ce fichier est utilisé par les démons mount, umount, fsck.. Voici un extrait de ce fichier:
# more /etc/fstab
/dev/hda1
/
ext2
defaults
11
/dev/hda2
swap
swap
defaults
00
/dev/fd0
/mnt/floppy
ext2
noauto
00
/dev/cdrom
/mnt/cdrom
iso9660 user,noauto,ro
ns1:/usr/local/man
/doc
nfs rsize=8192,wsize=8192,timeo=14,intr
00
7
8. Service NFS
La dernière ligne indique que le volume /usr/local/man, situé sur le serveur "ns1", et qui
contient les pages du manuel est un volume nfs, monté sous le nom local /doc. Ce fichier
/etc/fstab évite d'avoir à "monter" manuellement des systèmes de fichiers
Description du fichier /etc/fstab
Champs
description
Champ N 1
système de fichier à monté
Champ N 2
point de montage
Champ N 3
type du système de fichier
Champ N 4
option de montage
Champ N 5
indique les systèmes de fichiers à sauvegarder (0
Champ N 6
ordre de vérification des systèmes de fichier au démarrage
pas de sauvegarde)
Les options
Options
Description
defaults
Correspond a rw,suid,dev,exec,auto,nouser et async
auto
Montage automatique lors d'un appel mount -a
noauto
Pas de montage automatique
user
Autorise l'utilisateur courant à monter/démonter le système de fichier
nouser
Seul le compte root peut monter/démonter le système de fichier
rw
Montage en lecture/écriture
ro
Montage en lecture seule
atime
Met a jour la date à chaque manipulation
noatime
Pas de mise à jour de la date
exec
Autorise l'exécution des programmes
noexec
Pas d'éxecution
setuid
Les bits SUID et SGID sont pris en compte
nosuid
Ne sont pas pris en compte
async
Montage asynchrone
sync
Montage synchrone
8
9. Service NFS
peuvent accélérer les communications NFS en lecture (rsize) et écriture
(wsize) en paramétrant une taille de bloc de données plus grande, en octets,
rsize=8192 et
devant être transféré en même temps. Soyez prudent lorsque vous modifiez
wsize=8192
ces valeurs ; certains noyaux Linux plus anciens et cartes réseaux pourraient
ne pas fonctionner correctement avec des tailles de bloc plus grandes.
permet aux demandes NFS d'être annulées si le serveur est en panne ou ne
intr
peut être joint.
indique le nombre de secondes devant s'écouler avant que l'erreur ne soit
timeo
rapportée.
9