rpc.mountd
, rpc.statd
et lockd
. Malheureusement, ils emploient par défaut un port aléatoire affecté par le portmapper
et il est donc difficile de filtrer le trafic qui leur est destiné. Les administrateurs de Falcot SA ont trouvé une solution à ce problème.
/etc/init.d/nfs-kernel-server
et /etc/init.d/nfs-common
. Ils disposent d'options pour forcer le choix des ports employés. Pour employer systématiquement les options adéquates, il faut modifier les fichiers /etc/default/nfs-kernel-server
et /etc/default/nfs-common
.
Exemple 11.22. Fichier /etc/default/nfs-kernel-server
# Number of servers to start up RPCNFSDCOUNT=8 # Runtime priority of server (see nice(1)) RPCNFSDPRIORITY=0 # Options for rpc.mountd. # If you have a port-based firewall, you might want to set up # a fixed port here using the --port option. For more information, # see rpc.mountd(8) or http://wiki.debian.org/SecuringNFS # To disable NFSv4 on the server, specify '--no-nfs-version 4' here RPCMOUNTDOPTS="--manage-gids --port 2048" # Do you want to start the svcgssd daemon? It is only required for Kerberos # exports. Valid alternatives are "yes" and "no"; the default is "no". NEED_SVCGSSD= # Options for rpc.svcgssd. RPCSVCGSSDOPTS=
Exemple 11.23. Fichier /etc/default/nfs-common
# If you do not set values for the NEED_ options, they will be attempted # autodetected; this should be sufficient for most people. Valid alternatives # for the NEED_ options are "yes" and "no". # Do you want to start the statd daemon? It is not needed for NFSv4. NEED_STATD= # Options for rpc.statd. # Should rpc.statd listen on a specific port? This is especially useful # when you have a port-based firewall. To use a fixed port, set this # this variable to a statd argument like: "--port 4000 --outgoing-port 4001". # For more information, see rpc.statd(8) or http://wiki.debian.org/SecuringNFS STATDOPTS="--port 2046 --outgoing-port 2047" # Do you want to start the idmapd daemon? It is only needed for NFSv4. NEED_IDMAPD= # Do you want to start the gssd daemon? It is required for Kerberos mounts. NEED_GSSD=
rpc.mountd
emploie le port 2 048 ; rpc.statd
écoute le port 2 046 et utilise le port 2 047 pour les connexions sortantes.
lockd
est géré par un thread (processus léger) noyau, fonctionnalité compilée sous forme de module dans les noyaux Debian. Le module dispose également de deux options pour choisir systématiquement le même port : nlm_udpport
et nlm_tcpport
. Pour employer ces options automatiquement, il faut créer un fichier /etc/modprobe.d/lockd
comme dans l'exemple ci-dessous.
/etc/exports
, donne les répertoires exportés à l'extérieur. À chaque partage NFS sont associées des machines qui ont le droit d'y accéder. Un certain nombre d'options permettent de dicter quelques règles d'accès. Le format de ce fichier est très simple :
/repertoire/a/partager machine1(option1,option2,...) machine2(...) ...
*.falcot.com
ou en décrivant une plage complète d'adresses IP (exemples : 192.168.0.0/255.255.255.0
, 192.168.0.0/24
).
ro
comme read only). L'option rw
(comme read-write) donne un accès en lecture/écriture. Les clients NFS doivent se connecter depuis un port réservé à root (c'est-à-dire inférieur à 1 024) à moins que l'option insecure
(pas sûr) n'ait été employée (l'option secure
— sûr — est implicite en l'absence de insecure
, mais on peut quand même la mentionner).
sync
). L'option async
(asynchrone) désactive cette fonctionnalité et améliore quelque peu les performances, au détriment de la fiabilité puisqu'il subsiste alors un risque de perte de données en cas de crash du serveur (des données acquittées par le serveur NFS n'auront pas été sauvegardées sur le disque avant le crash). La valeur par défaut de cette option ayant changé récemment (par rapport à l'historique de NFS), il est recommandé de toujours mentionner explicitement l'option souhaitée.
nobody
. Cette option (root_squash
) est activée par défaut ; l'option inverse no_root_squash
ne doit être employée qu'avec parcimonie étant donné les risques qu'elle comporte. Les options anonuid=uid
et anongid=gid
permettent d'employer un autre utilisateur écran à la place des UID/GID 65 534 (qui correspondent à l'utilisateur nobody
et au groupe nogroup
).
mount
et le format du fichier /etc/fstab
.
Exemple 11.25. Montage manuel avec la commande mount
#
mount -t nfs -o rw,nosuid arrakis.interne.falcot.com:/srv/partage /partage
Exemple 11.26. Entrée NFS dans le fichier /etc/fstab
arrakis.interne.falcot.com:/srv/partage /partage nfs rw,nosuid 0 0
/srv/partage/
présent sur le serveur arrakis
dans le répertoire local /partage/
. L'accès demandé est en lecture/écriture (paramètre rw
). L'option nosuid
est une mesure de protection qui supprime tout bit setuid
ou setgid
présent sur les programmes contenus dans le partage NFS. Si le répertoire NFS est dédié au stockage de documents, il est recommandé d'employer de plus l'option noexec
qui empêche l'exécution de programmes par NFS.