Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[howto] NFS
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Sat Dec 02, 2006 6:51 pm    Post subject: [howto] NFS Reply with quote

Une façon assez simple de partager des données via un réseau est NFS.

NFS :
Network File System (NFS), signifiant en français « Système de fichiers en réseau », est un protocole développé par Sun Microsystems qui permet à un ordinateur d'accéder à des fichiers via un réseau.
Ce système de fichier en réseau permet de partager des données principalement entre systèmes UNIX. Des implémentations existent pour Macintosh ou Microsoft Windows. NFS est compatible avec IPv6 sur la plupart des systèmes. Ce protocole est beaucoup plus simple à mettre en place que samba.

1. Configuration du noyau :

Code:
File Systems --->
Network File Systems --->
    <M> NFS file system support
      [*] Provide NFSv3 client support
    <M> NFS server support
       [*] Provide NFSv3 server support


Une fois le noyau installé si nfs a été compilé en module :
Code:
# modprobe nfs && modprobe nfsd

Puis ajouter à /etc/modules.autoload.d/kernel-2.6 nfs et nfsd
Code:
# modules-update


2. Installation :
Code:
# emerge emerge nfs-utils


3. Configuration :
Pour partager des dossiers il suffit d'éditer /etc/exports afin d'ajouter des lignes :
Code:
<dossier partagé> <hôte>(<options>) <hôte2>(<options>)...


Les informations se trouvant sur une ligne sont les suivantes :

<dossier partagé> : chemin menant au dossier partagé.
<hôte> : indique quel est l'hôte qui peut accéder à ce partage, l'hôte peut être définit de plusieurs manières :
    une IP : on indique simplement l'adresse IP de la machine pouvant accéder à ce partage.

    un nom d'hôte : on indique le nom complet de l'hôte (pour peu qu'il soit connu du système au travers d'un DNS ou du fichier hosts).

    un nom de groupe réseau 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;

    un intervalle d'IP avec le masque de sous-réseau; par exemple : 192.168.0.0/24.

<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'hôte défini (par défaut, les partages sont en mode ro; c'est-à-dire en lecture seule).

    async : permet au serveur NFS de violer le protocole NFS et de répondre au requête avant que les changements effectués par la requête aient été appliqués sur l'unité de stockage. Cette option améliore les performances mais a un coût au niveau de l'intégrité des données (données corrompues ou perdues) en cas de redémarrage non-propre (par exemple en cas de crash système).

    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 défaut).

    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 serveurNFS l'UID de l'utilisateur anonyme (considéré comme tel dans les précédentes options de mapping).

    anongid : indique au serveur NFS le GID de l'utilisateur anonyme (considéré comme tel dans les précédentes options de mapping).


Activer portmap :
Cette étape est facultative car les scripts rc lance portmap si il y en a besoin.
Code:
# /etc/init.d/portmap start
# rc-update add portmap default


4. Sécurité :
Un minimum de sécurité est de refuser tous les acces à NFS grâce au fichier /etc/hosts.deny:
Code:
#Interdire tout le monde sur les services portmap, nfsd et mountd
portmap:ALL
nfsd:ALL
mountd:ALL


Puis grâce au fichier /etc/hosts.allow autoriser les accés au fur et à mesure:
Code:
# Portmapper is used for all RPC services; protect your NFS!
# (IP addresses rather than hostnames *MUST* be used here)
portmap: 192.168.0.20
lockd: 192.168.0.20
rquotad: 192.168.0.20
mountd: 192.168.0.20
statd: 192.168.0.20

ou part tranche d'adresse ip
Code:
# Portmapper is used for all RPC services; protect your NFS!
# (IP addresses rather than hostnames *MUST* be used here)
portmap: 192.168.0.0/255.255.255.0
lockd: 192.168.0.0/255.255.255.0
rquotad: 192.168.0.0/255.255.255.0
mountd: 192.168.0.0/255.255.255.0
statd: 192.168.0.0/255.255.255.0


5. Activer NFS:
Code:
# /etc/init.d/nfs start
# rc-update add nfs default


6. Astuces:
Si vous rencontrez l'erreur "Autre erreur : Accés refusé."
Vérifiez que tous les services necessaires sont démarrés (coté serveur) gràce à la commande rpcinfo -p
Vous devez obtenir une liste qui comprend au moins un exemplaire de chacun de ces services :
Code:
tcp      111    portmapper
udp      942    status
udp      752    mountd
udp     2049    nfs
udp    32799   nlockmgr


Pour monter un système de fichier NFS manuellement, vous utiliserez la commande suivante :
# mount -t nfs <ip_serveur>:<rep_serveur> <point_montage_local>
Certaines options peuvent être passées à la commande mount lors du montage. Les options les plus intéressantes sont les suivantes :
ro : monte le système de fichier en lecture seule.
rw : monte le système 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 générer une erreur de lecture/écriture aux processus impactés.
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 :
Code:
# mount -t nfs -o ro,soft,timeo=10 192.168.0.40:/home/brol /mnt/nfs


