GNU/Linux >> Tutoriales Linux >  >> Linux

Aprendizaje de NFS a través de la configuración del servidor y el cliente

He usado NFS en una capacidad limitada durante años. Estaba familiarizado con el concepto y había estado accediendo a los recursos compartidos de NFS, sin embargo, nunca había configurado uno. Lo más probable es que no estoy solo en esto. Pensé que aprendería a configurarlo todo e incluso traerlos conmigo. Comencemos con la guía para principiantes para aprender NFS.

¿Qué es NFS?

Network File System (NFS), es un sistema de archivos distribuido que permite que varios sistemas remotos accedan a un recurso compartido de archivos. Todos sabemos que los archivos deben almacenarse en un servidor central para mayor seguridad y facilidad de copia de seguridad. NFS nos brinda un servicio para compartir archivos que se administra fácilmente y controla el acceso de los clientes a los recursos.

¿Qué se necesita?

Antes de que podamos comenzar, debemos concretar algunos requisitos previos. En primer lugar, necesitamos dos sistemas diferentes que sean capaces de comunicarse entre sí a través de la red. Como NFS usa una relación de servidor a cliente(s), usaremos lo siguiente:

  • Servidor NFS:servidor.ejemplo.com:172.25.1.5
  • Cliente NFS - cliente.ejemplo.com - 172.25.1.4

Puedes usar el ping comando para confirmar las comunicaciones entre los dos sistemas. Tengo estas dos máquinas en una red NAT y he probado las conexiones en ambos sentidos.

Después de eso, asegurémonos de que ambos sistemas estén actualizados. Como estos sistemas son RHEL 8.2 y Fedora 32, usaremos el siguiente comando tanto en el servidor como en el cliente:

[root@rhel tcarrigan]# sudo yum -y update

Y finalmente, necesitamos instalar el nfs-utils paquete a nuestros dos sistemas.

[root@rhel tcarrigan]# sudo yum -y install nfs-utils (must do on both servers)
Updating Subscription Management repositories.
Last metadata expiration check: 0:55:54 ago on Wed 24 Jun 2020 11:53:45 AM EDT.
Package nfs-utils-1:2.3.3-31.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

*Nota:el paquete ya está instalado en el ejemplo anterior.

Ahora, pasemos a configurar el servidor.

Configurar el servidor

Paso 1:Inicie y habilite el nfs-utils recién instalado servicio.

[tcarrigan@rhel ~]$ sudo systemctl start nfs-server.service
[tcarrigan@rhel ~]$ sudo systemctl enable nfs-server.service

Paso 2:Confirme el nfs-server el servicio está en funcionamiento.

[tcarrigan@rhel ~]$ sudo systemctl status nfs-server.service
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabl>
   Active: active (exited) since Wed 2020-06-24 12:50:23 EDT; 18min >
 Main PID: 61026 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 50657)
   Memory: 0B
   CGroup: /system.slice/nfs-server.service
    
 Jun 24 12:50:23 server.example.com systemd[1]: Starting NFS server a>
 Jun 24 12:50:23 server.example.com systemd[1]: Started NFS server an>
lines 1-10/10 (END)

Paso 3:Verifique la versión de NFS (puede ver esta información en la columna dos).

[tcarrigan@rhel ~]$ rpcinfo -p | grep nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl

*Tenga en cuenta que puede encontrar los archivos de configuración del demonio NFS en /etc/nfs.conf . También puede encontrar el archivo de configuración para el montaje en /etc/nfsmount.conf .

El servicio NFS ahora está en funcionamiento en su servidor. A continuación, creemos un recurso compartido NFS.

Crear y exportar el recurso compartido

Primero, necesitamos designar una carpeta para compartir. Dado que aún no existe uno en mi sistema, crearé un directorio para compartir.

[tcarrigan@rhel ~]$ sudo mkdir -p /test/nfs_share/docs

Ahora, aprendí de algunas pruebas y errores y luego de recursos bien escritos que puede evitar muchos dolores de cabeza al cambiar los permisos y la propiedad para que coincidan con lo siguiente:

[tcarrigan@rhel ~]$ sudo chown -R nobody: /test/nfs_share/docs/
[tcarrigan@rhel ~]$ sudo chmod -R 777 /test/nfs_share/docs/

*Nota:es posible que no pueda hacer esto en un entorno de producción debido a consideraciones de seguridad. Asegúrese de saber lo que está haciendo antes de eliminar todas las restricciones de un archivo o directorio.

A continuación, debemos crear un /etc/exports archivo.

[root@server docs]# vi /etc/exports

Haga la siguiente entrada en el nuevo archivo:

/test/nfs_share   172.25.1.0/24(rw,sync,no_all_squash,root_squash)

