Vous êtes sur la page 1sur 13

Chapitre 2

Service NFS

Service NFS

1. Introduction
NFS (Network File System) est un protocole cr par SUN vers 1980. Comme sont nom
lindique, ce protocole est conu pour permettre le partage de fichier entre systme
UNIX/LINUX. Il permet d'organiser les fichiers dans un emplacement central, tout en offrant
la possibilit de laisser des utilisateurs autoriss y accder. Grce NFS, les utilisateurs
peuvent partager des fichiers sur un rseau avec une transparence totale.

Il y a une machine qui joue le rle de serveur de fichiers (appele serveur NFS).
Elle

exporte tout (arborescence racine /) ou partie de son systme de fichiers pour une

liste de stations (accessibles par rseau) et avec des restrictions d'accs.

L'utilisateur peut monter cette arborescence exporte par le serveur NFS, sur un point
de montage de la machine cliente, de faon tout--fait semblable au montage de
systmes de fichiers des divers priphriques (mount).

Mais dans un cadre de travail stable, o le serveur est ddi, il est souhaitable de
monter les ressources NFS au dmarrage. Il suffit pour cela d'inclure la description du
montage sur une ligne du fichier /etc/fstab.

il cre tout un tas de problmes de scurit bien connus des crackers qui peuvent
facilement les exploiter pour obtenir l'accs (lecture, criture et effacement) tous vos
fichiers.

2. La configuration dun serveur NFS


Le serveur NFS exporte (ou publie) un systme de fichiers auquel le client peut
accder par une instruction mount. Lors du montage dun systme de fichiers partag de ce
type, le serveur vrifie les autorisations du client avant de lui permettre daccder aux
ressources partages. Le serveur NFS utilise aussi les fichiers /etc/hosts.allow et
/etc/hosts.deny (TCP Wrappers) pour dterminer si un hte donn doit tre autoris ou refus
pour l'accs via NFS.

2.1 Larrt/dmarrage du serveur


SALIM

Chapitre 2

Service NFS

Comme les autres services Linux, NFS se gre avec un script plac dans
/etc/rc.d/init.d/. Pour lancer NFS, la commande suivante doit tre excute :
# 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

Pour afficher l'tat du dmon NFS, utilisez la commande suivante :


# service nfs status
Pour lancer le service nfs au dmarrage, utilisez la commande suivante :
#chkconfig --level 345 nfs on
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 crer s'il n'existe pas. Ce fichier contient la liste
des dossiers exports ainsi que leurs options d'exportation. Leur dclaration se fait de la
manire suivante :
directory_path

computer1(options1)

computer2(options2)

directory_path : reprsente le chemin (absolu) du dossier exporter


computer1 et computer2 : sont les ordinateurs et/ou groupe d'ordinateurs ayant
le droit d accder cette ressource via un client NFS.
options1 et options2 dfinissent la faon dont votre dossier va tre export. C'est
ici, entre autre, que vous aurez la possibilit de choisir une exportation en lecturecriture ou en lecture seule.

SALIM

Chapitre 2

Service NFS

Spcification des machines :

(lensemble des ordinateurs)

*.ucan.ac.ma,

jaber.ucam.ac.ma

193.201.109.0/255.255.255.0,

193.201.109.1

Quelques options de partage :

rw : partage en lecture/criture

ro : partage en lecture

root_squash : spcifie que le root de la machine local (sur laquelle le rpertoire est
mont) n'a pas les droits de root sur le rpertoire partag de la machine distante
(l'option no_root_squash spcifie que le root de la machine sur laquelle le rpertoire
est mont a les droits de root sur le rpertoire). L'option root_squash est l'option par
dfaut.
Afin de limiter le champ d'action de chaque utilisateur distant, y compris le superutilisateur, utilisez l'option all_squash.

sync : le serveur NFS naffiche les changements sur le client quaprs leur criture
relle sur le disque. Ce paramtre peut avoir un impact significatif sur les
performances mais plus scuris.

async : le serveur NFS affiche les changements sur le client avant que ceux ci soient
rellement effectus sur le disque. le transfert est plus rapide mais constitue un risque
en cas de disfonctionnement lectrique sur le serveur NFS.

