19 sistema de archivos de red nfs

29
255 Sistema de archivos de red (NFS) Un Sistema de archivos de red (NFS) permite a los hosts remotos montar sistemas de archivos sobre la red e interactuar con esos sistemas de archivos como si estuvieran montados localmente. Esto permite a los administradores de sistemas consolidar los recursos en servidores centralizados en la red. Este capítulo aborda los conceptos fundamentales de NFS e información relacionada. 19.1. Funcionamiento Hay tres versiones de NFS actualmente en uso. La versión 2 de NFS (NFSv2), es la más antigua y está ampliamente soportada por muchos sistemas operativos. La versión 3 de NFS (NFSv3) tiene más características, incluyendo el manejo de archivos de 64 bits, escrituras Safe Async y un mejor manejo de errores. NFS versión 4 (NFSv4) trabaja con cortafuegos y en Internet, soporta ACLs y utiliza operaciones con descripción del estado. Red Hat Enterprise Linux soporta clientes tanto NFSv2, NFSv3 como NFSv4 y cuando monta un sistema de archivos a través de NFS, Red Hat Enterprise Linux usa NFSv3 por defecto, si el servidor lo soporta. Todas las versiones de NFS pueden utilizar el Protocolo de control de transmisiones (TCP) ejecutándose sobre una red IP . En el caso de NFSv4, éste lo requiere. NFSv2 y NFSv3 pueden utilizar el Protocolo de datagrama de usuarios (UDP) sobre una red IP para proporcionar conexiones de red sin supervisión (stateless) entre el cliente y el servidor . When using NFSv2 or NFSv3 with UDP, the stateless UDP connection under normal conditions has less Protocol overhead than TCP which can translate into better performance on very clean, non- congested networks. The NFS server sends the client a file handle after the client is authorized to access the shared volume. This file handle is an opaque object stored on the server's side and is passed along with RPC requests from the client. The NFS server can be restarted without affecting the clients and the cookie remains intact. However, because UDP is stateless, if the server goes down unexpectedly, UDP clients continue to saturate the network with requests for the server. For this reason, TCP is the preferred protocol when connecting to an NFS server. Because protocol support has been incorporated into the v4 protocol, NFSv4 has no interaction with the portmap, rpc.lockd, and rpc.statd daemons. NFSv4 listens on the well-known TCP port 2049, which eliminates the need for portmap interaction. The mounting and locking protocols have been incorporated into the V4 protocol which eliminates the need for interaction with rpc.lockd and rpc.statd . The rpc.mountd daemon is still required on the server, but is not involved in any over- the-wire operations. Nota TCP es el protocolo predeterminado para NFS en Red Hat Enterprise Linux. UDP puede ser utilizado por compatibilidad si es necesario; sin embargo, su uso no se recomienda. All the RPC/NFS daemon have a '-p' command line option that can set the port, making firewall configuration easier. Después de que se le permite acceso al cliente gracias a un TCP wrapper, el servidor NFS recurre a su archivo de configuración, /etc/exports, para determinar si el cliente tiene suficientes

Upload: aprende-viendo

Post on 24-May-2015

1.027 views

Category:

Education


7 download

TRANSCRIPT

Page 1: 19  sistema de archivos de red nfs

255

Sistema de archivos de red (NFS) Un Sistema de archivos de red (NFS) permite a los hosts remotos montar sistemas de archivos sobre

la red e interactuar con esos sistemas de archivos como si estuvieran montados localmente. Esto

permite a los administradores de sistemas consolidar los recursos en servidores centralizados en la

red.

Este capítulo aborda los conceptos fundamentales de NFS e información relacionada.

19.1. Funcionamiento Hay tres versiones de NFS actualmente en uso. La versión 2 de NFS (NFSv2), es la más antigua y

está ampliamente soportada por muchos sistemas operativos. La versión 3 de NFS (NFSv3) tiene

más características, incluyendo el manejo de archivos de 64 bits, escrituras Safe Async y un mejor

manejo de errores. NFS versión 4 (NFSv4) trabaja con cortafuegos y en Internet, soporta ACLs

y utiliza operaciones con descripción del estado. Red Hat Enterprise Linux soporta clientes tanto

NFSv2, NFSv3 como NFSv4 y cuando monta un sistema de archivos a través de NFS, Red Hat

Enterprise Linux usa NFSv3 por defecto, si el servidor lo soporta.

Todas las versiones de NFS pueden utilizar el Protocolo de control de transmisiones (TCP)

ejecutándose sobre una red IP. En el caso de NFSv4, éste lo requiere. NFSv2 y NFSv3 pueden

utilizar el Protocolo de datagrama de usuarios (UDP) sobre una red IP para proporcionar conexiones

de red sin supervisión (stateless) entre el cliente y el servidor.

When using NFSv2 or NFSv3 with UDP, the stateless UDP connection under normal conditions has

less Protocol overhead than TCP which can translate into better performance on very clean, non-

congested networks. The NFS server sends the client a file handle after the client is authorized to

access the shared volume. This file handle is an opaque object stored on the server's side and is

passed along with RPC requests from the client. The NFS server can be restarted without affecting

the clients and the cookie remains intact. However, because UDP is stateless, if the server goes

down unexpectedly, UDP clients continue to saturate the network with requests for the server. For this

reason, TCP is the preferred protocol when connecting to an NFS server.

Because protocol support has been incorporated into the v4 protocol, NFSv4 has no interaction with

the portmap, rpc.lockd, and rpc.statd daemons. NFSv4 listens on the well-known TCP port

2049, which eliminates the need for portmap interaction. The mounting and locking protocols have

been incorporated into the V4 protocol which eliminates the need for interaction with rpc.lockd and

rpc.statd. The rpc.mountd daemon is still required on the server, but is not involved in any over-

the-wire operations.

Nota

TCP es el protocolo predeterminado para NFS en Red Hat Enterprise Linux. UDP

puede ser utilizado por compatibilidad si es necesario; sin embargo, su uso no se

recomienda.

All the RPC/NFS daemon have a '-p' command line option that can set the port,

making firewall configuration easier.

Después de que se le permite acceso al cliente gracias a un TCP wrapper, el servidor NFS recurre

a su archivo de configuración, /etc/exports, para determinar si el cliente tiene suficientes

Page 2: 19  sistema de archivos de red nfs

256

Configuración de clientes NFS

privilegios para acceder a los sistemas de archivos exportados. Una vez se otorga el acceso, todas

las operaciones de archivos y de directorios están disponibles para el usuario.

Importante

Para que NFS funcione con una instalación de Red Hat Enterprise Linux con un

cortafuegos habilitado, se debe configurar IPTables con el puerto predeterminado

TCP 2049. Sin una configuración IPTables, NFS no funcionará correctamente.

El script de inicialización NFS y el proceso rpc.nfsd ahora permiten la vinculación

a cualquier puerto especificado durante el inicio del sistema. Sin embargo, esto

puede ser susceptible a errores si el puerto no está disponible o si entra en conflicto

con otro demonio.

19.1.1. Servicios requeridos

Red Hat Enterprise Linux utiliza una combinación de soporte a nivel del kernel y procesos demonio

para proporcionar los archivos compartidos con NFS. Todas las versiones de NFS confía en las

Llamadas de procedimientos remotos ((RPC)) para enrutar peticiones entre clientes y servidores. Los

servicios RPC bajo Linux son controlados por el servicio portmap. Para compartir o montar sistemas

de archivos NFS, los siguientes servicios funcionan juntos dependiendo de cuál versión de NFS se

implemente:

• nfs — (/sbin/service nfs start) inicia el servidor NFS y los procesos RPC apropiados para

servir peticiones para los sistemas de archivos compartidos NFS.

• nfslock — (/sbin/service nfslock start) es un servicio obligatorio que inicia los procesos

RPC adecuados para permitir que clientes NFS bloqueen archivos en el servidor.

• portmap — accepts port reservations from local RPC services. These ports are then made

available (or advertised) so the corresponding remote RPC services access them. portmap

responds to requests for RPC services and sets up connections to the requested RPC service.

Los siguientes procesos RPC facilitan los servicios NFS:

• rpc.mountd — This process receives mount requests from NFS clients and verifies the requested

file system is currently exported. This process is started automatically by the nfs service and does

not require user configuration.

• rpc.nfsd — Permite definir versiones y protocolos explícitas de NFS que son publicados por

