Configurer un serveur NFS4 et ses clients
NFS s'est fait peau neuve. Les versions précédentes, avaient quelques lacunes. La version 1 et 2 ne géraient que l'UDP, la 3 rajoutait le TCP, mais ces trois versions posaient de gros problèmes de sécurité.La version 4 a été entièrement réécrite. Plus rapide, plus sécurisée, et un poil plus compliquée à configurer :)
Côté Serveur
Contrairement à la version 3 où il suffisait simplement de donner le chemin vers le répertoire à partager, puis l'ip ou le réseau autorisé, ainsi que les options de partage, la version 4 a quelques petites particularités.
Il faut déclarer un partage racine ainsi que les partages réels. Prenons l'exemple d'un home que nous voudrions partager. Le partager directement depuis /home est une erreur de sécurité. Créons donc le répertoire /export, puis /export/mon_user, en root :
mkdir /export
mkdir /export/mon_user
Maintenant, nous allons créer un montage qui va permettre de monter le home de mon_user dans /export/mon_user :
Editez le fstab (nano /etc/fstab) et ajoutez à la fin la ligne :
/home/mon_user /export/mon_user none bind 0 0
Un petit mount -a et le montage rajouté s'effectue sans redémarrer la machine. Nous avons donc accès au home de mon_user sous /export/mon_user.
Maintenant, déclarons les partages :
nano /etc/exports
Sur la première ligne on déclare la racine /export :
/export 192.168.1.0/24(rw,fsid=0,no_subtree_check,sync)
/export/mon_user 192.168.1.0/24(rw,no_subtree_check,sync,nohide)
Sur la deuxième, on déclare le partage du home mon_user. C'est l'option fsid=0 qui permet de déclarer que /export est une racine. Le rw donne les droits lecture/écriture, le no_subtree_check, comme sa traduction demande de ne pas checker les sous-répertoires (gagner en rapidité). Le sync est important. Vous pouvez soit utiliser sync, soit async. Le async permet au poste de "tricher" sur le protocole NFS, afin d'aller plus vite, mais sous peine de perdre des données ou d'effectuer des erreurs d'écritures. Je ne vous le conseille pas, utilisez sync.
Pour les IP autorisées, plutôt que d'autoriser tout le réseau 192.168.1.0, vous auriez pu par exemple n'en autoriser qu'une, ou seulement certaines. On pourrait même autoriser la racine à une plage d'ip, mais n'autoriser que certains partages à certaines IP, par exemple :
/export 192.168.1.0/24(rw,fsid=0,no_subtree_check,sync)
/export/mon_user 192.168.1.2(rw,no_subtree_check,sync,nohide)
/export/mon_user2 192.168.1.3(rw,no_subtree_check,sync,nohide)
L'imagination fait le reste !
Une fois bien le fichier exports bien paramétré, c'est au tour de /etc/idmapd.conf. Vous devez donner votre domaine, le taux de verbosité, et l'utilisateur/groupe pour les montages. Je vous conseille de garder nobody/nogroup pour la sécurité.
[General]
Verbosity = 1
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = shivaserv.fr
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
Une dernière modification de fichier, afin de donner un port spécifique à portmap si vous avez un parefeu sur votre serveur :
nano /etc/default/nfs-kernel-server
Et modifiez la ligne :
RPCMOUNTDOPTS="-p 33333"
Où 33333 est le port que vous souhaitez utiliser.
Ouvrons maintenant les ports nécessaires, sur ubuntu, le parefeu est ufw :
ufw allow 33333
ufw allow 111
ufw allow 2049
Un petit reboot du service :
/etc/init.d/nfs-kernel-server restart
Côté Client
Sur le poste client, c'est encore plus simple. Commencez par créer le point de montage du partage. Par exemple, créez un dossier dans /media.
mkdir /media/partage
Ensuite, une petite ligne dans le fstab :
nano /etc/fstab
A la fin rajoutez la ligne :
ip_serveur:/mon_user /media/partage nfs4 defaults 0 0
Chaque partie est séparée d'une tabulation (pas d'espaces).
Ensuite, un :
mount -a
ou un redémarrage du poste et votre partage est monté !
N'hésitez pas à donner votre avis, ou à poser vos questions via les commentaires.
Il n'y a pas encore de commentaires...Inscrivez le premier via le formulaire ci-dessous.