Para comprender mejor los parámetros utilizados aquí, vamos a desglosarlos uno por uno.

  • rw:nos permite leer y escribir en el recurso compartido NFS.
  • sincronizar:requiere escribir los cambios en el disco antes de que se complete cualquier otra operación.
  • no_all_squash:asigna todos los UID y GID de la solicitud del cliente a los UID y GID idénticos en el servidor NFS.
  • root_squash:asigna solicitudes del usuario raíz del lado del cliente a un UID/GID anónimo.

Ahora que hemos creado el recurso compartido, exportémoslo a los clientes.

[root@server docs]# exportfs -rav
exporting 172.25.1.0/24:/test/nfs_share

Observe que asigné toda la subred aquí. Si lo prefiere, puede incluir aquí una única IP o nombre de host.

Modificar el cortafuegos

Instalamos el servidor y luego creamos y exportamos el recurso compartido. A continuación, configuramos un túnel a través del cortafuegos. Agregaremos reglas para nfs , rpc-bind y mountd . No olvide volver a cargar la configuración del cortafuegos cuando haya terminado.

Visto aquí:

[root@server]# firewall-cmd --permanent --add-service=nfs
success
[root@server]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@server]# firewall-cmd --permanent --add-service=mountd
success
[root@server]# firewall-cmd --reload
success

Con el lado del servidor completado, ahora podemos centrar nuestra atención en la máquina del cliente.

Configurar el cliente

*Nota:todos los pasos futuros se llevan a cabo en la máquina cliente.

Dado que ya actualizamos nuestro sistema e instalamos el nfs-utils paquete, esto debería ser bastante sencillo.

Empezamos creando una entrada en /etc/hosts para el servidor NFS. Debería verse similar a esto:

[root@client]# cat /etc/hosts
127.0.0.1  localhost
::1        localhost
172.25.1.5 localhost

Ahora, veamos si se comparte algo desde el servidor NFS. Si siguió las secciones anteriores, debería ver /test/nfs_share/docs como un directorio compartido.

[root@client ~]# showmount --exports nfs-server
Export list for nfs-server: 
/test/nfs_share/docs 172.25.1.0/24

A continuación, cree un directorio en la máquina cliente para montar el recurso compartido remoto.

[tcarrigan@client ~]$ sudo  mkdir p /test/client_share

Ahora que hemos creado un directorio de montaje, montemos el recurso compartido.

[tcarrigan@client ~]$ sudo mount -t nfs 172.25.1.5:/test/nfs_share/docs /home/tcarrigan/test/client_share

Ejecute el siguiente comando para verificar el recurso compartido:

[tcarrigan@client ~]$ sudo mount | grep -i nfs

Finalmente, para asegurarse de que el montaje persista en los reinicios, agregue la siguiente línea a /etc/fstab archivo:

172.25.0.5:/test/nfs_share/docs /home/tcarrigan/test/client_share  nfs defaults 0 0 

Día fácil.

Prueba de concepto

Como culminación de nuestros esfuerzos, probemos el recurso compartido configurado. Cree un archivo en el servidor en /test/nfs_share/docs llamado test_doc .

[tcarrigan@server docs]$ ls -lrt
total 4
-rw-r--r--. 1 root root 39 Jun 25 16:21 test_doc

Veamos si nuestro test_doc se exporta a nuestra máquina cliente a través de NFS.

En la máquina cliente:

[tcarrigan@client ~]$ cd test/client_share/
[tcarrigan@client client_share]$ ls
docs
[tcarrigan@client client_share]$ ls docs/
test_doc
[tcarrigan@client client_share]$

Aquí vemos el test_doc existe en el servidor NFS.

Para probar en la otra dirección, creo un archivo en el cliente llamado client-test-doc .

[tcarrigan@client docs]$ vi client-test-doc

Vayamos al servidor y veamos si podemos ver el archivo recién creado.

servidor NFS:

[tcarrigan@server docs]$ ls -lrt
   total 8
   -rw-r--r--. 1 root      root      39 Jun 25 16:21 test_doc
   -rw-rw-r--. 1 tcarrigan tcarrigan  5 Jul  6 13:25 client-test-doc

Podemos ver tanto el archivo original test_doc así como el archivo recién creado client-test-doc .

Felicitaciones por configurar un par servidor/cliente NFS funcional.

[ Curso gratuito en línea:Descripción general técnica de Red Hat Enterprise Linux. ]


Linux
  1. Configuración de un servidor y cliente NFS en Scientific Linux 6.3

  2. Configuración de un servidor y cliente NFS en CentOS 7.2

  3. Cómo configurar el servidor y el cliente NFS en Rocky/Alma Linux 8

  4. Instale el servidor y el cliente vnc en Ubuntu

  5. Seguridad NFS básica:NFS, no_root_squash y SUID

Cómo instalar servidor y cliente NFS en Ubuntu

Cómo configurar el cliente y el servidor NFS en Linux

Cómo configurar el servidor y el cliente NFS en Debian 10

Instalar servidor y cliente NFS en Ubuntu

Cliente y servidor NIS

Cómo configurar el servidor y el cliente NFS en CentOS 8