Administración de Redes en Linux: NFS para Compartir Archivos y NIS para Servicios de Información

En entornos Linux, el manejo eficiente de recursos compartidos y la gestión centralizada de información son cruciales. Dos herramientas fundamentales para lograr estos objetivos son el Sistema de Archivos de Red (NFS) y el Servicio de Información de Red (NIS).

Sistema de Archivos de Red (NFS)

NFS permite montar sistemas de archivos remotos como si fueran locales, facilitando el acceso directo a archivos y dispositivos en otras máquinas a través de la red. Esto elimina la necesidad de duplicar datos en cada sistema.

NFSv4

La versión 4 de NFS introduce mejoras significativas en seguridad, fiabilidad y rendimiento. Al montar un sistema de archivos NFSv4, se especifica el tipo nfs4 y se monta el sistema de archivos completo en un punto de montaje. Para re-montar directorios específicos, se puede usar la opción bind.

Ejemplo de configuración en /etc/exports para montar un sistema de archivos completo:


/export/data *(fsid=0,rw,sync)

Comando de montaje para NFSv4:


# mount -t nfs4 server.example.com:/ /mnt/remote_data

Demonios de NFS

NFS opera sobre TCP/IP y se apoya en varios demonios para su funcionamiento:

  • rpc.mountd: Gestiona las operaciones de montaje y desmontaje de sistemas de archivos remotos.
  • rpc.nfsd: Procesa las solicitudes NFS de los clientes y las traduce a operaciones locales.
  • rpc.portmapper: Mapea las solicitudes de los clientes a los demonios NFS correspondientes.
  • rpc.rquotad: Proporciona gestión de cuotas de disco para usuarios.
  • rpc.statd: Ofrece servicios de bloqueo para la recuperación tras reinicios de hosts remotos.
  • rpc.lockd: Maneja la recuperación de bloqueos después de fallos del sistema.

Nota de seguridad: Se recomienda usar NFS solo en redes locales seguras. Su uso a través de Internet puede exponer el sistema a riesgos.

Gestión de Servicios NFS

Los servicios NFS se inician y detienen mediante scripts de servicio. Para la persistencia en el arranque, se pueden usar herramientas como chkconfig o systemctl.

Para verificar si NFS está en ejecución, se puede usar:


rpcinfo -p

Se deben observar entradas para mountd y nfs.

Archivo de Configuración: /etc/exports

Este archivo define qué sistemas de archivos se exportan y qué hosts tienen permiso para acceder a ellos, junto con las opciones de acceso.

Formato:


/ruta/del/directorio  host(opciones) [otro_host(opciones)]

Opciones comunes:

  • ro: Acceso de solo lectura.
  • rw: Acceso de lectura y escritura.
  • sync: Las escrituras se completan antes de responder.
  • async: Las escrituras se completan cuando el servidor está listo.
  • root_squash: Mapea las solicitudes del usuario root del cliente a un usuario anónimo (comportamiento predeterminado).
  • no_root_squash: Desactiva el "squash" de root, permitiendo al root del cliente tener privilegios de root en el servidor.
  • all_squash: Mapea todos los usuarios del cliente a un usuario anónimo.

Ejemplos de especificación de hosts:


/data         *(rw,sync)                  # Todos los hosts
/shared       *.example.com(ro,sync)      # Todos los hosts en el dominio example.com
/files        192.168.1.0/24(rw,sync)     # Hosts en la subred 192.168.1.x

Aplicación de Cambios en /etc/exports

Para que los cambios en /etc/exports surtan efecto sin reiniciar el servidor NFS, se utiliza el comando exportfs:


exportfs -ra -v

-r: Re-exporta todos los sistemas de archivos listados.

-a: Exporta o des-exporta todos los sistemas de archivos.

-v: Modo detallado.

Exportación Manual de Sistemas de Archivos

Se puede exportar un sistema de archivos manualmente sin modificar /etc/exports:


exportfs -o rw,sync client.example.com:/ruta/exportar

Para des-exportar:


exportfs -u client.example.com:/ruta/exportar

NFSv4 ACLs

NFSv4 soporta Listas de Control de Acceso (ACLs) para un control de permisos más granular. Se utilizan herramientas como nfs4_getfacl y nfs4_setfacl.

Ejemplo de ACL:


A::OWNER@:rwxdnNcy     # Permisos para el propietario
A::GROUP@:rxdncy        # Permisos para el grupo
A::EVERYONE@:rxdncy     # Permisos para todos

Control de Acceso al Servidor NFS

Se puede restringir el acceso al servidor NFS utilizando:

  • /etc/hosts.allow y /etc/hosts.deny: Permiten o deniegan el aceso a servicios específicos (como portmap, mountd, nfsd) desde hosts o redes específicas.
  • Reglas de Netfilter (iptables): Bloquean o permiten el tráfico a los puertos de NFS (111 para portmapper, 2049 para nfsd).

