net:partage_nfs

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.

Activez les services suivant dans votre configuration:

rc.conf
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:

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.

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

Autoriser les ports identifiés par les services du chapitre précédent, en UDP comme en TCP.

pf.conf
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.

Depuis un client, ici debian, demander un montage NFS:

mount -t nfs -o vers=3 serveur:/montage /montage_local
  • net/partage_nfs.txt
  • Dernière modification : 2023/11/01 22:31
  • de david