14.4. El Fichero exports

Ahora veremos cómo configurar el servidor NFS. Específicamente, veremos cómo decirle al servidor NFS qué sistemas de ficheros deben ponerse disponibles para el montaje y varios parámetros que controlan el acceso que tienen los clientes al sistema de ficheros. El servidor determina el tipo de acceso que se permite a los ficheros del servidor. El fichero /etc/exports lista los sistemas de ficheros que el servidor permitirá a los clientes montar y usar.

Por omisión, rpc.mountd desaprueba el montaje de todos los directorios, lo cual es una actitud bastante sensata. Si desea permitir a uno o más anfitriones montar un directorio de NFS, debe exportarlo es decir, especificarlo en el fichero exports. Un ejemplo del fichero puede parecer como éste:
      
    # exports file for vlager  
    /home             vale(rw) vstout(rw) vlight(rw)  
    /usr/X11R6        vale(ro) vstout(ro) vlight(ro)  
    /usr/TeX          vale(ro) vstout(ro) vlight(ro)  
    /                 vale(rw,no_root_squash)  
    /home/ftp         (ro)  

Cada línea define un directorio y los anfitriones a los que se les permite montarlo. Un nombre de anfitrión es usualmente un nombre de dominio completamente cualificado pero puede contener adicionalmente los comodines * y ?los cuales funcionan igual que en intérprete de órdenes Bourne. Por ejemplo, lab*.foo.com coincide con lab01.foo.com así como laboratory.foo.com. El anfitrión puede ser especificado también usando un rango de direcciones IP en la forma dirección/máscara de redk. Si no se da un nombre de anfitrión, como con el directorio /home/ftp en el ejemplo previo, cualquier anfitrión coincide y se le permite montar el directorio.

Cuando se verifica a un anfitrión cliente contra el fichero exports, rpx.mountd busca el nombre del anfitrión cliente usando la llamada gethostbyaddr. Con DNS, esta llamada devuelve el nombre canónico del anfitrión cliente, así debe asegurarse de no usar alias en exports. En un entorno NIS el nombre devuelto es la primera coincidencia de la base de datos de anfitriones, y sin DNS o NIS, el nombre devuelto es el primer nombre de anfitrión encontrado en el fichero hosts que coincida con la dirección del cliente.

El nombre del anfitrión es seguido por una lista opcional de señales separadas por comas, encerradas entre paréntesis. Algunos de los valores que éstas señales pueden tomar son:

secure

Esta señal insiste en requerir que se haga desde un puerto origen reservado, por ejemplo, uno que sea menor que 1.024. Esta señal está puesta por omisión.

insecure

Esta señal revierte el efecto de la señal secure.

ro

Esta señal provoca que el montaje de NFS sea para sólo lectura. Esta señal está activada por omisión.

rw

Esta opción monta la jerarquía de ficheros en lectura-escritura.

root_squash

Este característica de seguridad deniega a los superusuarios en los hosts especificados cualquier derecho de acceso especial mapeando las peticiones desde el uid 0 en el cliente al uid 65534 (es decir, -2) en el servidor. Este uid debe ser asociado con el usuario nobody.

no_root_squash

No mapea las peticiones desde uid 0. Esta opción está habilitada por omisión, así los superusuarios tienen acceso de supervisor a los directorios exportados de su sistema.

link_relative

Esta opción convierte los enlaces simbólicos absolutos (donde el contenido del enlace comienza con un slash) en enlaces relativos. Esta opción sólo tiene sentido cuando está montado el sistema de ficheros entero de un anfitrión; por otra parte, algunos de los enlaces podrían apuntar a ninguna parte, o peor aún, a ficheros que nunca debieran apuntar. Esta opción está habilitada de forma predeterminada.

link_absolute

Esta opción deja todos los enlaces simbólicos como son (la conducta normal para los servidores de NFS suministrados por Sun).

map_identity

Esta opción le indica al servidor asumir que el cliente usa el mismo uid y gid que el servidor. Esta opción está habilitada por omisión.

map_daemon

Esta opción indica al servidor de NFS asumir que el cliente y el servidor no comparten el mismo espacio uid/gid. rpc.nfsd entonces construye una lista que mapea los IDs entre cliente y servidor preguntando al demonio rpc.ugidd del cliente.

map_static

Esta opción le permite especificar el nombre de un fichero que contiene un mapa estático de uids. Por ejemplo, map_static=/etc/nfs/vlight.map especificaría el fichero /etc/nfs/vlight.map como un mapa de uid/gid. La sintaxis del mapa del fichero se describe en la página 5 del manual exports(5).

map_nis

Esta opción causa que el servidor de NIS haga un mapeado de uid y gid.

anonuid y anongid

Estas opciones le permiten especificar el uid y el gid de la cuenta anónima. Esto es útil si tiene un volumen exportado para montajes públicos.

Cualquier error que ocurra al procesar el fichero exports se informa al demonio syslogd con el nivel notice en cualquier momento en que rpc.nfsd o rpc.mountd se inicien.

Se ha de tener en cuenta que los nombres del anfitrión se obtienen a partir de la dirección IP del cliente a través de resolución inversa, por lo cual la resolución de nombres tendrá que estar configurada adecuadamente. Si usa BIND y le preocupa la seguridad, deberá activar las comprobaciones de spoofing en su fichero host.conf. Se hablará más profusamente sobre este tema en Capítulo 6.