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.allowy/etc/hosts.deny: Permiten o deniegan el aceso a servicios específicos (comoportmap,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 (hardes 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:
- Definir el nombre del dominio NIS (en
/etc/sysconfig/networko con el comandodomainname). - Iniciar el demonio
ypserv. - Configurar los demonios y los mapas a gestionar en
/var/yp/Makefile. - 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
ypbinden ejecución. - La configuración del dominio NIS y el servidor en
/etc/yp.conf. - La especificación de NIS (
nisonisplus) en/etc/nsswitch.confpara 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).