polux     Julien Thomas - TELECOM Bretagne frenchenglish

Déploiement du serveur NFS

Le serveur de fichier est un serveur NFSv3, installé par emerge du paquet nfs-utils en version 1.0.12. Les raisons de ce choix, par rapport à Samba, sont principalement du à des raisons de standard et d'intégration du serveur dans l'environnement UNIX/Linux. La version 4 du protocol est encore trop prématurée pour être considérée comme révélatrice d'un certain standard dans le milieu industriel. C'est ce qui a écarter la choix de cette option malgré les fonctionalités et les notions sécuritaires que cette version apportait.

Principe de fonctionnement

Le but premier des montages NFS est de permettre un partage des serveurs mails entre les démons SMTP, IMAP et POP répartis sur différents serveurs. Pour ce faire, les fichiers sont stockés sur la machine 4 (MV4) et monté via un partage NFS sur les autres serveurs. Les restrictions d'accès pour les serveurs mails sont discutés dans les parties sur les configurations des serveurs mails. Cependant, il peut être également utile de fournir des répertoires partagés pour les comptes centralisés sur LDAP

L'architecture proposée est centralisée sur la machine mv4 : le répertoire /home-nfs, également redirigé sur /home/nfs pour fournir une structure uniforme contient l'ensemble des répertoires partagés. Avec cette configuration, l'accès à /home/nfs/mailbox sur les serveurs donne acc ès aux mails des utilisateurs. Ce répertoire sera utilisé par les serveurs de mails. Les autres répertoires sont ceux des utilisateurs configurés sur LDAP (il n'y aura donc pas d'utilisateur mailbox).

Une explication détaillée de la configuration d'un service NFS (clients et serveur) est également disponible sur nfs.sourceforge.net

Configuration du serveur

Configuration de LDAP

Pour configurer le montage des répertoires des utilisateurs, il est nécessaire de rajouter des informations aux comptes serveurs définis sur LDAP : l'attribut homeDirectory contient maintenant la valeur /home/nfs/UID (par exemple /home/nfs/admin pour le compte admin).

Partage des répertoire

Après avoir installé les différents packages, il faut premièrement lancer le démon NFS pour que les clients puissent effectuer des montages distants.

/etc/init.d/nfs start
rc-update add nfs default

Il faut ensuite créer le répertoire de montage /home-nfs et configurer les différentes exportations

mkdir /home-nfs
nano /etc/exportfs
/etc/exportfs -a

La ligne suivante doit être rajouté dans /etc/exportfs : /home-nfs/ *(rw,subtree_check,sync). Elle signifie que le répertoire /home-nfs/ est

  • montable par tous,
  • monté en lecture et écriture,
  • subtree_check, pour éviter d'avoir des requêtes incorrectes,
  • ync, pour avoir une stabilité des systèmes de fichiers, même en cas de problème entre le client et le serveur NFS.

Les répertoires des comptes serveurs étant crées manuellement, il est nécessaire de créer les répertoires manuellement également. Pour le compte admin par exemple, les commandes a effectuer sont

/home-nfs $ mkdir admin
/home-nfs $ chown admin.admin admin/
/home-nfs $ chmod ug=rw admin/

Configuration des clients

Après avoir installé portmap, la principal étape consiste à le lancer et à l'ajouter en tant que service par défaut. Le but de portmap est de gérer les Remote Procedure Call (RPC) invoquées lors du montage d'un fichier en nfs. Sans ce démon, une tentative de montage en NFS va bloquer pendant le shell pendant quelques minutes.

rc-update add portmap default
/etc/init.d/portmap start

Après avoir lancé le démon, il faut créer le point de montage local, qui sera le même pour tous les serveurs : mkdir /home/nfs.

La troisième étape consiste à effectuer le montage distant. Il est possible de l'effectuer en ligne de commande par mount -t nfs 10.133.14.1:/home-nfs /home/nfs mais la solution la plus simple consiste à ajouter le montage dans /etc/fstab. Ce fichier permet en effet de monter automatiquement les repertoires au démarrage.

Voici un exemple de fichier fstab après rajout de la ligne souhaité :
# fs mountpoint type opts dump/pass
...
# NFS mount
10.133.14.1 :/home-nfs /home/nfs nfs rw,noatime,rsize=1024,wsize=1024 0 0
Les différentes options rajoutées dans /etc/fstab sont
  • adresse : 10.133.14.1 :/home-nfs,
  • lien de montage local : /home/nfs,
  • type de fichier : nfs,
  • options :
    • rw : montage du repertoire en lecture et écriture,
    • noatime : désactive l'option date de dernier accès de chaque fichier soit conservé, afin d'améliorer les performances. Cette option n'est pas primordiale si les repertoires ne concernent que les mails ou des données personnelles,
    • rsize=1024 : taille des blocs en lecture,
    • wsize=1024 : a taille des blocs en écriture,
  • 0 0 sont des options suplémentaires qui concernent les sauvegardes par dump (sauvegarde simple dans notre cas) et la vérification des fichiers au boot par fsck (désactivée dans notre cas).

Pour que le montage soit accessible après cet ajout (ie sans redémarrer le serveur), il est nécessaire de lancer la commande mount /home/nfs.



«Design-by-assumption works as long as assumptions hold. Assumptions are shortcuts to useful efficiencies, provided they are not violated. »
David S. Isenberg

«If the kernel is not evaluated to an MLS-capable protection profile, MLS features cannot be trusted regardless of how impressive the demonstration looks.»
J. Davidson