el servidor. Trabaja con el kernel Linux para satisfacer las demandas dinámicas de clientes NFS

tal como proporcionar hilos del servidor cada vez que se conecta un cliente NFS. Este proceso

corresponde al servicio nfs.

• rpc.lockd — permite a los clientes NFS bloquear archivos en el servidor. Si no se inicia

rpc.lockd fallará el bloqueo de archivos. rpc.lockd implementa el protocolo Network Lock

Manager (NLM). Este proceso corresponde al servicio nfslock, no se utiliza con NFSv4.

• rpc.statd — Este proceso implementa el protocolo RPC Network Status Monitor (NSM) el cual

notifica a los clientes NFS cuando un servidor NFS es reiniciado luego de haber sido apagado

abruptamente. Este proceso es iniciado automáticamente por el servicio nfslock y no requiere

configuración por parte del usuario. No se utiliza con NFSv4.

Page 3: 19  sistema de archivos de red nfs

257

Configuración de clientes NFS

• rpc.rquotad — Este proceso proporciona información de cuota del usuario para los usuarios

remotos. Este proceso se inicia automáticamente por el servicio nfs y no requiere configuración

por parte del usuario.

• rpc.idmapd — Este proceso proporciona al cliente y servidor NFSv4 llamadas ascendentes

(upcalls) que hacen corresponder los nombres NFSv4 (los cuales son cadenas en la forma

usuario@dominio) y los UIDs y GIDs locales. Para que idmapd funcione con NFSv4, el /etc/

idmapd.conf debe estar configurado. Se requiere este servicio para su uso con NFSv4.

19.2. Configuración de clientes NFS Los recursos compartidos NFS son montados en el lado del cliente usando el comando mount. El

formato del comando es como sigue:

mount -t <nfs-type> -o <options> <host>:</remote/export> </local/directory>

Replace <nfs-type> with either nfs for NFSv2 or NFSv3 servers, or nfs4 for NFSv4 servers.

Replace <options> with a comma separated list of options for the NFS file system (refer to

Sección 19.4, “Opciones de montaje NFS comunes” for details). Replace <host> with the remote

host, </remote/export> with the remote directory being mounted, and </local/directory>

with the local directory where the remote file system is to be mounted.

Consulte la página man de mount para obtener más detalles.

Si está accediendo a un recurso compartido NFS emitiendo manualmente el comando mount, el

sistema de archivos debe ser remontado manualmente después de reiniciar el sistema. Red Hat

Enterprise Linux ofrece dos métodos para el montaje automático de sistemas de archivos al momento

del arranque: el archivo /etc/fstab o el uso del servicio autofs.

19.2.1. Montaje del sistemas de archivos NFS con /etc/fstab An alternate way to mount an NFS share from another machine is to add a line to the /etc/fstab

file. The line must state the hostname of the NFS server, the directory on the server being exported,

and the directory on the local machine where the NFS share is to be mounted. You must be root to

modify the /etc/fstab file.

La sistaxis general de esta línea del archivo /etc/fstab es la siguiente:

server:/usr/local/pub /pub nfs rsize=8192,wsize=8192,timeo=14,intr

Antes de que se pueda ejecutar este comando, debe existir el punto de montaje /pub en la máquina

del cliente. Después de añadir esta línea a /etc/fstab en el sistema del cliente, escriba el comando

mount /pub en el intérprete de comandos y el punto de montaje /pub es montado desde el servidor.

El archivo /etc/fstab lo referencia el servicio netfs al momento del arranque, por lo que las líneas

haciendo referencia a las comparticiones NFS tienen el mismo efecto que escribir manualmente el

comando mount durante el arranque.

Una muestra de línea de /etc/fstab para montar un NFS exportado será parecida a:

Page 4: 19  sistema de archivos de red nfs

258

Configuración de clientes NFS

<server>:</remote/export> </local/directory> <nfs-type> <options> 0 0

Replace <server> with the hostname, IP address, or fully qualified domain name of the server

exporting the file system.

Replace </remote/export> with the path to the exported directory.

Replace </local/directory> with the local file system on which the exported directory is

mounted. This mount point must exist before /etc/fstab is read or the mount fails.

Replace <nfs-type> with either nfs for NFSv2 or NFSv3 servers, or nfs4 for NFSv4 servers.

Replace <options> with a comma separated list of options for the NFS file system (refer to

Sección 19.4, “Opciones de montaje NFS comunes” for details). Refer to the fstab man page for

additional information.

19.3. autofs Una desventaja de usar /etc/fstab es que sin tener en cuenta con que frecuencia se use este

sistema de archivos montado, el sistema debe dedicar recursos para mantener este montaje en su

sitio. Esto no es un problema con uno o dos montajes, pero cuando su sistema está manteniendo

demasiados montajes en muchos sistemas al mismo tiempo, el rendimiento general puede decaer.

Una alternativa para /etc/fstab es usar la utilidad de automontaje basada en el kernel. Un

automontaje consiste de dos componentes: uno es un módulo de kernel que implementa un sistema

de archivos, mientras que el otro es un demonio de espacio de usuario que realiza todas las otras

funciones. Esta utilidad puede montar y desmontar sistemas dearchivos NFS automáticamente

(montaje a petición) por lo cual ahorra recursos del sistema. Esta utilidad se puede utilizar para

montar otros sistemas de archivos incluyendo AFS, SMBFS, CIFS y sistemas de archivos locales.

autofs usa /etc/auto.master (mapa maestro) como su archivo de configuración primario por

defecto. Esto se puede cambiar para que utilice otro recurso de red soportado y otro nombre

utilizando la configuración autofs (en /etc/sysconfig/autofs) en conjunto con el mecanismo

Cambio de Nombre del Servicio. Se ejecutó una instancia del demonio de la versión 4 para cada

punto de montaje configurado en el mapa maestro y que de esta manera pueda ser ejecutado

manualmente desde la línea de comandos para cualquier punto de montaje dado. Esto no es

posible con la versión 5 ya que utiliza u sólo demonio para administrar todos los puntos de montaje

configurados así que todos los automontajes tienen que ser configurados en el mapa maestro. El

punto de montaje, nombre del host, el directorio exportado y las opciones pueden ser especificados

en un grupo de archivos (u otros recursos de red soportados) en vez de configuraralos manualmente

para cada host. Asegúrese de que tiene instalado el paquete autofs si desea utilizar este servicio.

19.3.1. What's new in autofs version 5?

Soporte de mapa directo

Autofs direct maps provide a mechanism to automatically mount file systems at arbitrary points in

the file system hierarchy. A direct map is denoted by a mount point of "/-" in the master map.

Entries in a direct map contain an absolute path name as a key (instead of the relative path names

used in indirect maps).

Montaje perezozo y soporte para desmonte

Multimount map entries describe a hierarchy of mount points under a single key. A good example

of this is the "-hosts" map, commonly used for automounting all exports from a host under "/net/

Page 5: 19  sistema de archivos de red nfs

259

Configuración de autofs

<host>" as a multi-mount map entry. When using the "-hosts" map, an 'ls' of "/net/<host>"

will mount autofs trigger mounts for each export from <host> and mount and expire them as they

are accessed. This can greatly reduce the number of active mounts needed when accessing a

server with a large number of exports.

Soporte LDAP mejorado

En el Protocolo Ligero de Acceso a Directorios o LDAP el soporte en la versión 5 de autofs se ha

mejorado de varias maneras con respecto a la versión 4 de autofs. El archivo de configuración

de autofs (/etc/sysconfig/autofs) proporciona un mecanismo para especificar el esquema

de autofs que un sitio implementa por lo cual elimina la necesidad de determinar esto por medio

de ensayo y error en la aplicación misma. Además ahora se soportan los enlaces auténticados

al servidor LDAP, utilizando la mayoría de mecanismos soportados por las implementaciones del

servidor LDAP comúnes. Se ha añadido un nuevo archivo de configuración para este soporte:

/etc/autofs_ldap_auth.conf. El archivo de configuración predeterminado es auto-

documentado y utiliza un formato XML.

Uso apropiado de la configuración del Conmutador del Servicio de Nombres (nsswitch)

El archivo de configuración del Conmutador del Servicio de Nombres existe para proprocionar

una manera de determinar de donde viene los datos de configuración especificos. La razón para

esta configuración es el permitir al administrador la flexibilidad de utilizar la base de datos final

