Guía de tecnologías

Guía: instalar y configurar NFS en AlmaLinux 9

8 min read Linux Actualizado 29 Sep 2025
NFS en AlmaLinux 9: instalar y configurar
NFS en AlmaLinux 9: instalar y configurar

Diagrama conceptual de NFS mostrando servidor y clientes

Introducción rápida

NFS (Network File System) es un protocolo que permite a usuarios locales acceder a archivos almacenados en un servidor remoto como si fueran locales. Fue desarrollado por Sun Microsystems y se ha convertido en un estándar ampliamente usado en entornos centralizados, clusters y en infraestructuras donde varias máquinas comparten datos.

Definición breve: NFS es un protocolo de compartición de archivos en red que expone directorios remotos para su montaje por clientes.

Importante: NFS transmite operaciones de archivos entre host y servidor; su seguridad depende de la red, controles de acceso, opciones de exportación y, en entornos modernos, de medidas adicionales como Kerberos o firewalls.


Prerrequisitos

Antes de comenzar, asegúrate de tener lo siguiente:

  • Un servidor AlmaLinux 9; en el ejemplo usaremos el hostname almalinux9-server con IP 192.168.10.15.
  • Un usuario no root con privilegios sudo.
  • Uno o más clientes (puede ser cualquier distribución basada en RHEL/AlmaLinux).
  • Conectividad de red entre servidor y cliente (puedes verificar con ping).

Nota: Si tu entorno usa SELinux en modo Enforcing, revisa la sección de compatibilidad y SELinux más adelante.

Instalación del servidor NFS

En AlmaLinux tanto el servidor como el cliente necesitan el paquete nfs-utils. Está disponible en AppStream y se instala con dnf.

Ejecuta en servidor y cliente:

sudo dnf install nfs-utils

Captura de terminal instalando nfs-utils

A continuación edita /etc/idmapd.conf para definir el dominio NFS (esto facilita la resolución de IDs cuando se usan mapeos entre usuarios).

sudo nano /etc/idmapd.conf

Descomenta y ajusta la línea Domain al nombre FQDN o hostname del servidor:

Domain = almalinux9-server

Guarda y cierra el archivo.

Inicia y habilita el servicio NFS:

sudo systemctl start nfs-server
sudo systemctl enable nfs-server

Verifica su estado:

sudo systemctl status nfs-server

Si todo está correcto verás que el servicio está activo y corriendo.

Verificación del servicio nfs-server

Crear y exportar directorios compartidos

Crea los directorios que quieres compartir:

sudo mkdir -p /mnt/shared /mnt/backup

Ajusta propietario y permisos (ejemplo usando nobody:nobody y 775):

sudo chown -R nobody:nobody /mnt/shared /mnt/backup
sudo chmod 775 /mnt/shared /mnt/backup

Edita el archivo de exportaciones /etc/exports y añade las reglas de acceso que necesites:

sudo nano /etc/exports

Ejemplo de contenido (personaliza las IPs y rutas):

/mnt/backup  192.168.10.21(rw,sync,no_subtree_check)
/home 192.168.10.21(rw,sync,no_root_squash,no_subtree_check)
/mnt/shared 192.168.10.0/24(rw,sync,no_subtree_check)

Significado de las opciones más usadas:

  • rw: lectura y escritura.
  • sync: el servidor escribe en disco antes de confirmar al cliente (más seguro, más lento).
  • no_subtree_check: evita comprobaciones de subárbol para mejorar rendimiento cuando se renombra/crea archivos.
  • no_root_squash: permite que root del cliente actúe como root en el export; usar con precaución.

Reinicia NFS para aplicar cambios:

sudo systemctl restart nfs-server

Lista las exportaciones activas:

sudo exportfs -v

Esto mostrará las rutas exportadas y las opciones de montaje.

Asegurar NFS con firewalld

Abre los servicios/puertos necesarios usando firewall-cmd:

sudo firewall-cmd --add-service={nfs,nfs3,mountd,rpc-bind} --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Verifica que los servicios estén en la zona correcta. Si usas zonas personalizadas, especifica la zona con --zone=public.

Estado de firewalld mostrando servicios NFS añadidos

Nota: En entornos de producción se recomienda restringir el tráfico NFS a subredes o IPs específicas y evaluar el uso de Kerberos para autenticación.

Configurar el cliente NFS

En el cliente instala nfs-utils si aún no está instalado:

