Cómo instalar el servidor y el cliente NFS en AlmaLinux 9
¿Qué es NFS? NFS, o Sistema de Archivos en Red, es un protocolo que permite a los usuarios locales acceder a datos remotos de varios discos y directorios como si se tratara de un acceso local. El protocolo NFS fue desarrollado originalmente por Sun Microsystem y se ha convertido en el protocolo estándar para compartir archivos a través de una red. Se utiliza mucho en un entorno centralizado en el que los usuarios u ordenadores cliente podrán almacenar y acceder a datos en/hacia un servidor remoto centralizado.
NFS puede instalarse y configurarse fácilmente en la mayoría de los sistemas Linux, tanto para el Servidor NFS como para el Cliente. Casi todas las distribuciones de Linux proporcionan paquetes NFS por defecto en su repositorio. El nombre del paquete es diferente, pero la configuración sigue siendo la misma en casi todas las distribuciones de Linux.
Este tutorial te mostrará cómo instalar el Servidor NFS en AlmaLinux 9. Además, también configurarás una máquina cliente para montar directorios compartidos desde el Servidor NFS y configurar el montaje automático en el arranque mediante el archivo /etc/fstab.
Requisitos previos
Antes de empezar, debes asegurarte de que tienes lo siguiente:
- Un servidor AlmaLinux 9 – En esta demostración, utilizaremos un servidor con el nombre de host almalinux9-server y la dirección IP 192.168.10.15.
- Un usuario no root con privilegios de root sudo/administrador.
- Una o más máquinas cliente – Puede ser cualquier distribución basada en RHEL.
Instalación del servidor NFS
Para configurar un NFS (Almacenamiento de Archivos en Red) en Almalinux, sólo tienes que instalar nfs-utils tanto en el servidor NFS como en el cliente. Está disponible en el repositorio AppStream, puedes instalarlo fácilmente mediante DNF.
Ejecuta el siguiente comando para instalar el paquete nfs-utils. Introduce y cuando te lo pida, y pulsa INTRO.
sudo dnf install nfs-utils
Ahora, abre el archivo /etc/idmapd.conf utilizando el comando editor nano que aparece a continuación.
sudo nano /etc/idmapd.conf
Descomenta el parámetro Dominio y cambia el valor por el FQDN (nombre de dominio completo) de tu servidor o utiliza el nombre de host.
Domain = almalinux9-server
Guarda el archivo y sal de él cuando hayas terminado.
A continuación, ejecuta el siguiente comando para iniciar y habilitar el servicio NFS.
sudo systemctl start nfs-server sudo systemctl enable nfs-server
A continuación, verifica el servicio NFS utilizando el siguiente comando para asegurarte de que el NFS se está ejecutando.
sudo systemctl status nfs-server
Si la instalación se ha realizado correctamente, deberías recibir una salida como ésta:
Crear directorios compartidos
Ahora que ya tienes el servidor NFS en funcionamiento, el siguiente paso es configurar el directorio compartido para los clientes. Así que vamos a empezar.
En primer lugar, crea dos directorios /mnt/compartido y /mnt/copia de seguridad utilizando el siguiente comando.
sudo mkdir -p /mnt/shared /mnt/backup
Cambia la propiedad de ambos directorios a usuario y grupo nadie, y luego cambia el permiso por defecto a 775.
sudo chown -R nobody:nobody /mnt/shared /mnt/backup sudo chmod 775 /mnt/shared /mnt/backup
A continuación, crea un nuevo archivo de configuración aa utilizando el editor nano.
sudo nano /etc/exports
Inserta las siguientes líneas en el archivo. En este ejemplo, configuraremos tres directorios compartidos /mnt/backup y /home para el cliente 192.168.10.21, y /mnt/shared para toda la red en 192.168.10.0/24.
/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)
Guarda y cierra el archivo cuando hayas terminado.
Aquí tienes algunos parámetros NFS importantes que debes conocer:
- rw: Habilitar la lectura y escritura para el directorio compartido de destino.
- sync: Esta opción garantizará que los datos se escriban primero en el disco antes de que el cliente haga otra petición. De este modo, tus datos estarán seguros, pero a menor velocidad en las operaciones de lectura/escritura.
- no_subtree_check: Desactiva la comprobación de subárboles para mejorar la velocidad y el rendimiento del servidor NFS. La comprobación del subárbol es un proceso para garantizar que no habrá conflictos cuando los usuarios cambien el nombre del archivo.
- no_root_squash: Esto desactivará el squashing, que permite a los clientes NFS tener privilegios de root dentro del directorio compartido. En este ejemplo, desactivaremos el squashing sólo para el directorio compartido /home.
Ahora, ejecuta el siguiente comando para reiniciar el servidor NFS y aplicar los cambios.
sudo systemctl restart nfs-server
Una vez reiniciado el NFS, ejecuta el siguiente comando para comprobar la lista de directorios compartidos en el servidor NFS.
sudo exportfs -v
Si las operaciones se han realizado correctamente, deberías ver la lista de directorios compartidos NFS en tu terminal de la siguiente forma:
Proteger el servidor NFS con Firewalld
Una vez configurado el directorio compartido NFS, el siguiente paso es configurar firewalld y abrir algunos puertos/servicios para los clientes. Antes de empezar, asegúrate de que tienes firewalld en funcionamiento.
Ahora, ejecuta el siguiente comando para añadir algunos servicios NFS al firewalld.
sudo firewall-cmd --add-service={nfs,nfs3,mountd,rpc-bind} --permanent
A continuación, recarga el firewalld para aplicar los cambios.
sudo firewall-cmd --reload
Después, verifica tus reglas firewalld utilizando el comando siguiente.
sudo firewall-cmd --list-all
El resultado esperado debería ser el siguiente:
Configurar el cliente NFS
Esta sección cubrirá cómo configurar un cliente NFS utilizando también el servidor AlmaLinux, que se puede implementar en la mayoría de las distribuciones basadas en RHEL.
Accede a tu cliente y ejecuta el siguiente comando para instalar el paquete nfs-utils. Cuando se te solicite, introduce y para confirmar y pulsa INTRO.
sudo dnf install nfs-utils
Ahora, ejecuta el siguiente comando para comprobar los directorios compartidos disponibles en el servidor NFS 192.168.10.15.
sudo showmount -e 192.168.10.15
Deberías ver tres directorios compartidos diferentes disponibles en tu servidor NFS, /mnt/backup, /mnt/shared y /home.
A continuación, introduce el siguiente comando para crear los nuevos directorios/data, /backup y /shared que se utilizarán para montar los directorios compartidos NFS.
sudo mkdir -p /data /backup /shared
Ejecuta el siguiente comando para montar los directorios compartidos NFS. En este ejemplo, montaremos el directorio compartido /mnt/backup en /backup, /mnt/shared en /shared y /home en /data.
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
Por último, verifica la lista de sistemas de archivos montados en la máquina cliente utilizando el siguiente comando.
sudo df -h
Si el proceso se ha realizado correctamente, verás los directorios compartidos NFS montados en la máquina cliente de la siguiente forma:
Verificar el acceso de escritura desde el cliente
Una vez montados los directorios compartidos NFS en la máquina cliente, debes garantizar el acceso de lectura y escritura a los directorios compartidos.
En la máquina cliente, ejecuta el siguiente comando para crear nuevos archivos /backup/test-write1.txt, /shared/test-write2.txt y /home/alice/test-write3.txt.
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
Si la instalación del servidor NFS y del cliente se realiza correctamente, los nuevos archivos que has creado en la máquina cliente estarán disponibles en el servidor NFS.
Ahora vuelve al servidor NFS y ejecuta el siguiente comando para asegurarte de que los nuevos archivos están disponibles en el servidor NFS.
cat /mnt/backup/test-write1.txt cat /mnt/shared/test-write2.txt cat /home/alice/test-write3.txt
En el siguiente resultado podemos ver que el archivo está disponible en el servidor NFS.
Configurar el montaje automático del directorio compartido NFS mediante /etc/fstab
Tras verificar el acceso de lectura y escritura en NFS, es posible que también tengas que configurar el montaje automático del servidor NFS en la máquina cliente. Así, cada vez que se reinicie la máquina cliente, el directorio compartido NFS se montará automáticamente durante el arranque, y esto puede hacerse mediante el archivo /etc/fstab.
En primer lugar, desmonta y verifica los directorios compartidos NFS en la máquina cliente utilizando el siguiente comando.
sudo umount /data /backup /shared sudo df -h
Abre el archivo /etc/fstab utilizando el siguiente comando del editor nano.
sudo nano /etc/fstab
Añade las siguientes opciones y asegúrate de personalizar los detalles de los directorios compartidos y los directorios de montaje de destino.
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 el archivo y sal del editor cuando hayas terminado.
A continuación, ejecuta el siguiente comando para verificar la configuración de /etc/fstab. Si tienes un archivo fstab adecuado, los directorios compartidos NFS se montarán después de ejecutar el comando.
sudo mount -a
Compruébalo utilizando el siguiente comando para obtener la lista de sistemas de archivos montados de tu cliente.
sudo df -h
Deberías ver que los directorios compartidos NFS están montados en el cliente mediante elcomando «mount -a » basándose en el archivo /etc/fstab.
La máquina cliente montará automáticamente los directorios compartidos NFS al arrancar el sistema.
Conclusión
¡Enhorabuena! Has instalado con éxito el Servidor y Cliente NFS en el servidor AlmaLinux 9. También has aprendido el uso básico de algunos comandos como mount para montar sistemas de archivos, exportfs para gestionar directorios compartidos NFS y df para mostrar los sistemas de archivos montados. Además, también has configurado el montaje automático de directorios compartidos NFS en la máquina cliente mediante el archivo /etc/fstab.
Para el siguiente paso, echa un vistazo a la seguridad adicional para el servidor NFS.