You are on page 1of 25

NFS-NIS sous

Linux
LASFAR Salim
NFS est l'acronyme de Network File System, c'est--dire
un systme de fichiers utilisable sur un rseau.
NFS est utilis pour partager des donnes entre systmes
UNIX.

LP-R2SI:
Administration des
rseaux et scurit
sous Linux.

Encadr Par : Mr M.EL KIRAM

A/NFS: Network File System


Introduction:
NFS est l'acronyme de Network File System, c'est--dire un systme de
fichiers utilisable sur un rseau.
NFS est utilis pour partager des donnes entre systmes UNIX. Si vous
dsirez partager des donnes avec d'autres systmes, veuillez vous rfrer
la page traitant des partages de dossiers, de connexion et d'imprimante
En tant qu'utilisateur, plusieurs raisons peuvent vous pousser partager
des fichiers. tant donn que les besoins peuvent tre diffrents, la suite de
cette documentation s'articule autour de deux aspects :
Si vous souhaitez simplement partager des donnes sur votre rseau local
en configurant le mode graphique de Ubuntu, veuillez vous reportez la
section Partage simple.
Si vous souhaitez monter un serveur de fichier destin fournir des
donnes pour un rseau d'entreprise, veuillez vous reportez la section
Serveur de fichier.

Serveur de fichier:
Le partage de dossier sur un serveur de fichier avec NFS, tel que dcrit ici,
se fait en utilisant la ligne de commande et en se proccupant des
problmes de droit d'accs.

Installation:

Avant toutes choses, il est ncessaire d'installer le paquet nfs-kernel-server

Configuration:
Ensuite, nous allons dfinir les dossiers partager. Toutes les informations
concernant le partage de dossier pour NFS se trouvent dans le fichier

/etc/exports.

ditez le fichier /etc/exports


Dans ce fichier, chaque ligne est dfinie comme ceci :
<dossier partag> <hte>(<options>) <hte2>(<options>)...

Les informations se trouvant sur une ligne sont les suivantes :


