Configurer un serveur NFS
1
Plan • • • • • • •
Système de fichiers virtuel Définitions NFS versions NFS Serveur NFS Client NFS Exemple pratique 2
3
4
5
Définitions • Network File System (ou NFS, système de fichiers en réseau) • C’est un protocole développé par Sun Microsystems • Il permet à un ordinateur d'accéder à des fichiers via un réseau. • Il fait partie de la couche application du modèle OSI. • Il permet de partager des données principalement entre systèmes UNIX.
• Des versions existent pour Macintosh ou Microsoft Windows. • NFS est compatible avec IPv6 sur la plupart des systèmes 6
NFS versions • NFS versions 1, 2, 3 • Les versions 1 et 2 (les années 80) • non sécurisées, prévues pour fonctionner sur UDP.
• La version 3(les années 90) • étendue pour prendre en charge TCP.
• À ce stade la gestion de la sécurité reste élémentaire et souffre d'importantes lacunes. 7
NFS versions • NFSv4 • Inspirée de AFS la version 4 du protocole marque une rupture totale avec les versions précédentes. • L'ensemble du protocole est repensé, et les codes sont réécrits. • Imaginée pour répondre aux besoins d'Internet, NFSv4 intègre : – Une gestion totale de la sécurité :
– Reprise sur incidents – Compatibilité : Unix, Windows, Mac 8
9
Création d’un serveur NFS • Installez sur le serveur NFS le paquet nfs-kernel-server • Le serveur NFS ne doit pas voir son IP changer, essayez si vous le pouvez de fixer son IP. • # This file describes the network interfaces available on your system • # and how to activate them. • iface eth0 inet static address 192.168.0.xxx
• netmask 255.255.255.0 • gateway 192.168.0.254 10
Création d’un serveur NFS •
Sur Serveur, il faut modifier le fichier /etc/exports et y saisir cette ligne:
•
# Dossier partagé :
•
/Dossier/à/partager/ 192.168.0.0/255.255.0.0(rw,all_squash,anonuid=1000,anongid=1000,sync)
•
Vous pouvez empêcher client par client quel PC peut écrire ou non dans le NFS.
•
ajouter autant de dossiers à partager qu’on veut de cette manière, vous n'êtes pas limité à un seul.
•
Après avoir modifié le fichier /etc/exports il suffit de lancer dans un terminal:
•
sudo service nfs-kernel-server reload
11
Client NFS • Pour accéder à un NFS, il faut le "monter".
• Il n'existe pas d'auto-configuration pour NFS, il faudra donc le faire manuellement. • Ubuntu GNU/Linux • Le paquet nécessaire pour accéder à un NFS est nfs-common • Modifier /etc/fstab • Il faut tout d'abord créer un dossier dans lequel le NFS viendra se loger. • sudo mkdir /media/NFS
12
Client NFS •
Pour ce faire, il suffit de modifier le fichier /etc/fstab pour y ajouter la ligne:
•
192.168.1.10:/Dossier/à/partager/ /media/NFS nfs defaults,user,auto,noatime,intr 0 0
•
192.168.1.10 :l'IP de votre serveur
•
/Dossier/à/partager/ :le dossier sur votre serveur que vous voulez recevoir (doit correspondre à celui que le serveur veut envoyer)
•
/media/NFS :le dossier que vous avez créé dans lequel vous souhaitez mettre le NFS
•
defaults,user,auto,noatime,intr : des options de montage, vous pouvez ajouter, ro à la fin pour ne pas autoriser l'écriture.
•
0 0 demande à Linux de ne pas vérifier si le disque contient des erreurs. 13
Exemple Pratique • Deux ordinateurs fonctionnant avec GNU/Linux
• Serveur : sur lequel se trouvent les fichiers à partager, • Client : qui doit pouvoir accéder aux fichiers de Serveur. • 1- Connaître les adresses IP locales de Serveur et de Client • on considèrera que Serveur et Client ont une adresse locale fixe : • Serveur : 192.168.1.1
• Client : 192.168.1.2
14
Installer NFS • 2-Installer NFS • Installer les paquets : • Pour Serveur, nfs-kernel-server et nfs-common. • Pour Client, nfs-common.
15
Étape 1 - Serveur donne à Client le droit de lire et écrire sur ses fichiers • Sur Serveur créer le fichier /etc/exports et y saisir cette ligne : • # Dossier partagé : • /Fichiers_à_partager_sur_Serveur/ 192.168.1.2(rw,all_squash,anonuid=1000,anongid=1000,sync) • Ceci donne l'accès complet aux fichiers de Serveur, • Client peut supprimer définitivement ce qu'il veut.
• Pour ne donner l'accès qu'en lecture seule, il suffit de supprimer l'option rw de /etc/exports. 16
Étape 1 - Serveur donne à Client le droit de lire et écrire sur ses fichiers • Il faut ensuite démarrer le serveur NFS (toujours sur Serveur) : • sudo /etc/init.d/nfs-kernel-server start
• Si vous modifiez le fichier « /etc/exports » n'oubliez pas de relancer le serveur NFS par la commande suivante : • sudo /etc/init.d/nfs-kernel-server restart 17
Étape 2 - Client se prépare à recevoir les fichiers de Serveurs • 1. D'abord créer un répertoire sur Client où vont s'installer les fichiers de Serveur : • sudo mkdir /Point_de_montage_sur_Client • Par exemple : • sudo mkdir /home/Nom_d'Utilisateur_sur_le_Client/Partage 18
Étape 2 - Client se prépare à recevoir les fichiers de Serveurs • 2. Ensuite déterminer ce répertoire comme point de montage sur Client : • Ajoutez cette ligne au fichier /etc/fstab de Client :
• 192.168.1.1:/Fichiers_à_partager_sur_Serveur /Point_de_montage_sur_Client nfs user,noauto 0 0 • noauto : interdit le montage automatique. • user : autorise tous les utilisateurs à procéder au montage.
19
Étape 3 - Serveur règle la sécurité du partage • 1. D'abord interdire tout : • Sur Serveur donc, créez le fichier /etc/hosts.deny, • et copiez-y ces lignes : • # Tout interdire sur portmap, nfsd et mountd • portmap:ALL • nfsd:ALL • mountd:ALL 20
Étape 3 - Serveur règle la sécurité du partage •
2. Ensuite autoriser les échanges voulus :
•
Toujours sur Serveur, créez le fichier /etc/hosts.allow, et enregistrez-y ces lignes :
•
#Autoriser ce client à se connecter aux services (essentiellement : portmap, nfsd et mountd) :
•
portmap: 192.168.1.2
•
lockd: 192.168.1.2
•
nfsd: 192.168.1.2
•
mountd: 192.168.1.2
•
rquotad: 192.168.1.2
•
statd: 192.168.1.2 21
Étape 3 - Serveur règle la sécurité du partage • Il est possible d'autoriser plusieurs clients
• En définissant une plage, par exemple : 192.168.0.0/192.168.0.20 • En listant les IP locales autorisées (séparées par des espaces), comme par exemple : 192.168.0.1 192.168.0.3 192.168.0.8 • Ou encore en utilisant la syntaxe 192.168. qui autorise toutes les machines dont l'IP locale commence par 192.168. à se connecter.
22
Étape 4 - Client automatise l'accès aux fichiers de Serveurs •
Pour que le montage de /Point_de_montage_sur_Client fonctionne, il faut que
Serveur soit allumé et que Client et Serveur soient connectés. •
Sur Client donc, créez le fichier /usr/bin/Monter_le_partage_NFS
•
Enregistrez ces lignes :
•
#!/bin/bash
•
sleep 15
•
mount /Point_de_montage_sur_Client
•
rendre ce fichier exécutable, en ligne de commande dans un terminal:
•
$ sudo chmod 755 /usr/bin/Monter_le_partage_NFS
23
Étape 4 - Client automatise l'accès aux fichiers de Serveurs • Vérifier si Client a bien accès aux fichiers de Serveur. • À faire sur Client: • showmount -e 192.168.1.1 • Cette commande doit retourner : • Export list for 192.168.1.1: /home/Fichiers_à_partager_sur_Serveur 192.168.1.2
• Sinon vérifier tout particulièrement les fichiers « /etc/exports » et «/etc/hosts.allow » de Serveur. 24
hosts.allow et hosts.deny • Ces deux fichiers spécifient si les ordinateurs du réseau peuvent utiliser les services sur votre machine. • Chaque ligne du fichier contient une seule entrée l'inscription d'un service et un ensemble de machines. • Lorsque le serveur reçoit une requête d'une machine, il effectue les opérations suivantes: • Il vérifie d'abord hosts.allow – pour voir si la machine correspond à une des règle énumérées. – Si c'est le cas, alors la machine est autorisé à accéder.
• Si la machine ne correspond pas à une entrée dans hosts.allow le serveur vérifie alors hosts.deny pour voir si le client y correspond. – Si c'est le cas, la machine est refusé l'accès.
• Si le client ne correspond à aucun des fichiers, alors il est autorisé. 25
26