9.3. Configuración del servidor NFS

Existen tres formas de configurar un servidor NFS bajo Red Hat Enterprise Linux: usando la Herramienta de configuración del servidor NFS (system-config-nfs), modificando manualmente su archivo de configuración (/etc/exports), o utilizando el comando /usr/sbin/exportfs.

Para las instrucciones sobre cómo utilizar la Herramienta de configuración del servidor NFS, consulte el capítulo llamado Sistemas de archivo de red (NFS) en el Manual de administración del sistema de Red Hat Enterprise Linux. El resto de esta sección discute la modificación manual de /etc/exports y el uso del comando /usr/sbin/exportfs para exportar sistemas de archivos NFS.

9.3.1. El archivo de configuración /etc/exports

El archivo /etc/exports controla cuáles sistemas de archivos son exportados a las máquinas remotas y especifica opciones. Las líneas en blanco son ignoradas, se pueden comentar líneas con el símbolo # y las líneas largas pueden ser divididas con una barra invertida (\). Cada sistema de archivos exportado debe tener su propia línea y cualquier lista de hosts autorizadas colocada después de un sistema de archivos exportado, debe estar separada por un espacio. Las opciones para cada uno de los hosts deben ser colocadas entre paréntesis directamente detrás del identificador del host, sin ningún espacio de separación entre el host y el primer paréntesis.

Una línea para un sistema de archivos exportado tiene la estructura siguiente:

<export> <host1>(<options>) <hostN>(<options>)...

En esta estructura, reemplace <export> con el directorio a exportar, reemplace <host1> con el host o la red a la cual va a compartir el directorio y reemplace <options> con las opciones para ese host o red. Los hosts adicionales se pueden especificar en una lista separada por espacios.

Se pueden usar los métodos siguientes para especificar nombres de host:

En su forma más sencilla, el archivo /etc/exports sólo especifica el directorio a exportar y los hosts que pueden usarlo, como en el ejemplo siguiente:

/exported/directory bob.example.com

En el ejemplo, bob.example.com puede montar /exported/directory/. Como no se especifica ninguna opción en este ejemplo, tomarán efecto las siguientes opciones predeterminadas de NFS:

ImportanteImportante
 

Por defecto, las listas de control de acceso (ACLs) son soportadas por NFS bajo Red Hat Enterprise Linux. Para desactivar esta funcionalidad, especifique la opción no_acl cuando esté exportando el sistema de archivos. Para más información sobre esta funcionalidad, vea el capítulo Sistemas de archivo de red (NFS) en el Manual de administración del sistema de Red Hat Enterprise Linux.

Cada valor predeterminado para un sistema de archivos exportado debe ser explícitamente ignorado. Por ejemplo, si no se especifica la opción rw, entonces el sistema de archivos es exportado como de sólo lectura. Lo siguiente es una línea de muestra de /etc/exports la cual sobreescribe dos opciones predeterminadas:

/another/exported/directory 192.168.0.3(rw,sync)

En este ejemplo 192.168.0.3 puede montar /another/exported/directory/ como lectura/escritura y todas las transferencias al disco son efectuadas antes de completar la petición de escritura del cliente.

Adicionalmente, hay otras opciones que están disponibles que no tienen especificado un valor predeterminado. Estas incluyen la habilidad de desactivar la verificación por subdirectorios, permitir el acceso desde puertos inseguros y permitir bloquear archivos inseguros (necesario para algunas implementaciones antiguas de clientes NFS). Vea la página man de exports para estas opciones menos usadas.

AvisoAviso
 

La manera en que el archivo /etc/exports está organizado es muy importante, particularmente lo que concierne a los espacios en blanco. Recuerde separar siempre los sistemas de archivos exportados de una máquina a la otra, con un espacio. Sin embargo, no debería haber otros espacios en el archivo a menos que se usen en líneas comentadas.

Por ejemplo, las siguientes dos líneas significan cosas distintas:

/home bob.example.com(rw)
/home bob.example.com (rw)

La primera línea permite sólo a los usuarios de bob.ejemplo.com acceder en modo de lectura/escritura al directorio /home. La segunda línea permite a los usuarios de bob.ejemplo.com montar el directorio como de sólo lectura (el predeterminado), pero el resto del mundo puede instalarlo como lectura/escritura.

Para instrucciones detalladas sobre la configuración de un servidor NFS modificando /etc/exports, consulte el capítulo titulado Sistemas de archivos de red (NFS) en el Manual de administración del sistema de Red Hat Enterprise Linux.

9.3.2. El comando exportfs

Cada sistema de archivos que se exporta a usuarios remotos a través de NFS, así como los niveles de acceso relativos a ellos, son listados en el archivo /etc/exports. Cuando comienza el servicio nfs, se lanza el comando /usr/sbin/exportfs y lee este archivo, pasa el control a rpc.mountd (si es NFSv2 or NFSv3) para el proceso de montaje real, luego a rpc.nfsd donde los sistemas de archivos están disponibles a los usuarios remotos.

Cuando se ejecuta manualmente, el comando /usr/sbin/exportfs permite al superusuario exportar o no de forma selectiva, directorios concretos sin reiniciar los servicios NFS. Cuando se le pasan las opciones apropiadas, el comando /usr/sbin/exportfs escribe los sistemas de archivos exportados a /var/lib/nfs/xtab. Como rpc.mountd se refiere al archivo xtab para decidir privilegios de acceso a un sistema de archivos, los cambios en la lista de sistemas de archivos exportados toman efecto inmediatamente.

Lo siguiente es una lista de las opciones más comunes disponibles para /usr/sbin/exportfs:

Si no se pasan opciones al comando /usr/sbin/exportfs, mostrará una lista de los sistemas de archivos actualmente exportados.

Para más información sobre /usr/sbin/exportfs, vaya a la página man de exportfs.

9.3.2.1. Uso de exportfs con NFSv4

Puesto que en NFSv4 ya no se utiliza el protocolo rpc.mountd como se utilizó en NFSv2 y NFSv3, el montaje de sistemas de archivos ha cambiado.

Un cliente NFSv4 ahora tiene la habilidad de ver todas las exportaciones servidas por el servidor NFSv4, como un único sistema de archivos, llamado el pseudo sistema de archivos NFSv4. En Red Hat Enterprise Linux, se identifica el pseudo sistema de archivos como un sistema de archivos único y verdadero, identificado con la opción fsid=0.

Por ejemplo, los comandos siguientes no se podrían ejecutar en un servidor NFSv4:

mkdir /exports
mkdir /exports/opt
mkdir /exports/etc
mount --bind /usr/local/opt /exports/opt
mount --bind /usr/local/etc /exports/etc
exportfs -o fsid=0,insecure,no_subtree_check gss/krb5p:/exports
exportfs -o rw,nohide,insecure,no_subtree_check gss/krb5p:/exports/opt
exportfs -o rw,nohide,insecure,no_subtree_check gss/krb5p:/exports/etc

En este ejemplo, se proporciona a los clientes con múltiples sistemas de archivos a montar, usando la opción --bind.