====== Partager des fichier avec NFS ====== Network File System est un mécanisme de partage de fichiers, ou plutôt de points de montage, entre un serveur et un client. Il repose sur le mécanisme //rpc//. ===== Services ===== Activez les services suivant dans votre [[https://www.freebsd.org/cgi/man.cgi?query=rc.conf&sektion=5|configuration]]: rpcbind_enable="YES" nfs_server_enable="YES" mountd_enable="YES" mountd_flags="-p 797" rpc_lockd_enable="YES" rpc_lockd_flags="-p 16001" rpc_statd_enable="YES" rpc_statd_flags="-p 719" Le service principal est le premier: rpcbind(8). C'est le mécanisme qui va permettre à un client d'identifier les services utiles: - nfsd(8) - rpc.statd(8) - rpc.lockd(8) Ces derniers s'attribuent par défaut un port dynamiquement, ce qui va poser problème si vous êtes derrière un pare-feu. C'est pourquoi les ports sont fixés dans la configuration. Vérifiez la liste des services avec rpcinfo(8) depuis un client et les ports en écoute avec sockstat(8) sur le serveur. ==== Exports ==== Il faut définir la liste des répertoires à exporter, dans ''/etc/exports'': /data -maproot=david -alldirs -ro -network 192.168.1.1/24 Consultez le manuel de exports(5) pour le détail des options. Si vous utilisez des dataset ZFS, vous pouvez définir directement l'export grâce à la propriété //sharenfs//. zfs get sharenfs zroot/DATA/master NAME PROPERTY VALUE SOURCE zroot/DATA/master sharenfs network 192.168.1.1/24,-alldirs local Vérifier que les exports sont pris en compte: showmount -e 192.168.1.14 Exports list on 192.168.1.14: /data Everyone ===== Parefeu ===== Autoriser les ports identifiés par les services du chapitre précédent, en UDP comme en TCP. udp_nfs="{ sunrpc, 797, 719, 16001 }" tcp_nfs="{ sunrpc, nfsd,719, 16001 }" # ... pass log proto udp from { amis } to { serveur } port $udp_nfs pass log proto tcp from { amis } to { serveur } port $tcp_nfs Les ports nommés sont issus de ''/etc/services''. ===== client ===== Depuis un client, ici //debian//, demander un //montage NFS//: mount -t nfs -o vers=3 serveur:/montage /montage_local ===== En savoir plus ===== * [[ https://docs.freebsd.org/en/books/handbook/network-servers/#network-nfs | le manuel ]]