Ceci est une ancienne révision du document !
Fixer les ports pour un partage NFS
Vous pouvez avoir besoin de fixer les ports utilisés par NFS , lorsque votre partage doit se faire à travers un pare-feu matériel ou logiciel ou un autre équipement filtrant.
Partage NFS
Le principe de partage fonctionne sur la notion de serveur/client.
Le serveur est celui qui propose l'accès à ses données.
Le client est celui qui y accède pour les lire ou les modifier. 
Fixer les ports
Il s'agit de déterminer le port qui sera toujours utilisé pour le partage NFS. On appel cela «fixer un port».
pour mountd
Pour déterminer le port, ouvrez le fichier /etc/default/nfs-kernel-server
commentez  (mettre un # devant) RPCMOUNTDOPTS=–manage-gids  et mettez à la place:
RPCMOUNTDOPTS="--port 42002"
Pour STATD
Ouvrez le fichier  /etc/default/nfs-common 
STATDOPTS="--port 42000"
vous pouvez aussi fixer le port de sortie pour STATD en modifiant la ligne précédente par celle-ci:
STATDOPTS="--port 42000 --outgoing-port 42001"
Pour QUOTAD
La gestion des quotas n'est pas activée par défaut. Fixer ce port est donc optionnel.
Ouvrez le fichier  /etc/default/quota 
RPCRQUOTADOPTS="-p 42769"
pour LOCKD
Pour éviter l'altération des données si plusieurs clients se connectent en même temps
Ouvrez le fichier /etc/modprobe.d/options.conf et y mettre cette ligne:
options lockd nlm_udpport=42010 nlm_tcpport=42010
si LOCKSD prend toujours des ports aléatoires apres reboot
Voir ici
Ouvrez le fichier /etc/sysctl.conf
fs.nfs.nlm_tcpport=42010 fs.nfs.nlm_udpport=42010
en fixant les mêmes ports pour UDP et TCP, cela peut servir pour le parefeu UFW.
Prise en compte des modifications
Afin de prendre en compte les modifications par le système, il faudra redémarrer votre machine.
Sinon vous pouvez essayer les étapes suivantes :
- Relancer le serveur NFS :sudo invoke-rc.d nfs-kernel-server restart 
- Relancer portmap :sudo invoke-rc.d portmap restart 
- Relancer le service rpc :sudo rmmod sunrpc sudo modprobe sunrpc 
Vérification
Pour connaitre les ports de communication utilisés par le PC1, dans un terminal saisissez:
rpcinfo -p
La commande devrait vous donner un résultat proche de celui-ci:
program no_version protocole  no_port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100021    1   udp  42010  nlockmgr
    100021    3   udp  42010  nlockmgr
    100021    4   udp  42010  nlockmgr
    100021    1   tcp  42010  nlockmgr
    100021    3   tcp  42010  nlockmgr
    100021    4   tcp  42010  nlockmgr
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100005    1   udp  42002  mountd
    100005    1   tcp  42002  mountd
    100005    2   udp  42002  mountd
    100005    2   tcp  42002  mountd
    100005    3   udp  42002  mountd
    100005    3   tcp  42002  mountd
On constate que les ports ne sont plus attribués aléatoirement mais bien comme nous les avons fixé. Il sera alors possible de configurer votre firewall en utilisant ces ports.