<dossier partag> : chemin menant au dossier partag.
<hte> : indique quel est l'hte qui peut accder ce partage, l'hte
peut tre dfinit de plusieurs manires :
une IP : on indique simplement l'adresse IP de la machine pouvant
accder ce partage.
un nom d'hte : on indique le nom complet de l'hte (pour peu qu'il
soit connu du systme au travers d'un DNS ou du fichier hosts).

un nom de groupe rseau NIS (NIS netgroup) qui s'indique sous la


forme @<netgroup>.
un domaine avec un joker qui indique les machines d'un domaine ou
sous-domaine; par exemple : *.ubuntu-fr.org.
un intervalle d'IP avec le masque de sous-rseau; par exemple :
192.168.0.0/24 ou 192.168.0.*
<options> : indique les options de partage; nous n'allons pas
parcourir toutes les options ensemble mais uniquement les plus
importantes.
rw : permet la lecture et l'criture sur un partage pour l'hte dfini
(par dfaut, les partages sont en mode ro; c'est--dire en lecture
seule).
async : permet au serveur NFS de violer le protocole NFS et de
rpondre au requte avant que les changements effectus par la
requte aient t appliqus sur l'unit de stockage.
Cette option amliore les performances mais a un cot au niveau de
l'intgrit des donnes (donnes corrompues ou perdues) en cas de
redmarrage non-propre (par exemple en cas de crash systme).
sync : est le contraire de async. Le serveur NFS respecte le protocole
NFS.
root_squash : force le mapping de l'utilisateur root vers l'utilisateur
anonyme (option par dfaut).
no_root_squash : n'effectue pas de mapping pour l'utilisateur root.
all_squash : force le mapping de tous les utilisateurs vers l'utilisateur
anonyme.
anonuid : indique au serveur NFS l'UID de l'utilisateur anonyme
(considr comme tel dans les prcdentes options de mapping).
anongid : indique au serveur NFS le GID de l'utilisateur anonyme
(considr comme tel dans les prcdentes options de mapping).
Voyons quelques exemples...
Nous souhaitons exporter un rpertoire /srv/archive pour le rseau local
(192.168.0.0/24) en lecture seule, en optimisant les performances (sur un
rpertoire en lecture seule, on peut se le permettre). Nous indiquons la
ligne suivante dans le fichier /etc/exports :
/srv/archive 192.168.0.0/24(ro,async)

Nous souhaitons exporter un rpertoire /srv/temp_add pour un hte


particulier
(lab05.ubuntu-fr.org) en lecture/criture et tous les utilisateurs sont
considrs comme l'utilisateur nfsshare (UID : 5000, GID : 5000). L'hte
lab02.ubuntu-fr.org peut galement y accder mais seulement en lecture
seule. Nous indiquons la ligne suivante dans le fichier /etc/exports :

/srv/temp_add lab05.ubuntufr.org(rw,all_squash,anonuid=5000,anongid=5000,sync)
lab02.ubuntu-fr.org(ro,sync)

Vous obtiendrez tous les dtails concernant les options NFS dans les manpages (man exports).
Remarquez que, si vous n'utilisez pas all_squash, l'UID de l'utilisateur de la
machine cliente sera utilis sur la machine serveur. Ce qui signifie que, soit
vous avez des fichiers /etc/passwd et /etc/group identiques (ce qui est
encore possible dans un petit parc informatique), soit vous utilisez un
serveur d'identit comme NIS afin d'avoir les mmes UID/GID partout.
Mise en route :
Ouvrez un terminal,

Il ne vous reste plus qu' dmarrer votre nouveau serveur de fichier avec la
commande :
sudo /etc/init.d/nfs-kernel-server start

Lorsque vous modifiez le fichier de configuration, n'oubliez pas d'entrer la


commande suivante pour le recharger :
sudo /etc/init.d/nfs-kernel-server reload

Pour redmarrer le serveur NFS compltement, vous devez utiliser cette


commande:
sudo /etc/init.d/nfs-kernel-server restart

Mise en place dun serveur NFS


Configuration des interfaces:
Cot serveur :

Installation de serveur:

Configuration de serveur:
Premirement on va cre les dossiers quon va partager :

On a cre le dossier homes dans /srv et dans ce dernier on a cre data1 et


data2.
Aprs on donne les droits pour tout le monde :

ditez le fichier /etc/exports

Dans ce fichier, chaque ligne est dfinie comme ceci :

On a spcifi loption (rw) pour le dossier data1 sa veux dire que les
utilisateurs on laccs on lecture et criture.
Et loption (ro) pour le dossier data2 sa veux dire que les utilisateurs on
laccs on lecteur seul.
Aprs on redmarre notre service avec la commande : service nfs-kernelserver restart.

Client NFS :
Il faut commencer par installer le paquet nfs-common :

sudo apt-get install nfs-common

Pour monter un partage NFS, vous avez besoin d'un rpertoire vide qui
servira de point de montage.
En gnral (et de prfrence), les points de montage se trouvent dans
/media, mais ces points de montage peuvent se trouver n'importe o dans
votre arborescence root (/).
Pour monter un systme de fichier NFS manuellement, vous utiliserez la
commande suivante :
sudo mount -t nfs <ip_serveur>:<rep_serveur>
<point_montage_local>

Ce qui donne par exemple :

NB : si on excute cette commande (mount t nfs . ) et notre emplacement


est
le dossier dans le quel on va monter notre partage , il faut sortir du dossier
et aprs renter a lui pour puisse voire les fichiers qui sont partag .

Et voila ce quil donne dans linterface graphique :

Certaines options peuvent tre passes la commande mount lors du


montage. Les options les plus intressantes sont les suivantes :
ro : monte le systme de fichier en lecture seule.
rw : monte le systme de fichier en lecture/criture.
hard : si le serveur n'est pas accessible, le noyau place les processus en
attente de la ressource en attente.
soft : si le serveur est inaccessible, on attend le timeout avant de gnrer
une erreur de lecture/criture aux processus impacts.
timeo=XXX : indique le timeout (en mode soft) en secondes (maximum =
60sec).
Ces options se passent via l'argument -o de la commande mount; par
exemple :
sudo mount -t nfs -o ro,soft,timeo=10 192.168.0.40:/home/brol
/media/nfs

Pour dmonter le systme de fichier, vous pouvez utilisez la commande


suivante :
sudo umount <point_montage_local>

Pour monter le serveur de fichier au dmarrage de la machine, vous pouvez


ajouter une ligne ressemblant celle-ci dans le fichier /etc/fstab :
<ip_serveur>:<rep_serveur> <point_montage_local> nfs <options>
0 0

Par exemple :

Et maintenant on va tester les droits (rw et ro) quon a dj attribus aux


dossiers (data1 et data2) au dbut dans le serveur :
On va essayer de modifie un fichier qui situ dans le dossier data1 on
ajoutant la ligne salut ava (sachant quon donn les droits a tout le

mande et avec loption rw = lecture et criture) :

Aprs on enregistre la modification avec la commande ctrl+x puis o


Et voila la modification est effectu :

Et on va essayer de faire la mme chose avec le fichier qui situ dans le


dossier data2 (sachant quon donn les droits a tout le mande et avec
loption ro = lecteur seul) :

Et voila on a une erreur lors de lcriture car on a le dossier juste on lecteur


seul.

B) NIS: Network Information System