sudo dnf install nfs-utils

Comprueba las exportaciones del servidor:

sudo showmount -e 192.168.10.15

Deberías ver las rutas exportadas: /mnt/backup, /mnt/shared, /home.

Listado de exportaciones desde el cliente

Crea puntos de montaje locales y monta las exportaciones:

sudo mkdir -p /data /backup /shared
sudo mount 192.168.10.15:/mnt/backup /backup
sudo mount 192.168.10.15:/mnt/shared /shared
sudo mount 192.168.10.15:/home /data

Verifica montados con:

sudo df -h

Directorios NFS montados

Verificar acceso de escritura desde el cliente

Crea archivos de prueba en los puntos montados:

echo "This file from client" > /backup/test-write1.txt
echo "This file from client" > /shared/test-write2.txt
echo "This file from client" > /data/alice/test-write3.txt

En el servidor verifica que los archivos existen:

cat /mnt/backup/test-write1.txt
cat /mnt/shared/test-write2.txt
cat /home/alice/test-write3.txt

Prueba de escritura desde cliente visible en servidor

Si se muestran los contenidos, la sincronización funciona correctamente.

Auto-montaje con /etc/fstab

Para montar automáticamente en el arranque edita /etc/fstab en el cliente.

Primero desmonta los puntos montados:

sudo umount /data /backup /shared
sudo df -h

Desmontar directorios antes de editar fstab

Edita /etc/fstab:

sudo nano /etc/fstab

Añade líneas como estas (ajusta IPs y rutas):

192.168.10.15:/mnt/backup    /backup   nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
192.168.10.15:/mnt/shared    /shared   nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
192.168.10.15:/home    /data   nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

Guarda y monta todo con:

sudo mount -a
sudo df -h

Si no aparecen errores, el auto-montaje está listo. En caso de sistemas con dependencias de red en el arranque, considera opciones como x-systemd.automount para mejorar el comportamiento durante el boot.

Montaje automático mediante fstab

Seguridad y buenas prácticas

  • Evita usar no_root_squash salvo que sea estrictamente necesario. Permite privilegios root remotos sobre el sistema de archivos.
  • Restringe las exportaciones por IP/subred y revisa las reglas de firewalld.
  • Considera Kerberos para autenticación (sec=sys por defecto es inseguro en redes no confiables).
  • Si usas SELinux en modo Enforcing, aplica contextos adecuados: semanage fcontext -a -t nfs_t "/mnt/shared(/.*)?"; restorecon -Rv /mnt/shared.
  • Monitorea rendimiento y latencia; NFS clásico no es un reemplazo directo de sistemas de archivos distribuidos diseñados para alta concurrencia.

Importante: Cualquier servicio que permita permisos elevados a través de la red debe someterse a revisiones de seguridad y pruebas de penetración.

Cuándo no usar NFS o limitaciones

  • No es una solución de copy-on-write ni para bases de datos que requieren locking a nivel de bloque intenso.
  • En redes con alta latencia o conexiones poco fiables, el rendimiento y la consistencia pueden degradarse.
  • Para sistemas con alta concurrencia y necesidad de escalado horizontal, valora soluciones como Ceph o sistemas de archivos distribuidos específicos.

Alternativas y comparación rápida

  • SMB/CIFS: mejor interoperabilidad con Windows.
  • GlusterFS: sistema de archivos distribuido de escala horizontal fácil de montar en volúmenes replicados.
  • Ceph: almacenamiento distribuido para bloques, objetos y sistemas de archivos con tolerancia a fallos y escala.
  • SFTP/rsync: para transferencia de archivos puntuales o sincronización, no para montaje en tiempo real.

Mental model: piensa en NFS como una carpeta compartida a nivel de sistema de archivos; es simple y eficiente para muchos casos, pero no sustituye a soluciones diseñadas para almacenamiento distribuido a gran escala.

Lista de verificación antes de pasar a producción

  • [ ] Exportaciones documentadas en /etc/exports y revisadas por seguridad.
  • Reglas de firewall limitadas a subredes/IPs autorizadas.
  • Permisos y propietarios comprobados en directorios exportados.
  • Pruebas de lectura/escritura desde clientes representativos.
  • Plan de backup del servidor NFS y del contenido exportado.
  • Monitoreo básico (latencia I/O, uso de disco, número de mounts activos).
  • Política de logs y rotación configurada para rpc.* y mountd.