de su preferencia y al mismo tiempo mantener una interfaz de software uniforme para acceder

a los datos. Aunque la versión 4 de automontaje se está volviendo cada vez mejor en el manejo

de la configuración del conmutador de servicios de nombre aún no se encuentra completa. Por

otro lado, la versión 5 de autofs es una implementación completa. Vea la página del manual

nsswitch.conf para obtener mayor información sobre la sintaxis de este archivo. Observe que

no todas las bases de datos nss son recursos de mapeo válidos y el analizador rechazará los

inválidos. Los recusos válidos son archivos yp, nis, nisplus, ldap y hesiod.

Múltiples entradas de mapeo maestro por punto de montaje autofs

One thing that is frequently used but not yet mentioned is the handling of multiple master map

entries for the direct mount point "/-". The map keys for each entry are merged and behave as one

map.

A continuación se ve un ejemplo en los mapeos de prueba de concatenación para los montajes

directos:

/- /tmp/auto_dcthon

/- /tmp/auto_test3_direct

/- /tmp/auto_test4_direct

19.3.2. Configuración de autofs

El archivo de configuración primario para el automontaje es /etc/auto.master también se conoce

como el mapeo maestro, el cual se puede cambiar como se describió en la introducción anterior. El

mapeo maestro enumera los punos de montaje controlados por autofs en el sistema y sus archivos

de configuración correspondientes o las fuentes de red conocidas como mapeos de automontaje. El

formato del mapeo maestro es el siguiente:

<mount-point> <map-name> <options>

Page 6: 19  sistema de archivos de red nfs

260

Configuración de autofs

donde:

• punto-de-montaje es el punto de montaje de autofs. Por ejemplo /home.

• map-name es el nombre de una fuente de mapeo el cual contiene una lista de puntos de montaje

y la ubicación del sistema de archivos desde donde se deben montar esos puntos de montaje. La

sintaxis para una entrada de mapeo se describe a continuación.

• options if supplied, will apply to all entries in the given map provided they don't themselves

have options specified. This behavior is different from autofs version 4 where the options where

cumulative. This has been changed to meet our primary goal of mixed environment compatibility.

El siguiente es un archivo de ejemplo de /etc/auto.master:

$ cat /etc/auto.master /home /etc/auto.misc

The general format of maps is similar to the master map, however the "options" appear between the

mount point and the location instead of at the end of the entry as in the master map:

<mount-point> [<options>] <location>

donde:

• <mount-point> is the autofs mount point. This can be a single directory name for an indirect

mount or the full path of the mount point for direct mounts. Each direct and indirect map entry key

(<mount-point> above) may be followed by a space separated list of offset directories (sub

directory names each beginning with a "/") making them what is known as a mutli-mount entry.

• <options> if supplied, are the mount options for the map entries that do not specify their own

options.

• <location> is the file system location such as a local file system path (preceded with the Sun map

format escape character ":" for map names beginning with "/"), an NFS file system or other valid file

system location.

El siguiente es un archivo de mapa de ejemplo:

dev/hda4

$ cat /etc/auto.misc payroll -fstype=nfs personnel:/dev/hda3 sales -fstype=ext3 :/

La primera columna de un archivo de mapeo indica el punto de montaje de autofs (sales y payroll

del servidor llamado personnel). La segunda columna indica las opciones para el montaje autofs

mientras que la tercera columna indica la fuente del montaje. Siguiendo la configuración anterior,

los puntos de montaje autofs serán /home/payroll y /home/sales. La opción -fstype= con

frecuencia es omitiday generalmente no se necesita para una correcta operación.

El automontaje creará los directorios si no existen. si los directorios existen antes de que se iniciara

el automontaje, este no los eliminará cuando existen. Puede iniciar o reiniciar el demonio de

automontaje emitiendo el siguiente comando:

Page 7: 19  sistema de archivos de red nfs

261

Tareas comunes autofs

$/sbin/service autofs start

or

$/sbin/service autofs restart

Al usar la configuración anterior si un proceso requiere acceso a un directorio desmontado de

autofs tal como /home/payroll/2006/July.sxc entonces el demonio de automontaje montará

automáticamente el directorio. Si se especifica un tiempo de espera, el directorio será desmontado

automáticamente si el directorio no es accedido durante el tiempo de espera.

Puede ver el estatus del demonio de automontaje con el siguiente comando:

$/sbin/service/autofs status

19.3.3. Tareas comunes autofs

19.3.3.1. Anulación o incremento de los archivos de configuración de

sitios

Puede llegar a ser útil el saber como anular sitios predeterminados para un punto de montaje

específico en un sistema de clientes. Por ejemplo, asumiendo que los mapeos de automontaje se

encuentran almacenados en NIS y que el archivo /etc/nsswitch.conf tiene la siguiente directiva:

automontaje: archivos nis

y el archivo de mapeo auto.master NIS contiene lo siguiente:

/home auto.home

También asume que el mapeo auto.home NIS contiene lo siguiente:

beth fileserver.example.com:/export/home/beth

joe fileserver.example.com:/export/home/joe

* fileserver.example.com:/export/home/&

y el archivo mapa /etc/auto.home no existe.

Para el ejemplo anterior asumamos que el sistema de clientes necesita montar directorios principales

desde un servidor diferente. En este caso, el cliente necesitará utilizar el siguiente mapeo /etc/

auto.master:

/home /etc/auto.home2

+auto.master

y el mapa /etc/auto.home2 contiene la entrada:

* labserver.example.com:/export/home/&

Debido a que la primera ocurrencia de un punto de montaje es procesada, /home tendrá en contenido

de /etc/auto.home2 en vez del mapeo auto.home NIS.

Alternatively, if you just want to augment the site-wide

Page 8: 19  sistema de archivos de red nfs

262

Tareas comunes autofs

auto.home

map with a few entries, create a /etc/auto.home file map, and in it put your new entries and at the

end, include the NIS auto.home map. Then the /etc/auto.home file map might look similar to:

mydir someserver:/export/mydir

+auto.home

Dado el mapeo auto.home NIS listado anteriormente, un ls de /home daría:

$ ls /home

beth joe mydir

Este último ejemplo funciona como se esperaba ya que autofs sabe que no debe incluir el contenido

de un mapeo de archivo con el mismo nombre que el que está leyendo y por lo tanto se mueve a la

siguiente fuente de mapeo en la configuración nsswitch.

19.3.3.2. Utilizando LDAP para almacenar mapas de automount

En todos los sistemas se deben instalar las bibliotecas de clientes LDAP, las cuales recuperan

mapeos de automontaje desde LDAP. En RHEL 5, el paquete openldap debe ser instalado

automáticamente como una dependencia del automounter. Para configurar el acceso LDAP

modifique /etc/openldap/ldap.conf. Asegúrese de que BASE y URI se encuentran

configurados apropiadamente para su sitio. Asegúrese de que el esquema se encuentra en la

configuración.

El esquema establecido más recientemente para almacenar mapeos de automontaje en LDAP se

describen en rfc2307bis. Para utilizar este esquema es necesario establecerlo en la configuración

autofs (/etc/sysconfig/autofs) eliminando los comentarios de la definición del esquema. Por

ejemplo:

DEFAULT_MAP_OBJECT_CLASS="automountMap"

DEFAULT_ENTRY_OBJECT_CLASS="automount"

DEFAULT_MAP_ATTRIBUTE="automountMapName"

DEFAULT_ENTRY_ATTRIBUTE="automountKey"

DEFAULT_VALUE_ATTRIBUTE="automountInformation"

Asegúrese de que sólo son entradas del esquema sin comentarios en la configuración. Observe que

automountKey reemplaza el atributo cn en el esquema rfc2307bis. A continuación se describe un

LDIFde una configuración de ejemplo:

# extended LDIF

#

# LDAPv3

# base <> with scope subtree

# filter: (&(objectclass=automountMap)(automountMapName=auto.master))

# requesting: ALL

#

# auto.master, example.com

dn: automountMapName=auto.master,dc=example,dc=com

objectClass: top

objectClass: automountMap

Page 9: 19  sistema de archivos de red nfs

263

Tareas comunes autofs

automountMapName: auto.master

# extended LDIF

#

# LDAPv3

# base <automountMapName=auto.master,dc=example,dc=com> with scope subtree

# filter: (objectclass=automount)

# requesting: ALL

#

# /home, auto.master, example.com

