255
Sistema de archivos de red (NFS)
Un Sistema de archivos de red (NFS) permite a los hosts remotos montar sistemas de ar...
256
Configuración de clientes NFS
privilegios para acceder a los sistemas de archivos exportados. Una vez se otorga el acc...
257
Configuración de clientes NFS
• rpc.rquotad — Este proceso proporciona información de cuota del usuario para los usuar...
258
Configuración de clientes NFS
<server>:</remote/export> </local/directory> <nfs-type> <options> 0 0
Replace <server> w...
259
Configuración de autofs
<host>" as a multi-mount map entry. When using the "-hosts" map, an 'ls' of "/net/<host>"
will...
260
Configuración de autofs
donde:
• punto-de-montaje es el punto de montaje de autofs. Por ejemplo /home.
• map-name es e...
261
Tareas comunes autofs
$/sbin/service autofs start
or
$/sbin/service autofs restart
Al usar la configuración anterior s...
262
Tareas comunes autofs
auto.home
map with a few entries, create a /etc/auto.home file map, and in it put your new entri...
263
Tareas comunes autofs
automountMapName: auto.master
# extended LDIF
#
# LDAPv3
# base <automountMapName=auto.master,dc...
264
Tareas comunes autofs
Cualquier número de mapeos pueden ser combinados en un solo mapeo de esta manera. La versión
5 y...
265
Opciones de montaje NFS comunes
Estas opciones pueden usarse con el comando manual mount, las configuraciones /etc/fst...
266
Opciones de montaje NFS comunes
mayor, en bytes, que serán transferidos de una sola vez. Tenga cuidado al cambiar esto...
267
Configuración del servidor NFS
/sbin/service nfs stop
La opción restart es un atajo para detener y luego iniciar NFS. ...
268
Configuración del servidor NFS
Figura 19.1. NFS Server Configuration Tool
Con base en ciertas configuraciones del cort...
269
Exportar o compartir sistemas de archivos NFS
Figura 19.3. Añadir particiones
La pestaña Opciones generales permite co...
270
Exportar o compartir sistemas de archivos NFS
• Permitir el bloqueo de archivos inseguros — No realiza una petición de...
271
Exportar o compartir sistemas de archivos NFS
Figura 19.5. Acceso de usuarios NFS
La pestaña Acceso al usuario le perm...
272
Exportar o compartir sistemas de archivos NFS
configuración antiguo se guarda como /etc/exports.bak. La nueva configur...
273
Running NFS Behind a Firewall
Atención
Esté atento a los espacios en el archivo /etc/exports. Si no existen espacios
e...
274
Running NFS Behind a Firewall
19.7. El archivo de configuración /etc/exports
El archivo /etc/exports controla cuáles s...
275
El archivo de configuración /etc/exports
• ro — Se montan los sistemas de archivos como de sólo lectura (read-only). L...
276
El archivo de configuración /etc/exports
Aviso
La manera en que el archivo /etc/exports está organizado es muy importa...
277
El comando exportfs
• -u — No exporta todos los directorios compartidos. El comando /usr/sbin/exportfs -ua
suspende la...
278
El comando exportfs
El siguiente comando debe funcionar con v4
mount -t nfs4 server:/ /mnt/home ls /mnt/home/joe
The d...
279
Permisos de archivos
También es posible restringir el acceso al servicio portmap a través de los TCP wrappers. El acce...
280
Permisos de archivos
19.9. NFS y portmap
Nota
La siguiente sección solamente aplica para las implementaciones NFSv2 o ...
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
10000...
282
Uso de NFSv4 sobre TCP
• TCP has better congestion control than UDP. On a very congested network, UDP packets are
the ...
283
Libros sobre el tema
19.11.3. Libros sobre el tema
• Managing NFS and NIS by Hal Stern, Mike Eisler, and Ricardo Labia...
Upcoming SlideShare
Loading in …5
×

19 sistema de archivos de red nfs

1,345 views
1,193 views

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,345
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
36
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

19 sistema de archivos de red nfs

  1. 1. 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 consolidarlos 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
  2. 2. 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 permitenla vinculación a cualquier puerto especificado durante el inicio del sistema. Sin embargo, esto puede ser susceptible a errores si el puerto no está disponibleo 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.
  3. 3. 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:
  4. 4. 258 Configuración de clientes NFS <server>:</remote/export> </local/directory> <nfs-type> <options> 0 0 Replace <server> with the hostname, IP address, or fullyqualified 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 frecuenciase 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/
  5. 5. 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>
  6. 6. 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:
  7. 7. 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 especificaun 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
  8. 8. 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
  9. 9. 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-mapeadaen el mapeo maestro. Una entrada multi-mapeada es así: <mount-point> <maptype1> <mapname1> <options1> -- <maptype2> <mapname2> <options2> -- ...
  10. 10. 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 puedenser especificar al momento del montaje que pueden hacerlo más fácil de usar.
  11. 11. 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 especificala 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íade 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
  12. 12. 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:
  13. 13. 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.
  14. 14. 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 puedeutilizar 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.
  15. 15. 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.
  16. 16. 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 exportaun 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 IDdel 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.
  17. 17. 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 aminorarla 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
  18. 18. 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.
  19. 19. 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.
  20. 20. 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 puedenrealizar 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 coincidandeberí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:
  21. 21. 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.
  22. 22. 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 (ifNFSv2 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.
  23. 23. 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 reactivarNFS 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
  24. 24. 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.
  25. 25. 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.
  26. 26. 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
  27. 27. 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 especificaen /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 especificala 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.
  28. 28. 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.org 1 — 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.
  29. 29. 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.

×