noaccess : permet d'exclure une partie de l'arborescence pour des clients donns

Exemples :

Partage de home en lecture seule pour la machine 192.168.0.2 et 192.168.0.3.

/home/Ali 192.168.0.2(ro,sync) 192.168.0.3(ro,sync)

Partage de home en lecture seule pour le rseau 192.168.0.0/255.255.255.0

/home/Ali 192.168.0.0/255.255.255.0(ro,sync)

SALIM

Chapitre 2

Service NFS

Rpertoire en lecture-criture pour la machine 192.168.0.2. Toutes les requtes qui


seront envoyes au serveur seront associes l'utilisateur et au groupe anonyme grce
la directive all_squash.

/nfs/export 192.168.0.2(rw,sync,all_squash)

Le rpertoire /nfs/unix est export en lecture-criture pour tout le monde. Tandis que le
sous rpertoire /nfs/unix/exam est interdit d'accs par le paramtre noaccess.

/nfs/unix *(rw)
/nfs/unix/exam *( noaccess)

2.2 La commande exportfs


Chaque fichier export vers les utilisateurs distants via NFS ainsi que les droits d'accs
lis ces systmes de fichiers sont numrs dans le fichier /etc/exports. Lorsque le service
nfs dmarre, la commande /usr/sbin/exportfs se lance et lit ce fichier, passe le contrle
rpc.mountd pour le processus de montage proprement dit et ensuite rpc.nfsd o les systmes
de fichiers sont alors disponibles pour les utilisateurs distants.
Lorsqu'elle est excute manuellement, la commande /usr/sbin/exportfs permet au
super-utilisateur d'exporter ou de dsexporter slectivement des rpertoires sans redmarrer le
service NFS. Avec les options appropries, la commande /usr/sbin/exportfs crit les systmes
de fichiers exports dans /var/lib/nfs/xtab OU dans /var/lib/nfs/etab. Puisque rpc.mountd se
rfre au fichier xtab lorsqu'il dcide des privilges d'accs un systme de fichiers, les
changements apports la liste des systmes de fichiers exports prennent effet
immdiatement.
Ci-dessous figure une liste des options couramment utilises pour /usr/sbin/exportfs :

-o options permet l'utilisateur de spcifier les rpertoires devant tre exports qui ne
sont pas inclus dans la liste de /etc/exports. Ces systmes de fichiers partags
supplmentaires doivent tre crits de la mme faon qu'ils sont spcifis dans
/etc/exports. Cette option est utilise pour tester un systme de fichiers avant de
l'ajouter de faon permanente la liste des systmes de fichiers exporter.

SALIM

Chapitre 2

Service NFS

-r provoque la relecture du fichier /etc/exports. Cette option actualise en fait la liste


d'exportation avec tous les changements apports /etc/exports.

-a fait en sorte que tous les rpertoires soient exports ou non, selon les autres options
passes exportfs.

-i indique exportfs d'ignorer /etc/exports ; seules les options donnes depuis la ligne
de commande sont utilises pour dfinir les systmes de fichiers exports.

-u annule l'exportation de rpertoires pouvant tre monts par des utilisateurs distants.
La commande exportfs -ua suspend le partage de fichiers NFS tout en conservant les
divers dmons NFS en marche. Pour permettre au partage de fichiers NFS de se
poursuivre, entrez exportfs -r.

-v opration prolixe, o les systmes de fichiers exports et non exports sont affichs
de faon plus dtaille lorsque la commande exportfs est excute.

Si aucune option n'est passe la commande exportfs, une liste de systmes de fichiers
actuellement exports s'affiche.
Exemple :

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 :


-

Dsactive le partage /:

# exportfs -u "192.168.0.42:/"
-

Dsactive tout les partages :

# exportfs -ua

SALIM

lister tous les partages disponible sur le serveur on utilise exportfs sans arguments :

Chapitre 2

Service NFS

# exportfs
/home/tito 192.168.0.42
/share 192.168.0.*
2.4 Les dmons NFS
Dmon
Portmap