Montage automatique au démarrage:
Editer /etc/fstab afin d'ajouter : x.x.x.x:/directory /mount_directory nfs rw 0 0

Le firewall :
Monter un firewall est tout à fait délicat parce qu'il y a des ports qui sont alloués au hasard comme le démon NFS.
La commande rpcinfo -p vous affichera des ports différents.
Vous notez probablement que certains de ces ports sont statiques : 111 (tcp et udp) pour portmaps et 2049 (tcp et udp) pour nfs. Le reste, qui est tout aussi important, est fixé au hasard. Pour le fixer, vous devez éditer /etc/conf.d/nfs pour avoir ceci :
Code:
# Number of servers to be started up by default
RPCNFSDCOUNT=8
# Options to pass to rpc.mountd
# ex. RPCMOUNTDOPTS="-p 32767
RPCMOUNTDOPTS="-p 32767"
# Options to pass to rpc.statd
# ex. RPCSTATDOPTS="-p 32765 -o 32766"
RPCSTATDOPTS="-p 32765 -o 32766"
# OPTIONS to pass to rpc.rquotad
# ex. RPCRQUOTADOPTS="-p 32764"
RPCRQUOTADOPTS="-p 32764"

Vous fixerez le statut, mountd et les ports de quotad à 32764-32767.

Règles IPTABLE pour NFS :
Code:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 111 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 2049 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 4001 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 4001 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 32764:32767 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 32764:32767 -j ACCEPT


sources :
http://doc.ubuntu-fr.org/applications/nfs
http://gentoo-wiki.com/HOWTO_Share_Directories_via_NFS

Pour une documentation plus complète : http://jp.barralis.com/howto/linux/NFS-HOWTO/NFS-HOWTO.php
_________________
L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php
Back to top
View user's profile Send private message
truc
Advocate
Advocate


Joined: 25 Jul 2005
Posts: 3199

PostPosted: Wed Dec 06, 2006 12:03 pm    Post subject: Reply with quote

Comme d'hab, merci bien bouleetbil pour ce howto, qui est d'ailleurs très bien, fait:
-> Une partie présentation
-> Une partie mise en place
-> Et une partie astuce, ou tu détailles notamment la configuration du parefeu pour que tout fonctionne bien! chapeau 8)


@modos Tout cela me fait penser qu'il serait sympa, d'avoir un poste en sticky avec une liste des howto/tips etc.. contenut sur ce forums, ça rendrait la recherche bien plus rapide et efficace à mon avis.
_________________
The End of the Internet!
Back to top
View user's profile Send private message
Mickael
Advocate
Advocate


Joined: 05 Sep 2005
Posts: 2387
Location: ~Belfort! - France - EU

PostPosted: Wed Dec 06, 2006 12:33 pm    Post subject: Reply with quote

Il existe, yuk159 en est l'auteur sauf qu'il n'est pas stickisé et que peut être yuk n'a plus le temps de le maintenir.

EDIT :
[Howto Howto] Liens vers les Howto Français (20/09/2005)
_________________
À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo
Back to top
View user's profile Send private message
truc
Advocate
Advocate


Joined: 25 Jul 2005
Posts: 3199

PostPosted: Wed Dec 06, 2006 1:44 pm    Post subject: Reply with quote

ahh merci, j'me disais bien aussi que j'en avais déjà vu un! Mais je ne comprends pas pourquoi il n'est pas mis sticky?
_________________
The End of the Internet!
Back to top
View user's profile Send private message
CourJuS
Tux's lil' helper
Tux's lil' helper


Joined: 26 Jun 2004
Posts: 99
Location: Belgique

PostPosted: Thu Dec 07, 2006 2:05 pm    Post subject: Reply with quote

Bonjours à tous

J'ai une petite question en raport direct/indirect avec NFS.

j'utilise VMWare et je souhaiterais stocker mes machines sur un partage NFS mais VMW rale sec pour le "write lock" j'ai rien trouvé de très concluant sur google (il était 4h du mat aussi, mon cerveau devais plus êtres concluant non plus :P )

Je parle ici de VMWare mais d'autres applications par le passé mon charié avec le write lock ;)

Y a t'il des options particuliaire à passer au montage du partage, ou bien dans le /etc/export ?

Merci

ps Chapeau pour le tuto, simple rapide éfficace :)
Back to top
View user's profile Send private message
bouleetbil
Guru
Guru


Joined: 06 Jul 2004
Posts: 456
Location: Montpellier

PostPosted: Thu Dec 14, 2006 8:49 pm    Post subject: Reply with quote

Merci
@CourJuS
Pour le write lock d'après ce que j'ai lu cela pourrait être du à un problème de droit. Peut-être un post sur le forum French ?
_________________
L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum