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.