Ct
serveur

Rpc.mountd
Rpc.nfsd

serveur
serveur

Ncssaire
Utilit
Oui
Traduit un n de programme RPC en
Oui
Oui

port
Initie le montage ct serveur
Gre les requtes daccs aux fichiers

3. La configuration dun client NFS


Le montage sur le client dun rpertoire distant du serveur peut se faire :

A la vole (manuellement par la commande mount)

Au dmarrage (par le systme via le fichier /etc/fstab)

Automatiquement (au besoin).

3.1 Montage manuel de systme de fichie


Les partages NFS sont monts ct 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 spares par des virgules pour
le systme de fichiers NFS. Remplacez <host> par l'hte distant, </remote/export> par le
rpertoire distant monter et remplacez </local/directory> par le rpertoire local o le
systme de fichiers distant devra tre mont.
Si vous accdez un partage NFS en excutant manuellement la commande mount, le
systme de fichiers doit tre remont manuellement une fois le systme redmarr.
Exemple :
# mount

SALIM

-t nfs

ns1:/usr/local/man

/doc

Chapitre 2

Service NFS

En fin d'utilisation, le client dmonte 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 "dmonte" un systme de
fichier. Le systme tient jour une table des volumes monts.
Liste des dossiers monts
La commande mount sans paramtres, donne la liste des volumes monts. La commande
consulte la table maintenue jour dans le fichier mtab.
Attention:

L'accs la commande "mount" est, par dfaut, autoris juste pour root. Il faut rajouter
l'option "user" dans le fichier /etc/fstab, afin qu'un utilisateur puisse accder 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 dmarrage du systme
Le fichier /etc/fstab
Au dmarrage du systme, les volumes dclars dans le fichier /etc/fstab sont monts.
Ce fichier est utilis par les dmons 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

La dernire 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 systmes de fichiers

SALIM

Chapitre 2

Service NFS

Description du fichier /etc/fstab


Champs
Champ N 1
Champ N 2
Champ N 3
Champ N 4
Champ N 5
Champ N 6

description
systme de fichier mont
point de montage
type du systme de fichier
option de montage
indique les systmes de fichiers sauvegarder (0 pas de sauvegarde)
ordre de vrification des systmes de fichier au dmarrage

Les options
Options
defaults
auto
noauto
user
nouser
rw
ro
atime
noatime
exec
noexec
setuid
nosuid
async
sync

rsize=8192
wsize=8192

Intr

Timeo

Description
Correspond a rw,suid,dev,exec,auto,nouser et async
Montage automatique lors d'un appel mount -a
Pas de montage automatique
Autorise l'utilisateur courant monter/dmonter le systme de fichier
Seul le compte root peut monter/dmonter le systme de fichier
Montage en lecture/criture
Montage en lecture seule
Met a jour la date chaque manipulation
Pas de mise jour de la date
Autorise l'excution des programmes
Pas d'xecution
Les bits SUID et SGID sont pris en compte
Ne sont pas pris en compte
Montage asynchrone
Montage synchrone
peuvent acclrer les communications NFS en lecture (rsize) et criture
et

(wsize) en paramtrant une taille de bloc de donnes plus grande, en octets,


devant tre transfr en mme temps. Soyez prudent lorsque vous modifiez ces
valeurs ; certains noyaux Linux plus anciens et cartes rseaux pourraient ne
pas fonctionner correctement avec des tailles de bloc plus grandes.
permet aux demandes NFS d'tre annules si le serveur est en panne ou ne peut
tre joint.
indique le nombre de secondes devant s'couler avant que l'erreur ne soit
rapporte.

3.3 La commande showmount


Affiche les ressources disponibles dun serveur ainsi que les montages dj effectus
Syntaxe :
SALIM

Chapitre 2

Service NFS

Showmount [option ] [host]


Exemple :
# showmount e ibnourochd
export list for inourochd
/usr/local/pub ibnsina.inpt.ac.ma
/home