dn: automountMapName=auto.master,dc=example,dc=com

objectClass: automount

cn: /home

automountKey: /home

automountInformation: auto.home

# extended LDIF

#

# LDAPv3

# base <> with scope subtree

# filter: (&(objectclass=automountMap)(automountMapName=auto.home))

# requesting: ALL

#

# auto.home, example.com

dn: automountMapName=auto.home,dc=example,dc=com

objectClass: automountMap

automountMapName: auto.home

# extended LDIF

#

# LDAPv3

# base <automountMapName=auto.home,dc=example,dc=com> with scope subtree

# filter: (objectclass=automount)

# requesting: ALL

#

# foo, auto.home, example.com

dn: automountKey=foo,automountMapName=auto.home,dc=example,dc=com

objectClass: automount

automountKey: foo

automountInformation: filer.example.com:/export/foo

# /, auto.home, example.com

dn: automountKey=/,automountMapName=auto.home,dc=example,dc=com

objectClass: automount

automountKey: /

automountInformation: filer.example.com:/export/&

19.3.3.3. Adaptando mapas de Autofs v4 a Autofs v5

Entradas de mapas múltiples v4

La versión 4 de autofs introdujo la noción de una entrada multi-mapeada en el mapeo maestro. Una

entrada multi-mapeada es así:

<mount-point> <maptype1> <mapname1> <options1> -- <maptype2> <mapname2> <options2> -- ...

Page 10: 19  sistema de archivos de red nfs

264

Tareas comunes autofs

Cualquier número de mapeos pueden ser combinados en un solo mapeo de esta manera. La versión

5 ya no cuenta con esta característica. Esto se debe a que la versión 5 soporta mapeos incluídos, los

cuales se pueden utilizar para obtener los mismos resultados. Considere el siguiente ejemplo multi-

mapeo: /home file /etc/auto.home -- nis auto.home.

Esto puede ser reemplazado por la configuración siguiente para v5:

/etc/nsswitch.conf debe listar:

automontaje: archivos nis

/etc/auto.master debe contener:

/home auto.home

/etc/auto.home debe contener:

<entries for the home directory>

+auto.home

De esta manera, las entradas desde /etc/auto.home y el mapeo auto.home nis se combinan.

Múltiples mapeos maestros

En la versión 4 autofs es posible combinar el contenido de los mapeos maestros de cada fuente como

archivos, nis, hesiod y LDAP. La versión 4 del automontaje busca un mapeo maestro para cada uno

de los recursos enumerados en /etc/nsswitch.conf. El mapeo es leído si existe y su contenido

es fusionado en un mapeo auto.master extenso.

En la versión 5 este ya no sucede así. Solo se consulta el primer mapeo maestro encontrado en la

lista de recursos en nsswitch.conf. Si desea fusionar el contenido de múltiples mapeos maestros

incluso se pueden utilizar los mapeos incluidos. Considere el siguiente ejemplo:

/etc/nsswitch.conf:

automount: files nis

/etc/auto.master:

/home /etc/auto.home

+auto.master

La configuración anterior fusionará el contenido de auto.master con base en los archivos y el

auto.master basado en NIS. Sin embargo, debido a que las entradas de mapeo incluidas sólo

se permiten en mapeos de archivos no hay manera de incluir tanto un auto.master NIS y un

auto.master LDAP.

This limitation can be overcome by creating a master maps that have a different name in the source.

In the example above if we had an LDAP master map named auto.master.ldap we could also add

"+auto.master.ldap" to the file based master map and provided that "ldap" is listed as a source

in our nsswitch configuration it would also be included.

19.4. Opciones de montaje NFS comunes Aparte de montar un sistema de archivos a través de NFS en un host remoto, existen otras opciones

que se pueden ser especificar al momento del montaje que pueden hacerlo más fácil de usar.

Page 11: 19  sistema de archivos de red nfs

265

Opciones de montaje NFS comunes

Estas opciones pueden usarse con el comando manual mount, las configuraciones /etc/fstab y

autofs.

Las siguientes son opciones populares utilizadas para montajes NFS:

• fsid=num — Forces the file handle and file attributes settings on the wire to be num , instead of a

number derived from the major and minor number of the block device on the mounted file system.

The value 0 has special meaning when used with NFSv4. NFSv4 has a concept of a root of the

overall exported file system. The export point exported with fsid=0 is used as this root.

• hard o soft — Especifican si el programa que usa un archivo vía una conexión NFS, debe parar y

esperar (hard) a que el servidor vuelva a estar en línea, si el host que sirve el sistema de archivos

no está disponible, o si debe informar de un error (soft).

Si se especifica la opción hard, el usuario no podrá terminar el proceso que está esperando que la

comunicación NFS se reanude a menos que especifique la opción intr.

If soft is specified, the user can set an additional timeo=<value> option, where <value>

specifies the number of seconds to pass before the error is reported.

Nota

No se recomienda utilizar montajes suaves ya que pueden generar errores de E/S en

redes bastante congestionadas o cuando utilizan un servidor muy ocupado.

• intr — Permite que se interrumpan las peticiones NFS si el servidor se cae o no puede ser

accedido.

• nfsvers=2 o nfsvers=3 — Especifica cuál versión del protocolo NFS se utiliza. Esto es útil para

los hosts que ejecutan múltiples servidores NFS. Si no se especifica ninguna versión, NFS utiliza

la última versión compatible con el kernel y el comando mount. Esta opción no es soportada con

NFSv4 y por tanto no se debería de utilizar.

• noacl — Apaga todo el procesamiento de ACL. Esto puede ser necesario cuando se trate

con versiones más viejas de Red Hat Enterprise Linux, Red Hat Linux o Solaris, puesto que la

tecnología ACL más reciente no es compatible con sistemas más antiguos.

• nolock — Desactiva el bloqueo de archivos. Esta configuración es requerida a veces cuando

conectamos a servidores NFS antiguos.

• noexec — No permite la ejecución de binarios en sistemas de archivos montados. Esto es útil si

el sistema está montando un sistema de archivos no Linux a través de NFS que contiene binarios

incompatibles.

• nosuid — No permite que los bits set-user-identifier o set-group-identifier tomen efecto. Esto

previene que los usuarios remotos obtengan privilegios mayores ejecutando un programa setuid.

• port=num — Specifies the numeric value of the NFS server port. If num is 0 (the default), then

mount queries the remote host's portmapper for the port number to use. If the remote host's NFS

daemon is not registered with its portmapper, the standard NFS port number of TCP 2049 is used

instead.

• rsize=num and wsize=num — Estas configuraciones pueden acelerar la comunicación NFS tanto

para lecturas (rsize) como para escrituras (wsize), configurando un tamaño de bloque de datos

Page 12: 19  sistema de archivos de red nfs

266

Opciones de montaje NFS comunes

mayor, en bytes, que serán transferidos de una sola vez. Tenga cuidado al cambiar estos valores;

algunos kernels antiguos de Linux y tarjetas de red no funcionan bien con grandes tamaños de

bloques. Para NFSv2 o NFSv3, los valores por defecto para ambos parámetros está configurado a

8192. Para NFSv4, los valores por defecto para ambos parámetros es 32768.

• sec=mode — Especifica el tipo de seguridad a utilizar cuando se autentique una conexión NFS.

sec=sys es la configuración por defecto, lo que utiliza UNIX UIDs y GIDs locales a través de

AUTH_SYS para autentificar las operaciones NFS.

sec=krb5 utiliza Kerberos V5 en vez de UNIX UIDs y GIDs locales para autentificar a los usuarios.

sec=krb5i utiliza Kerberos V5 para la autenticación de usuarios y realiza la verificación de

integridad de las operaciones NFS usando sumas de verificación para prevenir el daño de los

datos.

sec=krb5p utiliza Kerberos V5 para la autenticación de usuarios, la verficación de integridad y

encriptar el tráfico NFS para prevenir el huzmeo del mismo. Esta es la configuración más segura,

pero también tiene la sobrecarga de rendimiento más grande.

• tcp — Especifica que se utilice el protocolo TCP para el montaje NFS.

• udp — Especifica que NFS utilice el protocolo UDP para el montaje.

Hay muchas más opciones en la página del manual de mount y nfs

19.5. Iniciar y detener NFS Para ejecutar un servidor NFS, debe estar ejecutándose el servicio portmap. Para verificar que

