Acrónimo de Network File Share, NFS es un protocolo cliente/servidor multiplataforma que permite que las máquinas de los clientes accedan a los archivos compartidos por el servidor NFS a través de una red. Los sistemas cliente pueden montar localmente los sistemas de archivos desde el servidor NFS y acceder a archivos y directorios como si estuvieran montados localmente. En esta guía, lo guiaremos a través de la instalación y configuración del servidor NFS en CentOS 8 / RHEL 8 .
Configuración de servidor/cliente NFS
Antes de comenzar, usaremos la configuración a continuación para simular cómo funciona el protocolo NFS en una configuración cliente/servidor.
- IP de la máquina del servidor:dirección: 192.168.2.102 CentOS 8
- IP del equipo cliente:dirección: 192.168.2.103 CentOS 8
Con nuestra configuración a la mano, comencemos la instalación de NFS en la máquina del servidor.
Paso 1) Instalar y configurar NFS en el servidor CentOS 8/RHEL 8
Para comenzar, instalaremos el paquete del servidor NFS llamado nfs-utils que actúa como el demonio NFS. Para instalar el paquete nfs-utils, inicie la terminal y ejecute el comando:
$ sudo dnf install nfs-utils -y
En el siguiente ejemplo, nfs-utils ya está instalado.
Una vez que se complete la instalación, inicie y habilite el servicio del servidor nfs para que se reinicie automáticamente. Ejecute los siguientes comandos,
$ sudo systemctl start nfs-server.service $ sudo systemctl enable nfs-server.service
Para confirmar que el servicio NFS se está ejecutando, ejecute:
$ sudo systemctl status nfs-server.service
Puede verificar la versión del protocolo nfs que está ejecutando ejecutando el comando:
$ rpcinfo -p | grep nfs
La versión se indica en la segunda columna del resultado que se presenta a continuación.
Para una configuración adicional del servidor NFS, puede encontrar los archivos de configuración en /etc/nfs.conf que es el archivo de configuración del demonio NFS y el /etc/nfsmount.conf que es el archivo de configuración para el montaje NFS.
Paso 2) Creación y exportación de recursos compartidos NFS
En este paso, vamos a crear un sistema de archivos que se compartirá desde el servidor a los sistemas cliente. En esta guía, crearemos un directorio en /mnt/nfs_share/docs como se muestra a continuación
$ sudo mkdir -p /mnt/nfs_shares/docs
Para evitar restricciones de archivos en el directorio compartido de NFS, se recomienda configurar la propiedad del directorio como se muestra. Esto permite la creación de archivos desde los sistemas cliente sin encontrar ningún problema de permisos.
$ sudo chown -R nobody: /mnt/nfs_shares/docs
Además, puede decidir ajustar los permisos del directorio según sus preferencias. Por ejemplo, en esta guía, asignaremos todos los permisos (lectura, escritura y ejecución) a la carpeta compartida de NFS
$ sudo chmod -R 777 /mnt/nfs_shares/docs
Para que los cambios surtan efecto, reinicie el demonio NFS:
$ sudo systemctl restart nfs-utils.service
Para exportar el recurso compartido de NFS para que los sistemas cliente puedan acceder a él, debemos editar el /etc/exports expediente. Puede permitir que varios clientes accedan al recurso compartido especificando una subred como se muestra
/mnt/nfs_shares/docs 192.168.2.0/24(rw,sync,no_all_squash,root_squash
Además, puede especificar cada cliente en una línea separada:
/mnt/nfs_shares/docs IP-cliente(rw,sync,no_all_squash,root_squash)
/mnt/nfs_shares/docs IP-cliente(rw,sync,no_all_squash,root_squash)
Usando nuestra configuración, otorgaremos acceso a nuestra máquina cliente con una IP 192.168.2.103. Agregue la siguiente línea en el archivo '/etc/exports ':
$ sudo vi /etc/exports /mnt/nfs_shares/docs 192.168.2.103(rw,sync,no_all_squash,root_squash)
Guardar y salir del archivo. Use el comando cat para confirmar la entrada como se muestra
[[email protected]] cat /etc/exports /mnt/nfs_shares/docs 192.168.2.103(rw,sync,no_all_squash,root_squash) [[email protected]]
Veamos el significado de los parámetros utilizados:
- rw – Esto significa lectura/escritura. Otorga permisos de lectura y escritura al recurso compartido NFS.
- sincronizar – El parámetro requiere la escritura de los cambios en el disco primero antes de que se pueda llevar a cabo cualquier otra operación.
- no_all_squash – Esto asignará todos los UID y GID de las solicitudes del cliente a UIDS y GID idénticos que residen en el servidor NFS.
- raíz_calabaza – El atributo asigna solicitudes del usuario raíz en el lado del cliente a un UID/GID anónimo.
Para exportar la carpeta creada anteriormente, use el comando exportfs como se muestra:
$ sudo exportfs -arv
El -a opción implica que se exportarán todos los directorios, -r significa volver a exportar todos los directorios y finalmente -v la bandera muestra una salida detallada.
Solo para estar seguro de la lista de exportación, puede mostrar la lista de exportación usando el comando:
$ sudo exportfs -s
¡Perfecto! Nuestra lista de exportación existe. Hasta aquí todo bien. La única configuración que queda en el servidor NFS es permitir servicios NFS en el cortafuegos.
Paso 3) Configuración de las reglas de firewall para el servidor NFS
El último paso para configurar el servidor es permitir los servicios NFS a través del firewall en la máquina del servidor CentOS 8. Estos servicios son nfs, rpc-bind y montado . Por lo tanto, ejecute los comandos a continuación.
$ sudo firewall-cmd --permanent --add-service=nfs $ sudo firewall-cmd --permanent --add-service=rpc-bind $ sudo firewall-cmd --permanent --add-service=mountd
A continuación, vuelva a cargar el cortafuegos para que los cambios entren en vigor
$ sudo firewall-cmd --reload
Ahora vayamos al sistema cliente y configurémoslo para acceder a los recursos compartidos de NFS.
Configuración del sistema cliente NFS
Para configurar el sistema cliente para acceder a los recursos compartidos de archivos NFS, siga el procedimiento a continuación
Paso 1) Instale los paquetes NFS necesarios
En el sistema cliente CentOS 8, instale los paquetes necesarios para acceder al recurso compartido NFS que reside en el servidor NFS
$ sudo dnf install nfs-utils nfs4-acl-tools -y
Para el sistema Debian o Ubuntu:
$ sudo apt install nfs-common nfs4-acl-tools -y
Para mostrar los recursos compartidos NFS montados en el servidor, use el showmount comando:
$ showmount -e 192.168.2.102
Paso 2) Montaje del recurso compartido NFS remoto ubicado en el servidor
A continuación, debemos montar el directorio compartido NFS remoto que se encuentra en el sistema cliente local. Pero primero, creemos un directorio para montar el recurso compartido NFS.
$ sudo mkdir p /mnt/client_share
Para montar el recurso compartido NFS, ejecute el siguiente comando. Recuerde que 192.168.2.102 es la dirección IP del servidor NFS.
$ sudo mount -t nfs 192.168.2.102:/mnt/nfs_shares/docs /mnt/client_share
Puede verificar que el recurso compartido NFS remoto se haya montado ejecutando:
$ sudo mount | grep -i nfs
Para que el recurso compartido de montaje sea persistente al reiniciar, debe editar el archivo /etc/fstab archivo y agregue la entrada a continuación.
192.168.2.102:/mnt/nfs_shares/docs /mnt/client_share nfs defaults 0 0
Guarde y cierre el archivo.
Prueba de configuración de cliente y servidor NFS
En este punto, hemos terminado con todas las configuraciones. Sin embargo, necesitamos probar nuestra configuración y asegurarnos de que todo funcione. Entonces, primero, vamos a crear un archivo de prueba en el directorio compartido del servidor NFS y verificar si está presente en el directorio montado NFS del cliente.
$ sudo touch /mnt/nfs_shares/docs/server_nfs_file.txt
Ahora, diríjase al sistema del cliente y verifique si el archivo existe en el lado del cliente.
$ ls -l /mnt/client_share/
¡Estupendo! Desde la salida, podemos ver claramente que el archivo existe. Hagamos ahora lo contrario. Vamos a crear un archivo en el sistema cliente NFS y verificar si se puede acceder desde el servidor NFS.
En el cliente, cree el archivo como se muestra:
$ sudo touch /mnt/client_share/client_nfs_file.txt
Ahora, regrese al servidor y verifique si el archivo está presente en el directorio compartido de NFS
$ ls -l /mnt/nfs_shares/docs
¡Impresionante! Podemos ver y acceder al archivo.
Como puede ver, puede crear fácilmente archivos tanto en el servidor NFS como en el cliente y compartirlos sin problemas entre los dos sistemas, así como con otros sistemas cliente que se hayan configurado para acceder a los recursos compartidos. Y esto nos lleva al final de nuestro tutorial de hoy. En esta guía, le mostramos cómo instalar y configurar el servidor NFS y la configuración del sistema cliente en CentOS 8 y RHEL 8.