Runbook de incidencias comunes

Problema: cliente no puede montar la exportación

  • Verifica conectividad: ping 192.168.10.15.
  • En el servidor ejecuta sudo exportfs -v y confirma la exportación.
  • Comprueba firewall: sudo firewall-cmd --list-all en servidor y cliente.
  • Comprueba que nfs-server está activo: sudo systemctl status nfs-server.
  • Intenta montar manualmente y revisa dmesg/syslog en cliente y servidor.

Problema: permisos inesperados al acceder desde cliente

  • Revisa opciones en /etc/exports (p. ej. no_root_squash).
  • Confirma UID/GID y mapeos en /etc/idmapd.conf.
  • Si SELinux está en Enforcing, verifica contextos y mensajes AVC con ausearch o journalctl.

Acción de rollback rápida

  • Desmonta NFS en clientes: sudo umount /path
  • En servidor desactiva exportaciones temporales: comenta en /etc/exports y sudo exportfs -r.
  • Si es una fuga de permisos, remueve no_root_squash y reinicia nfs-server.

Compatibilidad y migración

  • NFSv3 es ampliamente compatible; NFSv4 introduce mejoras (estado, bloqueo, delegaciones, seguridad integrada). Prefiere NFSv4 cuando sea posible.
  • Si migras de una solución basada en SMB a NFS, revisa scripts y automatismos que usen rutas UNC.
  • Comprueba clientes antiguos por soporte de NFSv4 y bloqueo de archivos.

Glosario breve

  • NFS: Network File System.
  • exportfs: herramienta para gestionar exportaciones NFS en el servidor.
  • rpcbind/mountd: servicios que ayudan en el mapeo y montaje de recursos NFS.
  • fstab: archivo que define montajes automáticos en Linux.

Preguntas frecuentes

¿NFS encripta el tráfico entre cliente y servidor?

No. NFS por sí mismo no cifra el tráfico. Para cifrado en tránsito puedes usar una VPN, IPSec o montar NFS sobre túneles seguros. NFSv4.1+ puede integrarse con Kerberos para autenticación, pero el cifrado debe configurarse según la infraestructura.

¿Puedo usar NFS para bases de datos?

Generalmente no es recomendado para bases de datos que requieren consistencia y locking estrictos a nivel de bloque. Si lo haces, prueba cuidadosamente y considera soluciones diseñadas para I/O intensivo.

¿Qué diferencia hay entre NFSv3 y NFSv4?

NFSv4 mejora la seguridad, el manejo de estado y simplifica el firewall al usar fewer ports. También introduce delegaciones y mejor manejo de locking.

¿Cómo limitar quién puede montar una exportación?

En /etc/exports especifica direcciones IP o rangos (por ejemplo 192.168.10.0/24) y usa opciones como ro/rw. Complementa con reglas de firewall.


Conclusión

Has aprendido a instalar y configurar un servidor NFS y clientes en AlmaLinux 9: instalación de nfs-utils, edición de /etc/idmapd.conf, creación y exportación de directorios, apertura de puertos con firewalld, montaje manual y automático con /etc/fstab, pruebas de lectura/escritura, consideraciones de seguridad y un runbook básico para incidencias.

Siguientes pasos recomendados:

  • Revisar la integración con Kerberos si necesitas autenticación fuerte.
  • Implementar backups regulares del servidor NFS.
  • Monitorizar rendimiento y ajustar opciones de export según cargas.

Notas finales: NFS sigue siendo una opción válida y eficiente para compartir archivos en LANs y entornos controlados; selecciona alternativas si requieres alta tolerancia a fallos, replicación o cifrado integrado.

Autor
Edición

Materiales similares

Ver publicaciones que te gustaron en Instagram
Redes sociales

Ver publicaciones que te gustaron en Instagram

Escribir por voz en WhatsApp con Gboard
Guías

Escribir por voz en WhatsApp con Gboard

Buscar trabajos en común en IMDb — guía rápida
Guías

Buscar trabajos en común en IMDb — guía rápida

Cita en el escritorio con Rainmeter
Tutorial

Cita en el escritorio con Rainmeter

NFS en AlmaLinux 9: instalar y configurar
Linux

NFS en AlmaLinux 9: instalar y configurar

Crear RAID con mdadm y migrar datos
Sistemas

Crear RAID con mdadm y migrar datos