portmap se encuentra activo, escriba el comando siguiente como root:

/sbin/service portmap status

Si el servicio portmap se está ejecutando entonces se puede iniciar nfs. Para iniciar un servidor

NFS escriba como root:

/sbin/service nfs start

Nota

nfslocktambién tiene que ser inciado tanto para el cliente NFS como para el

servidor para que funcione de manera apropiada. Para que NFS inicie el bloqueo

como tipo root: /sbin/service nfslock start. Si NFS está configurado

para que inice durante el arranque asugúrese de que nfslock también se inicie

ejecutando chkconfig --list nfslock. Si nfslock no esta configurado como

on, esto implica que necesitará ejecutar manualmente /sbin/service nfslock

start cada vez que inicie el computador. Para configurar nfslock para que inicie

automáticamnete durante el arranque, escriba el siguiente comando en una terminal

chkconfig nfslock on.

Para detener el servidor, como usuario root, escriba:

Page 13: 19  sistema de archivos de red nfs

267

Configuración del servidor NFS

/sbin/service nfs stop

La opción restart es un atajo para detener y luego iniciar NFS. Esta es la forma más eficiente de

hacer que los cambios en la configuración tomen efecto luego de modificar el archivo de configuración

por NFS.

Para reiniciar el servidor, como usuario root, escriba:

/sbin/service nfs restart

La opción condrestart (reinicio condicional) solamente arranca vsftpd si está ejecutándose en

ese momento. Esta opción es muy útil para scripts puesto que no arranca el demonio si este no se

está ejecutando.

Para reiniciar condicionalmente el servidor, como root escriba:

/sbin/service nfs condrestart

Para recargar el archivo de configuración del servidor NFS sin reiniciar el servicio, como root escriba:

/sbin/service nfs reload

By default, the nfs service does not start automatically at boot time. To configure the NFS to start up at

boot time, use an initscript utility, such as /sbin/chkconfig, /usr/sbin/ntsysv, or the Services

Configuration Tool program. Refer to Capítulo 16, Control de acceso a servicios for more information

regarding these tools.

19.6. 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.

To use the NFS Server Configuration Tool, you must be running X Windows, have root privileges, and

have the system-config-nfs RPM package installed. To start the application, click on System >

Administration > Server Settings > NFS. You can also type the command system-config-nfs in

a terminal. The NFS Server Configuration tool window is illustrated below.

Page 14: 19  sistema de archivos de red nfs

268

Configuración del servidor NFS

Figura 19.1. NFS Server Configuration Tool

Con base en ciertas configuraciones del cortafuegos puede que necesite configurar los procesos del

demonio NFS para utilizar puertos de red específicos. La configuración del servidor NFS le permite

especificar los puertos para cada proceso en vez de utilizar los puertos aleatorios asignados por el

portmapper. Puede modificar la configuración del Servidor NFS al hacer click en el botón

Configuración del Servidor. La figura a continuación describe la ventana de Configuración del

Servidor NFS.

Figura 19.2. NFS Server Settings

19.6.1. Exportar o compartir sistemas de archivos NFS

El compartir o servir archivos desde un servidor NFS se conoce como exportar los directorios. La

Herramienta de Configuración del Servidor NFS se puede utilizar para configurar un sistema en

un servidor NFS.

To add an NFS share, click the Add button. The dialog box shown in Figura 19.3, “Añadir particiones”

appears.

La pestaña Básico requiere la siguiente información:

• Directorio — Especifique el directorio a compartir, por ejemplo /tmp.

• Host(s) — Specify the host(s) with which to share the directory. Refer to Sección 19.6.4, “Formatos

del nombre de host” for an explanation of possible formats.

• Permisos básicos — Especifique si el directorio debería tener permisos de sólo lectura o sólo

escritura.

Page 15: 19  sistema de archivos de red nfs

269

Exportar o compartir sistemas de archivos NFS

Figura 19.3. Añadir particiones

La pestaña Opciones generales permite configurar las siguientes opciones:

Figura 19.4. Opciones generales de NFS

• Permitir conexiones desde un puerto 1024 o superior — Los servicios iniciados en los puertos

con números inferiores a 1024 deben iniciarse como root. Seleccione esta opción para permitir que

el servicio NFS sea iniciado por un usuario regular y no root. Esta opción corresponde a insecure.

Page 16: 19  sistema de archivos de red nfs

270

Exportar o compartir sistemas de archivos NFS

• Permitir el bloqueo de archivos inseguros — No realiza una petición de bloqueo. Esta opción

corresponde a insecure_locks.

• Inhabilite la verificación de subárbol — Si se exporta un subdirectorio de un sistema de archivos,

pero no se exporta el sistema de archivos completo, el servidor comprueba si el archivo en cuestión

está en el subdirectorio exportado. A este control se le conoce como verificación de subárbol.

Seleccione esta opción para inhabilitar el control del subárbol. Si se exporta el sistema de archivos

completo, al seleccionar que se inhabilite la verificación del subárbol puede incrementar el ratio de

transferencia. Esta opción corresponde a no_subtree_check.

• Operaciones de escritura sincronizada a petición — Habilitada por defecto, esta opción no deja

que el servidor responda a las peticiones antes de que los cambios hechos a petición sean escritos

en el disco. Esta opción corresponde a sync. Si no la ha seleccionado, se usará la opción async.

• Forzar la sincronización de operaciones de escritura inmediatamente — No retrase la

escritura en disco. Esta opción corresponde a no_wdelay.

• Ocultar sistemas de archivos debajo cambia la opción nohide a apagado o prendido. Cuando la

opción nohide se encuentra apagada se revelan los directorios anidados. Por lo tabto los clientes

pueden navegar en el sistema de archivos desde el padre sin notar ningún cambio.

• Exportar solo si ha sido montado configura la opción mountpoint, la cual permite que se

exporte un directorio sólo si ha sido montado.

• El Punto de Montaje Opcional especifica la ruta hacia un punto de montaje opcional. Haga click

en Navegar para ir hasta el punto de montaje preferido o escriba la ruta si la conoce.

• Configurar explícitamente ID del sistema de archivos: configura la opción fsid=X. Esto se

utiliza principalmente en una configuración con clústers. La utilización de un ID consistente para el

sistema de archivos en todos loc clústers evita el tener manejadores de archivos NFS antiguos.

Page 17: 19  sistema de archivos de red nfs

271

Exportar o compartir sistemas de archivos NFS

Figura 19.5. Acceso de usuarios NFS

La pestaña Acceso al usuario le permite configurar las opciones siguientes:

• Trate el usuario de root remoto como root local — Por defecto, el usuario y los IDs de grupo del

usuario de root son 0. Root ubica el ID de usuario en 0 y el ID de grupo en 0 para los IDs de grupo y

de usuario anónimos de manera que root en un cliente no posee privilegios de root en el servidor

NFS. La selección de esta opción puede aminorar la seguridad del sistema. No lo seleccione a

menos que sea absolutamente necesario. Esta opción corresponde a no_root_squash.

• Trate a todos los usuarios de clientes como usuarios anónimos — Si selecciona esta

opción, todos los IDs de usuarios y de grupos están ubicados en el usuario anónimo. Esta opción

corresponde a all_squash.

• Especificar el ID del usuario local para los usuarios anónimos — Si selecciona Tratar a

todos los usuarios de clientes como usuarios anónimos, esta opción le permite especificar

un ID de usuario para el usuario anónimo. Esta opción corresponde a anonuid.

• Especificar el ID del grupo local para los usuarios anónimos — Si selecciona Tratar todos

los usuarios de clientes como usuarios anónimos, esta opción le permite especificar un ID de

grupo para el usuario anónimo. Esta opción corresponde a anongid.

Para modificar una partición NFS ya existente, selecciónela desde la lista y pulse el botón

Propiedades. Para borrar un share NFS ya existente, selecciónelo desde la lista y pulse el botón

Eliminar.

Después de hacer click en OK para añadir, editar o borrar un recurso compartido NFS de la lista,

los cambios tiene lugar inmediatamente — el demonio del servidor es reiniciado y el archivo de

Page 18: 19  sistema de archivos de red nfs

272

Exportar o compartir sistemas de archivos NFS

configuración antiguo se guarda como /etc/exports.bak. La nueva configuración es escrita en /

etc/exports.

La Herramienta de Configuración del Servidor NFS lee y escribe directamente al archivo de

configuración /etc/exports. Por tanto, el archivo puede ser modificado manualmente después de

usar la herramienta y la herramienta se puede usar después de modificar el archivo manualmente

(asumiendo que el archivo fué modificado con la sintáxis correcta).

La siguiente sección discute la modificación manual de /etc/exports y la utilización del comando /

usr/sbin/exportfs para exportar sistemas de archivos NFS.

19.6.2. Configuración desde la línea de comandos

Si prefiere modificar archivos de configuración usando un editor de texto o si no tiene el sistema X

Window instalado, puede modificar el archivo de configuración directamente.

El archivo /etc/exports controla qué directorios exporta el servidor NFS. Su formato es como

puede ver a continuación:

directory hostname(options)

La única opción que se debe especificar es una de sync o async (se recomienda sync). Si se

especifica sync, el servidor no responde a las peticiones antes de que los cambios realizados sean

escritos al disco.

Por ejemplo:

/misc/export speedy.example.com(sync)

permitirá a los usuarios desde speedy.example.com montar /misc/export con privilegios de

lectura/escritura.

/misc/export speedy.example.com(rw,sync)

permitirá a los usuarios desde speedy.example.com montar /misc/export con privilegios de

lectura/escritura.

Refer to Sección 19.6.4, “Formatos del nombre de host” for an explanation of possible hostname

formats.

Page 19: 19  sistema de archivos de red nfs

273

Running NFS Behind a Firewall

Atención

Esté atento a los espacios en el archivo /etc/exports. Si no existen espacios

entre el nombre del host y las opciones en paréntesis, las opciones se aplican sólo

al nombre del host. Si existe un espacio entre el nombre del host y las opciones, las

opciones se aplican al resto del mundo. Por ejemplo, examine las líneas siguientes:

/misc/export speedy.example.com(rw,sync) /misc/export speedy.example.com

(rw,sync)

La primera línea otorga acceso de lectura/escritura a los usuarios desde

speedy.example.com y niega acceso a todos los otros usuarios. La segunda

línea otorga acceso de sólo lectura a los usuarios desde speedy.example.com

(predeterminado) y permite al resto del mundo acceso de lectura/escritura.

Cada vez que cambie /etc/exports, debe informar al demonio NFS del cambio, o recargar el

archivo de configuración con el siguiente comando:

/sbin/service nfs reload

19.6.3. Running NFS Behind a Firewall

Because NFS requires portmap, which dynamically assigns ports for RPC services and can cause

problems for configuring firewall rules, you can edit the /etc/sysconfig/nfs configuration file to

control which ports the required RPC services run on. Refer to and read Sección 28.1.22, “/etc/

sysconfig/nfs” for instructions on how to configure a firewall to allow NFS.

19.6.4. Formatos del nombre de host

El host(s) puede ser de las siguientes maneras:

• Máquina individual — Un nombre de dominio completamente calificado (que el servidor lo puede

resolver), nombre de host (que el servidor lo puede resolver) o una dirección IP.

• Series de máquinas especificadas con comodines — Use los caracteres * o ? para especificar una

coincidencia de cadenas. Los comodines no son utilizados con direcciones IP; sin embargo, pueden

funcionar accidentalmente si fallan las búsquedas inversas de DNS. Cuando se especifican

comodines en un dominio de nombres completamente calificado, los puntos (.) no son incluidos

en el comodín. Por ejemplo, *.example.com incluye one.example.com pero no incluye

one.two.example.com.

• Redes IP — Use a.b.c.d/z, donde a.b.c.d es la red y z es el número de bits en la máscara de

red (por ejemplo 192.168.0.0/24). Otro formato aceptables es a.b.c.d/netmask, donde a.b.c.d

es la red y netmask es la máscara de red (por ejemplo, 192.168.100.8/255.255.255.0).

• Grupos de red — En el formato @group-name, donde group-name es el grupo de red de NIS.

Page 20: 19  sistema de archivos de red nfs

274

Running NFS Behind a Firewall

19.7. 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 las opciones. Las líneas en blanco se ignoran, se pueden realizar comentarios

inciando la línea 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 autorizados

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 separando el host y el primer paréntesis. Los tipos de hosts

válidos son gss/krb5 gss/krb5i y gss/krb5p.

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

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

In this structure, replace <export> with the directory being exported, replace <host1> with the host

or network to which the export is being shared, and replace <options> with the options for that host

or network. Additional hosts can be specified in a space separated list.

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

• host único — Cuando una máquina en particular es especificada con nombre completo de dominio,

nombre de máquina o dirección IP.

• comodines — Usamos un carácter * o ? para referirnos a un grupo de nombres completos de

dominio o direcciones IP o que coincidan con una cadena particular de letras. Los comodines

no se deberían de utilizar con direcciones IP; sin embargo, es posible que funcionen de manera

accidental si fallan las búsquedas inversas de DNS.

Tenga cuidado cuando especifique comodines con nombres de dominio completos pues

tienden a ser más exactos de lo que usted cree. Por ejemplo, el uso de *.example.com como

comodín permitirá a sales.example.com acceder al sistema de archivos exportado, pero no a

bob.sales.example.com. Para que ambas posibilidades coincidan debería usar *.example.com y

también *.*.example.com.

• Redes IP — Permite el emparejar hosts con base en sus direcciones IP dentro de una red más

grande. Por ejemplo, 192.168.0.0/28 permite el acceso a las primeras 16 direcciones IP, desde

la 192.168.0.0 a la 192.168.0.15, para acceder al sistema de archivos exportado, pero no a la

192.168.0.16 y superiores.

• netgroups — Permits an NIS netgroup name, written as @<group-name> , to be used. This

effectively puts the NIS server in charge of access control for this exported file system, where users

can be added and removed from an NIS group without affecting /etc/exports.

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 siguiente ejemplo:

/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 tendrán efecto las siguientes opciones predeterminadas de NFS:

Page 21: 19  sistema de archivos de red nfs

275

El archivo de configuración /etc/exports

• ro — Se montan los sistemas de archivos como de sólo lectura (read-only). Los host remotos no

pueden hacer cambios a los datos compartidos en el sistema de archivos. Para permitir que los

hosts puedan hacer cambios, debe especificar la opción rw (lectura-escritura, read-write).

• wdelay — Provoca que el servidor NFS retrase el escribir a disco si sospecha que otra petición

de escritura es inminente. Esto puede mejorar el rendimiento reduciendo las veces que se debe

acceder al disco por comandos de escritura separados. Use no_wdelay para desactivar esta

opción, la cual sólo funciona si está usando la opción sync.

• root_squash — Prevents root users connected remotely from having root privileges and assigns

them the user ID for the user nfsnobody. This effectively "squashes" the power of the remote

root user to the lowest local user, preventing unauthorized alteration of files on the remote server.

Alternatively, the no_root_squash option turns off root squashing. To squash every remote user,

including root, use the all_squash option. To specify the user and group IDs to use with remote

users from a particular host, use the anonuid and anongid options, respectively. In this case, a

special user account can be created for remote NFS users to share and specify (anonuid=<uid-

value>,anongid=<gid-value>), where <uid-value> is the user ID number and <gid-

value> is the group ID number.

Importante

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.

Cada valor predeterminado para un sistema de archivos exportado debe ser ignorado explícitamente.

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 para desactivar la verificación por subdirectorios, permitir

el acceso desde puertos inseguros y permitir el bloqueo de archivos inseguros (necesario para

algunas implementaciones antiguas de clientes NFS). Vea la página del manual exports para ver

detalles sobre estas opciones menos usadas.

Page 22: 19  sistema de archivos de red nfs

276

El archivo de configuración /etc/exports

Aviso

La manera en que el archivo /etc/exports está organizado es muy importante

particularmente en 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 de comentarios.

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.example.com acceder en

modo de lectura/escritura al directorio /home. La segunda línea permite a los

usuarios de bob.example.com montar el directorio como de sólo lectura (el

predeterminado) pero el resto del mundo puede instalarlo como lectura/escritura.

19.7.1. El comando exportfs

Every file system being exported to remote users via NFS, as well as the access level for those file

systems, are listed in the /etc/exports file. When the nfs service starts, the /usr/sbin/

exportfs command launches and reads this file, passes control to rpc.mountd (if NFSv2 or

NFSv3) for the actual mounting process, then to rpc.nfsd where the file systems are then available

to remote users.