Options de showmount :
showmount -a machine : Affiche la fois le nom du client et le rpertoire mont
sous la forme machine:rpertoire.
showmount -d machine : Affiche seulement les rpertoires monts par un client.
showmount -e machine : Affiche la liste des rpertoires exports par le serveur
NFS.
showmount -h : Fournit un court rsum de l'aide.
showmount -v : Renvoie le numro de version du programme.
3.4. Montage automatique des systmes de fichiers NFS au

moyen de autofs

L'un des dsavantages lorsque l'on utilise /etc/fstab est que, peu importe le temps
consacr utiliser le systme de fichiers mont, le systme doit y ddier des ressources pour
le maintenir en place. Cela n'est pas problmatique si l'on parle de quelques montages, mais
peut le devenir lorsque le systme maintient les montages d'une douzaine d'autres systmes en
mme temps car les performances d'ensemble du systme peuvent en souffrir. Donc, au lieu
d'avoir recours /etc/fstab, vous pouvez vous servir de l'utilitaire automount, qui monte et
dmonte des systmes de fichiers NFS automatiquement et permet de limiter les ressources
employes.
Le montage automatique d'un partage NFS prvoit l'utilisation d'autofs. Autofs utilise
les dmons automount pour grer les points de montage en les montants de faon dynamique
lorsqu'on y accde.
Autofs consulte le fichier de configuration matre /etc/auto.master pour dterminer
quels points de montage sont dfinis. Il amorce ensuite un processus de montage
automatique avec les paramtres adquats pour chaque point de montage. Chaque ligne du
fichier de configuration matre dfinit un point de montage et un fichier de configuration
SALIM

Chapitre 2

Service NFS

spar qui associe un fichier de priphrique ce point de montage. Par exemple, si le


fichier /etc/auto.mnt dfinit des points de montage dans le rpertoire /mnt, ceci est dfini dans
le fichier /etc/auto.master.

3.3.1. Le fichier /etc/auto.master


Le rle du fichier /etc/autofs/auto.master est d'indiquer autofs o se situe le fichier de
configuration des montages.
Chaque entre dans auto.master a trois champs. Le premier fournit le point de
montage. Le second indique la position du fichier de configuration et le troisime, qui est
optionnel, peut contenir des informations telles que la valeur du dlai d'attente.
<point-de-montage> <fichier-de-configuration>

<options>

Exemple :
/doc

/etc/auto.doc

--timeout 60

3.3.2. Fichiers de configurations des points de montage


Le fichier de configuration est l'quivalent de fstab, c'est dire que c'est le fichier o
l'on dfinit les points de montages et les partages.
Le fichier de configuration n'existe pas forcment. Donc il faut le crer. Il s'organise un
peu la manire de fstab en trois champs: point de montage, options de montages,
priphrique monter.
<point de montage>

<options de montages> <priphrique monter>

Exemple:
Doc-unix

-rw

192.168.1.1:/partage

REMARQUE: Autofs cr pour vous les points de montages. Inutile de crer les
rpertoires correspondants.
Exemple :

SALIM

10

Chapitre 2

Service NFS

Pour monter le rpertoire /project de la machine distante pc2.ofppt.org sur le point de


montage /mnt/mon-project de votre machine, ajoutez au fichier auto.master la ligne suivante :
/mnt /etc/auto.mnt --timeout 60
Loption timeout indique que l'on veut que le montage soit dmont au bout de 60
secondes
Ajoutez la ligne suivante au fichier de configuration /etc/auto.mnt :
Mom-project -rw,rsize=8192,wsize=8192 pc2.ofppt.org:/project
Le premier champ de /etc/auto.mnt affiche le nom du sous-rpertoire /mnt. Ce rpertoire
est cr de faon dynamique par automount. Il ne devrait pas en ralit exister sur la machine
client. Le second champ contient les options de montage, telles que rw pour un accs en
lecture et en criture. Le troisime champ indique l'adresse du serveur NFS d'exportation,
comprenant le nom d'hte et le rpertoire.
Remarque
Le rpertoire /mnt doit exister sur le systme de fichiers local. Celui-ci ne devrait
pas contenir de sous-rpertoires de /mnt.
Autofs est un service. Pour dmarrer le service, entrez une invite de shell les
commandes suivantes :
service autofs restart
Si vous modifiez le fichier de configuration /etc/auto.master pendant que autofs
s'excute, vous devez dire au dmon automount de relire le fichier en entrant la commande
suivante :
service autofs reload

3. Scuriser NFS
NFS fonctionne bien pour partager des systmes de fichiers entiers avec de nombreux
htes connus et de faon trs transparente. Nombre d'utilisateurs ont accs des fichiers sur
un montage NFS sans mme s'apercevoir que le systme de fichiers qu'ils utilisent
n'appartient pas leur systme local. Cependant, la facilit d'utilisation va de paire avec toute
une srie de problmes potentiels de scurit.
Vous devriez tenir compte des informations suivantes lorsque vous exportez des
systmes de fichiers NFS sur un serveur ou les montez sur un client. Ainsi, vous minimiserez
les risques de scurit NFS et protgerez mieux vos donnes et votre quipement.
SALIM

11

Chapitre 2

Service NFS

3.1. Accs hte


NFS contrle qui peut monter et exporter un systme de fichiers en fonction de l'hte
prsentant la demande de montage et non en fonction de l'utilisateur qui utilise le systme de
fichiers. Les htes doivent obtenir des droits explicites pour monter un systme de fichiers. Le
contrle d'accs n'est cependant pas possible pour les utilisateurs, si ce n'est les autorisations
de fichier et de rpertoire. Autrement dit, lorsque vous exportez un systme de fichiers via
NFS vers un hte distant, vous ne faites pas confiance uniquement l'hte qui monte le
systme de fichiers, mais aussi aux utilisateurs qui ont accs cet hte et, par consquent,
votre systme de fichiers. Ce risque peut tre contrl, en exigeant des montages en lecture
seule par exemple ou en rduisant (squash) les utilisateurs un ID utilisateur et groupe
commun, ce qui peut empcher toutefois que le montage ne soit utilis de la faon souhaite
l'origine.
De plus, si l'auteur d'une attaque prend le contrle du serveur DNS utilis par le systme
qui exporte le systme de fichiers NFS, le systme associ un nom d'hte spcifique ou un
nom de domaine pleinement qualifi peut tre point vers un ordinateur non autoris. A ce
stade, l'ordinateur non autoris est le systme autoris monter le partage NFS car aucune
information de nom d'utilisateur ou de mot de passe n'est change pour fournir plus de
scurit au montage NFS.
Les caractres spciaux devraient tre utiliss avec modration lorsque vous accordez
l'accs un hte un partage NFS. La porte du caractre spcial peut englober des systmes
dont vous ignorez l'existence et qui ne devraient pas tre autoriss monter le systme de
fichiers.

3.2. Autorisations de fichier


Lorsqu'un systme de fichiers est mont en lecture-criture par un hte distant, la seule
protection pour les fichiers partags repose dans leurs autorisations et leur appartenance un
utilisateur et un groupe. Si deux utilisateurs partageant la mme valeur d'ID utilisateur
montent le mme systme de fichiers NFS, ils pourront modifier leurs fichiers l'un et l'autre.
De plus, tout individu connect en tant que super-utilisateur sur le systme client peut utiliser
la commande su pour devenir un utilisateur ayant accs des fichiers spcifiques via le
partage NFS.

SALIM

12

Chapitre 2

Service NFS

Le comportement par dfaut lors de l'exportation d'un systme de fichiers via NFS est
d'utiliser root squashing. Cela a pour effet de paramtrer sur une valeur du compte nobody du
serveur l'ID utilisateur de tout utilisateur se servant du partage NFS en tant que superutilisateur sur son ordinateur local. Vous ne devriez pas dsactiver la rduction du superutilisateur, moins que la prsence de nombreux super-utilisateurs sur votre systme ne vous
drange pas.
Si vous n'autorisez les utilisateurs qu' lire les fichiers via votre partage NFS, vous
pourriez utiliser l'option all_squash, qui fait en sorte que tous les utilisateurs accdant votre
systme de fichiers export aient l'ID utilisateur de l'utilisateur nobody.

SALIM

13

Vous aimerez peut-être aussi