Herramientas de usuario

Herramientas del sitio


informatica:certificaciones:lpic:lpic-2:209_file_sharing:209.2_nfs_server_configuration

209.2 NFS Server Configuration

Pertenece a Topic 209: File Sharing

  • Weight: 3
  • Description: Candidates should be able to export filesystems using NFS. This objective includes access restrictions, mounting an NFS filesystem on a client and securing NFS.
  • Key Knowledge Areas:
    • NFS version 3 configuration files
    • NFS tools and utilities
    • Access restrictions to certain hosts and/or subnets
    • Mount options on server and client
    • TCP Wrappers
    • Awareness of NFSv4
  • Terms and Utilities:
    • /etc/exports
    • exportfs
    • showmount
    • nfsstat
    • /proc/mounts
    • /etc/fstab
    • rpcinfo
    • mountd
    • portmapper

NFS

NFS es el protocolo tradicional de compartición de archivos en sistemas Unix.

El script de administración del servicio NFS provoca la ejecución de tres daemons estándar:

  • portmap: gestiona las peticiones RPC (Remote Procedure Call), peticiones de compartición.
  • nfsd: espacio de usuario del servicio NFS. Inicia los threads NFS para las conexiones cliente.
  • mountd: gestiona las peticiones de montaje de los clientes.

Instalación de un servidor NFS

Antes de hablar de la configuración de un servidor NFS, debemos instalarlo. Dicho proceso podemos realizarlo utilizando la paquetería existente, dependiendo de la distribución:

Debian:

apt-get install nfs-kernel-server

RedHat:

yum install nfs-utils

El servicio es nfs para Red Hat y nfs-kernel-server para Debian.

Herramientas

rpcinfo

Comando que permite efectuar una petición RPC a un servidor y mostrar los daemons gestionados.

rpcinfo localhost

Al ejecutarlo, mostraría todos los demonios relacionados con NFS

nfsstat

Comando que sirve para mostar las estadísticas relacionadas con la actividad en un servidor NFS.

Por ejemplo, si queremos mostrar lo que está montado actualmente por clientes NFS:

nfsstat -m
/access from 10.0.2.15:/share
 Flags: rw,vers=3,rsize=131072,wsize=131072,hard,proto=tcp,timeo=600,
retrans=2,sec=sys,addr=10.0.2.15

exportfs

Comando que permite realizar un diagnóstico de las comparticiones activas en el sistema.

  • -v: permite visualizar las comparticiones activas con la actividad NFS
  • -a: fuerza la lectura del /etc/exports
  • -r: reexporta todos los directorios definidos en /etc/exports
  • -u: unexport uno o más directorios.

Además permite declarar comparticiones puntuales.

exportfs <direccion_cliente>:<ruta_comparticion>

Definición de comparticiones

Para declarar una compartición permanente activa para el servicio NFS, se utiliza el fichero /etc/exports.

Formato del archivo /etc/exports:

directorio1 direccion_cliente1(opciones) direccion_cliente2(opciones) ... direccion_clienteN(opciones)
directorio1 direccion_cliente1(opciones)

Opciones NFS comunes:

  • ro: acceso en modo sólo lectura
  • rw: acceso en modo lectura/escritura (opción por defecto).
  • sync: acceso en modo escritura síncrona. Los datos se escriben inmediatamente.
  • async: acceso en modo escritura asíncrona. Utilización de una caché de escritura.
  • root_squash: comportamiento por defecto. La cuenta root pierde sus privilegios en la compartición (el servidor NFS modifica el UID de ese usuario para asociarlo a otra como nfsanonymous, nobody…).
  • no_root_squash: la cuenta root conserva sus privilegios en la compartición (se asocia la cuenta y grupo del usuario root del cliente con la cuenta root del servidor NFS).
  • nolock: no se bloquean los archivos a los que se accede.

Las opciones deben de ir pegadas al host o dirección del cliente que se conectará por NFS, es decir, no debe haber un espacio entre ambas: host1(opciones). Esto estaría mal: host1 (opciones).

Ejemplo de /etc/exports:

/usr/share/doc      192.168.1.10(rw) 192.168.1.11(ro)
/mnt/pelis          <world>

En el ejemplo anterior, el directorio /usr/share/doc se compartiría con el cliente 192.168.1.10 en modo lectura y escritura (rw) y con el cliente 192.168.1.11, pero en modo solo lectura (ro). El directorio /mnt/pelis se compartiría con todos los clientes NFS.

exportfs

El comando exportfs permite ver lo que se está compartiendo actualmente:

exportfs

También se puede utilizar para compartir de forma temporal un recurso. Ejemplo de uso del comando exportfs con la opción de sólo lectura:

root@servidor# exportfs -o ro *:/data

El asterisco indica que cualquiera se podría conectar al recurso data. También se admiten rangos de IP o una subred completa (192.168.1.0/24).

Para hacer lo mismo, pero en el archivo /etc/exports:

/data    *(ro)

Ejemplo de visualización de las comparticiones activas con sus opciones

root@servidor# exportfs -v
/perso    192.168.0.20(rw,wdelay,root_squash,no_subtree_check)
/data     <world>(ro,wdelay,root_squash,no_subtree_check)

Si hacemos cambios en el fichero /etc/exports, los nuevos recursos compartidos estarán disponibles tras reiniciar el servicio, pero si queremos que habilitar los cambios inmediatamente, podemos usar también exportfs:

exportfs -a

Clientes NFS

showmount

Comando que permite mostrar la información de un servidor NFS remoto.

  • showmount: Muestra los nombres de los clientes con montajes activos.
  • showmount --exports: Muestra la lista de comparticiones remotas.
  • showmount --directories: Muestra los directorios montados por clientes remotos.
  • showmount --all: Muestra ambos, clientes y directorios.
showmount --exports 192.168.40.1

mount

Los clientes acceden a una compartición NFS mediante una operación de montaje. Usan la compartición montada como si de una estructura de directorios local se tratase.

Montaje de una compartición NFS:

mount -t nfs <opciones> <direccion_servidor>:/<ruta_comparticion> <punto_de_montaje>

Necesitamos instalar el soporte para montar recursos NFS. En Debian está disponible mediante el paquete nfs-common

Ejemplo:

mount -t nfs -o rw,nolock 192.168.31.43:/datos    /data

Entrada /etc/fstab:

<direccion_servidor>:/<ruta_comparticion> <punto_de_montaje>    nfs    <opciones>    0 0

Ejemplo:

192.168.31.43:/datos    /data    nfs    rw,nolock    0 0

/proc/mounts

Otra forma de verificar si se ha montado correctamente un recurso NFS es ver el fichero /proc/mounts:

# tail -1 /proc/mounts
192.168.1.22:/share /access nfs rw,relatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,
timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.22,mountvers=3, 
mountport=772,mountproto=udp,local_lock=none,addr=192.168.1.22 0 0
informatica/certificaciones/lpic/lpic-2/209_file_sharing/209.2_nfs_server_configuration.txt · Última modificación: por tempwin