When issued manually, the /usr/sbin/exportfs command allows the root user to selectively

export or unexport directories without restarting the NFS service. When given the proper options, the

/usr/sbin/exportfs command writes the exported file systems to /var/lib/nfs/xtab. Since

rpc.mountd refers to the xtab file when deciding access privileges to a file system, changes to the

list of exported file systems take effect immediately.

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

• -r — Provoca que todos los directorios listados en /etc/exports sean exportados construyendo

una nueva lista de exportación en /etc/lib/nfs/xtab. Esta opción refresca la lista de

exportación con cualquier cambio que se haya realizado a /etc/exports.

• -a — Provoca que todos los directorios sean exportados o no, dependiendo de qué otras opciones

hemos pasado a /usr/sbin/exportfs. Si no se pasan otras opciones, /usr/sbin/exportfs

exporta todos los sistemas de archivos especificados en /etc/exports.

• -o file-systems — Specifies directories to be exported that are not listed in /etc/exports.

Replace file-systems with additional file systems to be exported. These file systems must be

formatted in the same way they are specified in /etc/exports. Refer to Sección 19.7, “El archivo

de configuración /etc/exports” for more information on /etc/exports syntax. This option is

often used to test an exported file system before adding it permanently to the list of file systems to

be exported.

• -i — Ignora /etc/exports; sólo se utilizan las opciones dadas desde la línea de comandos para

definir los sistemas de archivos exportados.

Page 23: 19  sistema de archivos de red nfs

277

El comando exportfs

• -u — No exporta todos los directorios compartidos. El comando /usr/sbin/exportfs -ua

suspende la compartición de archivos NFS mientras que mantiene todos los demonios NFS activos.

Para reactivar NFS escriba exportfs -r.

• -v — Operación descriptiva, en donde se muestran en gran detalle los sistemas de archivos

exportados o dejados de exportar al ejecutar el comando exportfs.

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

archivos actualmente exportados.

Para obtener mayor información sobre /usr/sbin/exportfs, consulte la página man de

exportfs.

19.7.1.1. Uso de exportfs con NFSv4

El comando exportfs se utiliza para mantener la tabla NFS de los sistemas de archivos exportados.

Cuando se escribe en una terminal sin argumentos, el comando exportfs muestra todos los

directorios exportados.

Since NFSv4 no longer utilizes the MOUNT protocol, which was used with the NFSv2 and NFSv3

protocols, the mounting of file systems has changed.

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, la cual crea enlaces irrompibles.

Debido a la característica del sistema de pseudo archivos las versiones 2, 3 y 4 no simpre son

compatibles. Por ejemplo, dado el siguiente árbol de directorios:

/home /home/sam /home/john /home/joe

y el archivo export:

/home *(rw,fsid=0,sync)

Lo siguiente debe funcionar para las versiones 2, 3 y 4 NFS:

mount server:/home /mnt/home ls /mnt/home/joe

Page 24: 19  sistema de archivos de red nfs

278

El comando exportfs

El siguiente comando debe funcionar con v4

mount -t nfs4 server:/ /mnt/home ls /mnt/home/joe

The difference being "server:/home" and "server:/". To make the exports configurations

compatible for all version, one needs to export (read only) the root filesystem with an fsid=0. The

fsid=0 signals the NFS server that this export is the root.

/ *(ro,fsid=0) /home *(rw,sync,nohide)

Now with these exports, both "mount server:/home /mnt/home" and "mount -t nfs

server:/home /mnt/home" will work as expected.

19.8. Protección de NFS NFS trabaja muy bien compartiendo sistemas de archivos enteros con un gran número de hosts

conocidos de una manera muy transparente. Sin embargo, esta facilidad de uso trae una variedad de

problemas potenciales de seguridad.

Los puntos siguientes deberían ser considerados cuando se exporten sistemas de archivos NFS en

un servidor o cuando se monten en un cliente. Haciendo esto reducirá los riesgos de seguridad NFS y

protegerá mejor los datos en el servidor.

19.8.1. Acceso al sistema

La versión de NFS que planee implementar, depende de su red existente y de sus preocupaciones de

seguridad. La sección siguiente explica las diferencias entre las medidas de seguridad con NFSv2,

NFSv3 y NFSv4. Si es posible, utilice NFSv4. Es el más recomendado.

19.8.1.1. Uso de NFSv2 o NFSv3

NFS controla quien puede montar y exportar sistemas de archivos basados en la máquina que hace la

petición, no el usuario que utiliza el sistema de archivos. Los hosts tienen que tener los derechos para

montar los sistemas de archivos exportados explícitamente. El control de acceso no es posible para

usuarios, aparte de los permisos de archivos y directorios. En otras palabras, una vez que un sistema

de archivos es exportado vía NFS, cualquier usuario en cualquier máquina remota conectada al

servidor NFS puede acceder a los datos compartidos. Para limitar estos riesgos potenciales, los

administradores sólo pueden permitir acceso de sólo-lectura o reducir a los usuarios a un usuario

común y groupid. Pero estas soluciones pueden impedir que la compartición NFS sea usada de la

forma en que originalmente se pensó.

Adicionalmente, si un atacante gana el control del servidor DSN usado por el sistema que exporta el

sistema de archivos NFS, el sistema asociado con un nombre de host concreto o nombre de dominio

totalmente cualificado, puede ser dirigido a una máquina sin autorización. En este punto, la máquina

desautorizada es el sistema que tiene permitido montar la compartición NFS, ya que no hay

intercambio de información de nombre de usuario o contraseña para proporcional seguridad adicional

al montaje NFS.

Los comodines o metacaracteres deben ser usados lo menos posible cuando garantizamos el acceso

a una compartición NFS. El uso de los comodines puede incluir más sistemas de los que se desean.

Page 25: 19  sistema de archivos de red nfs

279

Permisos de archivos

También es posible restringir el acceso al servicio portmap a través de los TCP wrappers. El acceso

a los puertos usados por portmap, rpc.mountd y rpc.nfsd se puede limitar creando reglas de

cortafuegos con iptables.

For more information on securing NFS and portmap, refer to Sección 43.7, “IPTables”.

19.8.1.2. Uso de NFSv4

El lanzamiento de NFSv4 trajo consigo una revolución para la autentificación y la seguridad cuando

se comparten directorios a través de NFS. NFSv4 manda la implementación del módulo del kernel

RPCSEC_GSS, el mecanismo GSS-API de la versión Kerberos 5, SPKM-3, y LIPKEY. Con NFSv4,

los mecanismos de seguridad obligatorios están orientados hacia la autenticación de usuarios

individuales y no a máquinas clientes, como lo hace NFSv2 y NFSv3.

Nota

Se asume que se tiene instalado un servidor de entrega de tíckets (KDC) y que está

configurado de la forma correcta, antes de configurar el servidor NFSv4. Kerberos

es un sistema de autenticación de red, el cual permite a los clientes y servidores

auteticarse unos a otros mediante el uso de encriptación simétrica y una tercera

parte confible, el KDC.

NFSv4 incluye el soporte a ACL basado en el modelo de Microsoft Windows NT, no en el modelo

POSIX, por sus funcionalidades y porque es implementado ampliamente. NFSv2 y NFSv3 no son

compatibles con los atributos nativos de ACL.

Another important security feature of NFSv4 is the removal of the use of the MOUNT protocol for

mounting file systems. This protocol presented possible security holes because of the way that it

handled file handles.

Para obtener más información sobre la estructura de RPCSEC_GSS, incluyendo cómo

rpc.svcgssd and rpc.gssd interoperan, consulte en http://www.citi.umich.edu/projects/nfsv4/gssd/ .

19.8.2. Permisos de archivos

Una vez que el sistema de archivos NFS es montado como lectura/escritura por un host remoto, la

única protección que tiene cada archivo compartido son sus permisos. Si dos usuarios que

comparten el mismo valor de identificador de usuario montan el mismo NFS, ellos podran modificar

sus archivos mutuamente. Adicionalmente, cualquiera con acceso root en el sistema cliente puede

usar el comando su - para volverse un usuario que tenga acceso a determinados archivos a través

del recurso compartido NFS.

Por defecto, las listas de control de acceso (ACL según sus siglas en inglés) para NFS son aceptadas

en Red Hat Enterprise Linux. No se recomienda desactivar esta función.

The default behavior when exporting a file system via NFS is to use root squashing. This sets the

