GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar NFS Client y Server en Ubuntu 20.04

Network File System o NFS abreviado es un protocolo de sistema de archivos distribuido que le permite montar directorios remotos en su servidor. NFS le permite acceder a archivos y carpetas desde un servidor o cliente diferente. Puede escribir en ese servidor desde varios clientes o sistemas remotos a través de una red. Esta tecnología le brinda la flexibilidad de compartir un recurso en múltiples sistemas.

En este tutorial, aprenderemos cómo configurar un servidor NFS y cómo montar recursos compartidos NFS en un cliente con Ubuntu 20.04.

Requisitos

  • Dos sistemas Ubuntu 20.04. Cada servidor debe tener un usuario no root con privilegios de sudo y firewall UFW configurado.
  • Puede configurar tanto el servidor como el cliente a través de una red privada. Para nuestro tutorial, usaré host_ip para indicar el host_ip dirección y client_ip para referirse a la dirección IP del Cliente.

Paso 1:instalar NFS en el servidor y el cliente

Anfitrión

Necesitamos instalar el nfs-kernel-server paquete en el host para compartir sus directorios.

$ sudo apt update
$ sudo apt install nfs-kernel-server

Cliente

Para el cliente, instalaremos el nfs-common paquete que permite al Cliente montar el directorio host pero no puede alojar el directorio en sí.

$ sudo apt update
$ sudo apt install nfs-common

Paso 2:crear directorios compartidos en el host

Hay dos formas de otorgar acceso a directorios en el host al cliente. De forma predeterminada, el servidor NFS no permite operaciones que requieran privilegios de sudo. Esto significa que los superusuarios del cliente no pueden escribir archivos como raíz, reasignar la propiedad ni realizar ninguna tarea que requiera privilegios elevados.

Pero a veces, un cliente necesita realizar ciertas operaciones en el host que requieren privilegios elevados pero no necesita acceso de superusuario para ello.

Primer método

Esta es la forma predeterminada de compartir directorios. Hace que sea difícil para un usuario raíz en el cliente interactuar con el host usando privilegios elevados.

Primero, cree el directorio compartido.

$ sudo mkdir /var/nfs/general -p

Si realiza operaciones de raíz en el cliente, NFS las traducirá a nobody:nogroup credenciales en la máquina host. Por lo tanto, debemos otorgar la propiedad adecuada al directorio compartido.

$ sudo chown nobody:nogroup /var/nfs/general

Segundo método

Aquí, compartiremos el directorio de inicio del host con el cliente. Esto permitirá a los usuarios root en el cliente un acceso adecuado al host.

Dado que el directorio de inicio ya existe en el servidor host, no necesitamos crearlo. Tampoco es necesario cambiar los permisos, ya que creará múltiples problemas para los usuarios en la máquina host.

Paso 3:configurar NFS en el host

Es hora de configurar NFS para configurar el uso compartido.

Abra el archivo /etc/exports en el servidor anfitrión.

$ sudo nano /etc/exports

Agregue las siguientes líneas en la parte inferior, una para cada directorio que comparta.

/var/nfs/general    client_ip(rw,sync,no_subtree_check)
/home               client_ip(rw,sync,no_root_squash,no_subtree_check)

Repasemos todas estas opciones y lo que significan.

  • rw :Esto le da al cliente acceso de lectura y escritura en los directorios del host.
  • sincronizar :Esta opción obliga a NFS a escribir cambios antes de responder. Significa que NFS primero terminará de escribir en el directorio del host y luego responderá al cliente. Esto garantiza que se refleje el estado real del servidor host, pero puede ralentizar la velocidad de las operaciones con archivos.
  • no_subtree_check :esta opción deshabilita la comprobación de subárboles. La comprobación de subárboles es una operación en la que, con cada solicitud de NFS, el servidor debe comprobar que el archivo al que se accede está presente y que está en el árbol exportado. Esta operación causa problemas cuando se cambia el nombre de los archivos a los que accede un cliente. Por lo tanto, es mejor dejarlo deshabilitado en la mayoría de los casos. Tiene algunas implicaciones de seguridad leves, pero puede mejorar la confiabilidad.
  • no_root_squash :De forma predeterminada, NFS traduce todas las operaciones realizadas como root por el cliente a un usuario sin privilegios en el servidor. Esto se hace con la intención de mejorar la seguridad. Esta opción deshabilita ese comportamiento para ciertos recursos compartidos.

Cuando haya terminado, cierre el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

Reinicie el servidor NFS para aplicar los cambios.

$ sudo systemctl restart nfs-kernel-server

Paso 4:configurar el servidor de seguridad

La mejor práctica con NFS es habilitarlo específicamente para la dirección IP de cada cliente por separado en lugar de permitir el acceso desde cualquier lugar.

NFS usa el puerto 2049. Habilite el acceso para NFS con el siguiente comando.

$ sudo ufw allow from client_ip to any port nfs

Verifique el estado para verificar.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                 
2049                       ALLOW       167.100.34.78        
OpenSSH (v6)               ALLOW       Anywhere (v6)

Paso 5:crear puntos de montaje en el cliente

Ahora que nuestro host está configurado, es hora de configurar el cliente.

Cree dos directorios para montajes en el cliente.

$ sudo mkdir -p /nfs/general
$ sudo mkdir -p /nfs/home

Ahora que hemos configurado todo en el extremo del host, podemos montar los recursos compartidos utilizando la dirección IP del Host.

$ sudo mount host_ip:/var/nfs/general /nfs/general
$ sudo mount host_ip:/home /nfs/home

Puede comprobar si se han montado correctamente con el siguiente comando.

