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.

Pour sécuriser votre partage NFS à l'aide d'un pare-feu vous pouvez suivre ce tutoriel debian en utilisant ufw plutôt que Shorewall.

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.

Toutes les manipulations indiquées dans cette page se font sur le serveur.

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 le nom de fichier options.conf ne vous conviens pas, vous pouvez le nommer comme bon vous semble tant qu'il fini par .conf

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.

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

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.

  • nfs-ufw.txt
  • Dernière modification: Le 20/11/2017, 14:37
  • (modification externe)