Introduction:
Un serveur NIS stocke et distribue donc les informations administratives du
rseau, qui se
comporte ainsi comme un ensemble cohrent de comptes utilisateurs,
groupes, machines, etc.
A l'origine, NIS est sorti sous le nom de Yellow Pages (YP) ou Pages
jaunes mais le nom
tant dpos par la compagnie anglaise British Telecom, Sun a renomm
son protocole NIS.
Cependant, les commandes NIS commencent toutes par yp.
NIS est rput pour tre faible en termes de scurit." voir :

LDAP
Kerberos
RADIUS

Serveur de fichier:

Installation:

Avant toutes choses, il est ncessaire d'installer le paquet portmap

Apres sa vient ltape dinstallation de NIS et sa configutation on utlise la


commande :
Apt-get install nis

Configuration du serveur NIS:


Editez le fichier /etc/sysconfig/network et rajoutez:
NISDOMAIN=alphaville
Ensuite ditez le fichier /etc/yp.conf et rajouter
domain alphaville server obelix
Vous pouvez ventuellement mettre l'adresse IP de votre serveur NIS.
Eventuellement vous pouvez rajouter les serveurs slaves en rajoutant la
suite:
ypserver nom-du-serveur-slave
Maintenant vous devez modifier votre fichier /etc/nsswitch.conf pour les
lignes hosts, group et passwd (uniqument les maps exports) pour prendre
en compte d'abord les fichiers /etc/hosts, /etc/group et /etc/passwd
locaux puis ceux du serveur NIS, on aura donc pour les lignes en question:
passwd: compat
shadow: compat
group: compat
hosts: files nis dns
L'argument compat permet de pouvoir mixer des informations du serveur
NIS et des informations du poste client (voir illustration plus bas).
Lancement du client NIS sous Mandriva
Tapez maintenant les commandes suivantes:

domainname alphaville
/etc/rc.d/init.d/ypbind start
/etc/rc.d/init.d/portmap start
Test de fonctionnement
Pour voir si tout marche, il suffit de taper sur le client:
ypwhich
Vous devriez voir en rponse:
obelix
C'est dire le nom de votre serveur NIS

Configuration du serveur NIS:


Vous devez installer yp-tools, portmap et ypbind avec urpmi. Ca va vous
installer des excutables commenant par yp sous /usr/bin et /usr/sbin et
un rpertoire /var/yp. yp-tools est un package contenant un ensemble
d'outils pour le NIS, ypbind est le daemon qui va tourner sur les postes
clients.

Editez le fichier /etc/sysconfig/network et rajoutez:


NISDOMAIN=alphaville
Ensuite ditez le fichier /etc/yp.conf et rajouter
domain alphaville server obelix
Vous pouvez ventuellement mettre l'adresse IP de votre serveur NIS.
Eventuellement vous pouvez rajouter les serveurs slaves en rajoutant la
suite:
ypserver nom-du-serveur-slave
Maintenant vous devez modifier votre fichier /etc/nsswitch.conf pour les