$ df -h
Filesystem                      Size  Used Avail Use% Mounted on
udev                            448M     0  448M   0% /dev
tmpfs                            99M  664K   98M   1% /run
/dev/vda1                        25G  3.2G   21G  14% /
tmpfs                           491M     0  491M   0% /dev/shm
tmpfs                           5.0M     0  5.0M   0% /run/lock
tmpfs                           491M     0  491M   0% /sys/fs/cgroup
tmpfs                            99M     0   99M   0% /run/user/1000
123.175.112.87:/var/nfs/general  25G   18G  6.3G  74% /nfs/general
123.175.112.87:/home             25G   18G  6.3G  74% /nfs/home

Puede ver los recursos compartidos montados en la parte inferior de la lista. Dado que ambos se montaron desde el mismo sistema de archivos, muestran el uso total del disco y no el uso real de los directorios montados.

Para ver cuánto espacio real se está utilizando debajo de cada montaje, use el siguiente comando.

$ du -sh /nfs/general
36K     /nfs/general

Paso 6:Probar el uso compartido de NFS

Cree un archivo de prueba para /var/nfs/general compartir.

$ sudo touch /nfs/general/general.test

Comprueba su propiedad.

$ ls -l /nfs/general/general.test
-rw-r--r-- 1 nobody nogroup 0 Aug  1 13:31 /nfs/general/general.test

Esto se montó usando las opciones predeterminadas de NFS y dado que creamos el archivo usando la raíz de la máquina cliente, la propiedad en el host se transfirió a nobody:nogroup . Aquí, el usuario del cliente no puede realizar trabajos administrativos en la máquina del host.

Cree un archivo de prueba para el recurso compartido /nfs/home`.

$ sudo touch /nfs/home/home.test

Comprueba su propiedad.

$ ls -l /nfs/home/home.test
-rw-r--r-- 1 root root 0 Aug  1 13:32 /nfs/home/home.test

Aquí, dado que creamos el archivo de prueba utilizando la raíz de la máquina cliente, la propiedad se mantuvo en la máquina host. Esto se debió a que usamos no_root_squash indicador que permitía al usuario root en la máquina cliente como usuario root en la máquina host también.

Paso 7:Montar recursos compartidos NFS durante el arranque

Estos montajes no se conservarán una vez que inicie la máquina cliente. Para hacerlos permanentes, necesitamos editar el /etc/fstab archivo.

Abra el /etc/fstab archivo para editar.

$ sudo nano /etc/fstab

Pegue las siguientes líneas en la parte inferior del archivo. Cada línea corresponde a cada directorio que queremos montar en el momento del arranque.

. . .
host_ip:/var/nfs/general    /nfs/general   nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
host_ip:/home               /nfs/home      nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

Para obtener más información sobre estas opciones, consulte la página de manual de nfs .

$ man nfs

Guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

Reinicie el servidor para comprobar los montajes.

$ sudo reboot

Inicie sesión en el cliente-servidor y verifique que los montajes estén presentes.

$ df -h
Filesystem                      Size  Used Avail Use% Mounted on
udev                            448M     0  448M   0% /dev
tmpfs                            99M  664K   98M   1% /run
/dev/vda1                        25G  3.2G   21G  14% /
tmpfs                           491M     0  491M   0% /dev/shm
tmpfs                           5.0M     0  5.0M   0% /run/lock
tmpfs                           491M     0  491M   0% /sys/fs/cgroup
tmpfs                            99M     0   99M   0% /run/user/1000
123.175.112.87:/var/nfs/general  25G   18G  6.3G  74% /nfs/general
123.175.112.87:/home             25G   18G  6.3G  74% /nfs/home

Paso 8:Desmontar recursos compartidos de NFS

Una vez que no necesite montajes NFS, puede desmontarlos usando el siguiente comando.

$ sudo umount /nfs/home
$ sudo umount /nfs/general

Un error común es usar unmount en lugar de umount cuál es el comando real.

Verifique que se hayan desmontado correctamente.

$ df -h
Filesystem                      Size  Used Avail Use% Mounted on
udev                            448M     0  448M   0% /dev
tmpfs                            99M  664K   98M   1% /run
/dev/vda1                        25G  3.2G   21G  14% /
tmpfs                           491M     0  491M   0% /dev/shm
tmpfs                           5.0M     0  5.0M   0% /run/lock
tmpfs                           491M     0  491M   0% /sys/fs/cgroup
tmpfs                            99M     0   99M   0% /run/user/1000

También deberá eliminar sus entradas de /etc/fstab archivo para que no se vuelvan a montar en el arranque. También puede simplemente descomentar sus entradas colocando un # carácter al frente en caso de que necesite reutilizar las monturas nuevamente.

Conclusión

Esto concluye nuestro tutorial en el que aprendimos cómo crear montajes NFS en una máquina host y cómo acceder a ellos desde diferentes máquinas cliente. Si tiene alguna consulta, envíela en los comentarios a continuación.


Ubuntu
  1. Cómo instalar Chef Server, Workstation y Chef Client en Ubuntu 18.04

  2. Cómo instalar el servidor y el cliente NTP en Ubuntu 18.04 LTS

  3. Instalar UrBackup Server and Client en Ubuntu 20.04 - ¿Cómo hacerlo?

  4. Cómo configurar el servidor y el cliente NFS en Ubuntu 20.04

  5. Instale el servidor y el cliente vnc en Ubuntu

Cómo instalar UrBackup Server and Client en Ubuntu 20.04

Cómo instalar el servidor y el cliente Telnet en Ubuntu

Instalar servidor y cliente NFS en Ubuntu

Cómo instalar el servidor NTP y los clientes en Ubuntu 20.04 LTS

Cómo instalar y configurar NFS en Ubuntu 22.04/20.04

Cómo instalar el servidor NFS en Ubuntu 20.04 LTS