Montaje de Sistemas de Archivos NFS (Cliente NFS)

/etc/fstab

Para montar sistemas de archivos NFS automáticamente al inicio, se añaden entradas en /etc/fstab:


servidor.dominio:/ruta/remota  /punto/montaje/local  nfs  opciones  0  0

Opciones comunes de montaje NFS:

  • rsize=n, wsize=n: Tamaño de los bloques de lectura/escritura (ej. 8192).
  • hard, soft: Comportamiento en caso de indisponibilidad del servidor (hard es el predeterminado).
  • intr: Permite interrumpir operaciones bloqueadas.
  • timeo=n: Tiempo de espera antes de retransmitir.
  • retrans=n: Número de retransmisiones antes de considerar un fallo.
  • bg: Intenta el montaje en segundo plano si falla inicialmente.
  • tcp: Usa el protocolo TCP en lugar de UDP (predeterminado).

Ejemplo de entrada en /etc/fstab:


server.example.com:/data  /mnt/nfs_data  nfs  defaults,soft,intr,rsize=8192,wsize=8192  0  0

Montaje Manual con mount

Los sistemas de archivos NFS también se pueden montar manualmente:


# mount -t nfs -o soft,intr,rsize=8192,wsize=8192 server.example.com:/data /mnt/nfs_data

Para desmontar:


umount /mnt/nfs_data

Montaje bajo demanda con autofs

autofs monta sistemas de archivos NFS solo cuando se accede a ellos, reduciendo la carga de trabajo al inicio. Utiliza un archivo maestro (/etc/auto.master) y archivos de mapa asociados.

Ejemplo en /etc/auto.master:


/media/auto  /etc/auto.media  --timeout=60

Ejemplo en /etc/auto.media:


share  -rw,soft,intr  server.example.com:/shared_folder

Esto haría que server.example.com:/shared_folder se monte en /media/auto/share al acceder a ese directorio.

Servicio de Información de Red (NIS)

NIS centraliza la gestión de archivos de configuración de red (como usuarios, contraseñas, grupos) en un servidor NIS. Los clientes NIS consultan este servidor para obtener la información.

NIS vs. NIS+

NIS+ es una versión más avanzada que ofrece encriptación y autenticación, pero es más compleja de administrar. LDAP es una alternativa moderna y popular para la gestión de identidades.

Servidor NIS

Un dominio NIS puede tener un servidor maestro y varios servidores esclavos (réplicas) para redundancia.

Pasos básicos para configurar un servidor NIS:

  1. Definir el nombre del dominio NIS (en /etc/sysconfig/network o con el comando domainname).
  2. Iniciar el demonio ypserv.
  3. Configurar los demonios y los mapas a gestionar en /var/yp/Makefile.
  4. Construir la base de datos NIS con ypinit -m.

Archivo /var/yp/Makefile

Este archivo especifica qué mapas NIS se construirán y cómo se gestionarán las opciones del servidor (ej., NOPUSH, MINUID, MERGE_PASSWD).

Construcción de la Base de Datos NIS

Tras modificar /var/yp/Makefile o los archivos de origen (ej., /etc/passwd), se ejecuta:


cd /var/yp
make

Control de Acceso NIS

  • /var/yp/securenets: Define qué hosts o redes tienen permitido acceder al servidor NIS.
  • /etc/ypserv.conf: Configura las opciones del servidor NIS y el control de acceso.

Grupos de Red (Netgroups)

NIS permite definir grupos de red (/etc/netgroup) que agrupan hosts, usuarios y dominios. Son útiles para controlar el acceso a recursos compartidos como sistemas de archivos NFS.

Ejemplo de entrada en /etc/netgroup:


developers (host1,,domain) (host2,user2,domain)

Estos grupos se pueden referenciar en otros archivos de configuración añadiendo un '@' delante del nombre del grupo (ej. @developers).

Cliente NIS

Los clientes NIS requieren:

  • El demonio ypbind en ejecución.
  • La configuración del dominio NIS y el servidor en /etc/yp.conf.
  • La especificación de NIS (nis o nisplus) en /etc/nsswitch.conf para los servicios de nombre deseados (passwd, group, hosts, etc.).

Ejemplo de /etc/yp.conf:


domain mydomain.nis
ypserver master.mydomain.nis

Ejemplo de /etc/nsswitch.conf:


passwd: files nis
group: files nis
hosts: files nis dns

Herramientas cliente NIS incluyen ypcat (listar mapas), ypwhich (mostrar servidor), ypmatch (buscar entradas), y yppasswd (cambiar contraseña NIS).

Etiquetas: nfs NIS linux compartir archivos administración de redes

Publicado el 7-12 05:02