lignes hosts, group et passwd (uniqument les maps exports) pour prendre
en compte d'abord les fichiers /etc/hosts, /etc/group et /etc/passwd
locaux puis ceux du serveur NIS, on aura donc pour les lignes en question:
passwd: compat
shadow: compat
group: compat
hosts: files nis dns
L'argument compat permet de pouvoir mixer des informations du serveur
NIS et des informations du poste client (voir illustration plus bas).
Lancement du client NIS sous ubuntu
Tapez maintenant les commandes suivantes:
domainname alphaville
/etc/rc.d/init.d/ypbind start
/etc/rc.d/init.d/portmap start
Test de fonctionnement
Pour voir si tout marche, il suffit de taper sur le client:
ypwhich
Vous devriez voir en rponse:
obelix
C'est dire le nom de votre serveur NIS.
Configuration du client si vous utilisez NFS
Cas 1
Rajoutez dans /etc/fstab
tavel:/home /home nfs defaults 0 0
Cas 2
Vous devez crer un rpertoire /export/home

mkdir /export
mkdir /export/home
Puis rajoutez dans /etc/fstab la ligne suivante:
tavel:/home /export/home nfs defaults 0 0
Dans les deux cas, tapez:
mount -a
Pour que le rpertoire soit effectivement mont.
Configuration du client si vous utilisez l'automontage
Cas 1
Rajoutez votre fichier /etc/auto.master la ligne suivante:
/ /etc/auto.home --timeout=60
Cas 2
Crer un rpertoire /export :
mkdir /export
Rajoutez au fichier /etc/auto.master la ligne suivante:
/export /etc/auto.home --timeout=60
Dans les deux cas le fichier /etc/auto.home contiendra:
home -fstype=nfs obelix:/home
Pour relancer l'automontage et prendre en compte les nouvelles
modifications, il suffit de taper:
/etc/rc.d/init.d/autofs restart
Modifier /etc/passwd
En toute rigueur au fichier /etc/passwd du client vous devez rajouter la
ligne suivante tout la fin:
+::::::

Mais ce n'est pas absolument ncessaire, a marchera trs bien sans. Mais
on peut aller plus loin, les ":" correspondent en fait aux champs de
/etc/passwd, qui je le rappelle sont:
loginassord:uid:gid:commentaire:homedirectory:shell
Si vous voulez que l'utilisateur toto dclar sur le serveur maitre utilise un
shell /bin/ksh, vous rajouterez donc:
+toto::::::/bin/ksh
Si vous voulez que celui ci ait comme homedirectory /tmp
+toto:::::/tmp:
C'est l'intrt de l'argument compat du fichier /etc/nsswitch.conf, sans quoi
il ne sera pas possible de panacher des informations du serveur NIS et des
informations des fichiers locaux.
Enfin si vous voulez limiter le nombre de comptes accessibles par nis
(utilisateur toto, titi, tata), il suffira de rajouter:
+toto::::::
+titi::::::
+tata::::::

Mise en place dun serveur


a)-configuration de notre serveur :
1-instalation de portmap via la commande : apt-get install portmap

2-update-rc.d - Pour installer ou supprimer les liens vers les scripts d'
initialisation de type System-V

Quand l'option defaults est utilise, update-rc.d cre des liens pour dmarrer
un service dans les niveaux de fonctionnement 2345 et des liens pour arrter
un service dans les niveaux 016.

3- #apt-get install nis pour installer service nis , via cette commande une
interface saffiche afin de saisir notre nom de domaine comme si de suite :

4-on liste le fichier nis via la commande :


#vi /etc/default/nis

On rend notre service nis master et on ninterdit quil soit un client

5- on liste le fichier ypserv.securenets afin de prciser les clients de notre


serveur nis on peux donner ladresse du rseau

On determine ladress comme suit :

6-editer le fichier yp/Makefile tout en ajoutant shadow comme si dessous


all: passwd group shadow
Maintenant dans le fichier /etc/ypserv.securenets vous pouvez restreindre l'accs
aux clients comme precedement

7-on redmarre notre service pour prendre en considration les changement :

8- Maintenant, gnrez la base de donne NIS (YP). Sur le serveur matre,


lancez :
# /usr/lib/yp/ypinit -m

Ctrl+d lorsquon termine dajouter les hosts

9-update des bib :

10- ajout des utilisateur et leurs mot de passe

b)-configuration de notre client :


1-on commence par linstallation de l nis

On installe aussi le portmap de la meme manire que le serveur

On ajoute l@ ip du serveur au niveau du fichier host du client

Voila sa ping

On ajoute dans l fichier yp.conf le nom de domaine et le


nom nis server

Et puis notre client fonctionne avec les utilisateur nis server

You might also like