user ID of anyone accessing the NFS share as the root user on their local machine to a value of the

server's nfsnobody account. Never turn off root squashing.

Si se está exportando un recurso compartido NFS como de sólo lectura, considere usar la opción

all_squash, la cual hace que todos los usuarios que acceden al sistema de archivos exportado

tomen el ID de usuario del nfsnobody.

Page 26: 19  sistema de archivos de red nfs

280

Permisos de archivos

19.9. NFS y portmap

Nota

La siguiente sección solamente aplica para las implementaciones NFSv2 o NFSv3

que requieren del servicio portmap para la compatibilidad retroactiva.

El servicio portmapper asigna las peticiones RPC a los puertos que están escuchando. Los

procesos RPC notifican a portmap cuando comienzan, registrando el número de puerto que

ellos están supervisando y el número de programas RPC que esperan servir. El sistema cliente

entonces contacta con el portmap del servidor con un número de programa RPC particular. Entonces

portmap redirecciona al cliente al número del puerto apropiado para que se comunique con el

servicio solicitado.

Como los servicios basados en RPC confían en portmap para hacer todas las conexiones con las

peticiones de clientes entrantes, portmap debe estar disponible antes de que cualquiera de esos

servicios comience.

The portmap service uses TCP wrappers for access control, and access control rules for portmap

affect all RPC-based services. Alternatively, it is possible to specify access control rules for each of the

NFS RPC daemons. The man pages for rpc.mountd and rpc.statd contain information regarding

the precise syntax for these rules.

19.9.1. Solución de problemas de NFS y portmap

Como portmap proporciona la coordinación entre los servicios RPC y los números de puertos

usados para comunicarlos, es útil poder visualizar el estado de los servicios RPC actuales usando

portmap cuando estamos resolviendo algún problema. El comando rpcinfo muestra cada servicio

basado en RPC con su número de puerto, número de programa RPC, versión y tipo de protocolo

(TCP o UDP).

Para asegurarse de que están activos los servicios NFS basados en RPC para portmap, use el

comando siguiente como root:

rpcinfo -p

A continuación se presenta una muestra de la salida de este comando:

program vers proto port

100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100021 1 udp 32774 nlockmgr 100021 3 udp 32774 nlockmgr 100021 4 udp 32774 nlockmgr 100021 1 tcp 34437 nlockmgr 100021 3 tcp 34437 nlockmgr 100021 4 tcp 34437 nlockmgr 100011 1 udp 819 rquotad 100011 2 udp 819 rquotad 100011 1 tcp 822 rquotad 100011 2 tcp 822 rquotad 100003 2 udp 2049 nfs

Page 27: 19  sistema de archivos de red nfs

281

Uso de NFSv4 sobre TCP

100003 3 udp 2049 nfs 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100005 1 udp 836 mountd 100005 1 tcp 839 mountd 100005 2 udp 836 mountd 100005 2 tcp 839 mountd 100005 3 udp 836 mountd 100005 3 tcp 839 mountd

If one of the NFS services does not start up correctly, portmap is unable to map RPC requests from

clients for that service to the correct port. In many cases, if NFS is not present in rpcinfo output,

restarting NFS causes the service to correctly register with portmap and begin working. For

instructions on starting NFS, refer to Sección 19.5, “Iniciar y detener NFS”.

Hay disponibles otras opciones útiles para el comando rpcinfo. Para obtener más información

consulte la página del manual rpcinfo.

19.10. Uso de NFSv4 sobre TCP Aunque el protocolo de transporte predeterminado para NFSv4 is TCP; el kernel de Red Hat

Enterprise Linux 5 incluy soporte para NFS sobre UDP. Para utilizar NFS sobre UDP incluya la opción

-o udp para mount cuando se encuentre montando el sistema de archivos exportados NFS en el

sistemas del cliente.

Hay tres maneras de configurar una exportación de sistemas de acrhivos NFS. A petición por medio

de la línea de comandos (del lado del cliente), automáticamente por medio del archivo /etc/fstab

(del lado del cliente) y automáticamente por medio de los archivos de configuración autofs tal como /

etc/auto.master y /etc/auto.misc (del lado del servidor con NIS).

Por ejemplo, en demanda por medio de la línea de comandos (del lado del cliente):

mount -o udp shadowman.example.com:/misc/export /misc/local

Cuando el montaje de NFS se especifica en /etc/fstab (en el cliente):

server:/usr/local/pub /pub nfs rsize=8192,wsize=8192,timeo=14,intr,udp

Cuando se especifica el montaje NFS en un archivo de configuración autofs para un servidor NIS

disponible para estaciones de trabajo activadas para NIS:

myproject -rw,soft,intr,rsize=8192,wsize=8192,udp penguin.example.net:/proj52

Ya que el predeterminado es TCP, si no se especifica la opción -o udp, se accede al sistema de

archivos exportados NFS por medio de TCP.

Las ventajas de usar TCP incluyen lo siguiente:

• Durabilidad de la conexión mejorada, por lo tanto habrá menos mensajes de manejadores de

archivos NFS viejos.

• Ganancia en rendimiento en redes con mucha carga debido a que TCP notifica cada paquete, a

diferencia de UDP, que solamente notifica cuando termina.

Page 28: 19  sistema de archivos de red nfs

282

Uso de NFSv4 sobre TCP

• TCP has better congestion control than UDP. On a very congested network, UDP packets are

the first packets that are dropped. This means that if NFS is writing data (in 8K chunks) all of that

8K must be retransmitted over UDP. Because of TCP's reliability, only parts of that 8K data are

transmitted at a time.

• Error detection. When a TCP connection breaks (due to the server being unavailable) the client

stops sending data and restarts the connection process once the server becomes available. With

UDP, since it's connection-less, the client continues to pound the network with data until the server

reestablishes a connection.

La principal desventaja es que hay un muy pequeño impacto en el rendimiento debido a la sobrecarga

asociada con el protocolo TCP.

19.11. Recursos adicionales Administrar un servidor NFS puede ser un desafío. Muchas opciones, incluyendo algunas no

mencionadas en este capítulo, están disponibles para exportar sistemas de archivos NFS o montarlos

como cliente. Consulte las siguientes fuentes de información para más detalles.

19.11.1. Documentación instalada

• /usr/share/doc/nfs-utils-<version-number>/ — Replace <version-number> with the

version number of the NFS package installed. This directory contains a wealth of information about

the NFS implementation for Linux, including a look at various NFS configurations and their impact

on file transfer performance.

• man mount — Contiene una vista completa de las opciones de montaje para configuraciones tanto

del servidor como del cliente NFS.

• man fstab — Presenta detalles sobre el formato del archivo /etc/fstab usado para montar

sistemas de archivos en el momento de arranque.

• man nfs — Proporciona detalles de opciones de montaje y de exportación de sistemas de

archivos NFS específicos.

• man exports — Muestra las opciones comunes usadas en el archivo /etc/exports cuando

exportamos sistemas de archivos NFS.

19.11.2. Sitios Web útiles

• http://nfs.sourceforge.net/ — El sitio principal para el proyecto Linux NFS y un excelente lugar para

ver las actualizaciones de proyectos.

• http://www.citi.umich.edu/projects/nfsv4/linux/ — Un recurso de NFSv4 para el kernel de Linux 2.6.

• http://www.nfsv4.org1

— El sitio principal para NFS versión 4 y todos los estándares relacionados.

• http://www.vanemery.com/Linux/NFSv4/NFSv4-no-rpcsec.html — Describe los detalles de NFSv4

con Fedora Core 2, lo que incluye el kernel 2.6.

• http://www.sane.nl/events/sane2000/papers/pawlowski.pdf — An excellent whitepaper on the

features and enhancements of the NFS Version 4 protocol.

• http://wiki.autofs.net — Las páginas wiki, las discusiones, la documentación y las mejoras de autofs.

Page 29: 19  sistema de archivos de red nfs

283

Libros sobre el tema

19.11.3. Libros sobre el tema

• Managing NFS and NIS by Hal Stern, Mike Eisler, and Ricardo Labiaga; O'Reilly &

Associates — Makes an excellent reference guide for the many different NFS export and

mount options available.

• NFS Illustrated por Brent Callaghan; Addison-Wesley Publishing Company — Proporciona

comparaciones entre NFS y otros sistemas de archivos de red y muestra en detalle como

funcionan las comunicaciones NFS.