GNU/Linux >> Tutoriales Linux >  >> Rocky Linux

Cómo configurar un montaje NFS en Rocky Linux 8

Network File System o NFS es un protocolo de sistema de archivos distribuido que permite a los hosts remotos montar sistemas de archivos en una red y realizar operaciones de archivos en ellos como si estuvieran montados localmente. Esto es especialmente útil cuando desea compartir recursos de un servidor con varios clientes o permitir que varios clientes escriban en un único espacio de almacenamiento.

En este tutorial, aprenderá a instalar y configurar el servidor NFS y los clientes NFS basados ​​en Rocky Linux 8. Para ello, configuraremos un host o servidor para compartir archivos y un cliente para acceder a los archivos del host mediante un montaje NFS. .

Requisitos

  • Dos servidores Rocky Linux 8. Cada uno de estos debe tener un usuario no root con privilegios sudo.
  • Tanto el host como el cliente deben tener una dirección IP estática. Incluso puede configurar ambos a través de una red privada. Para nuestro tutorial, usaremos host_ip para indicar la dirección IP del Host y client_ip para referirse a la dirección IP del Cliente.

Paso 1:instalar NFS en el host y el cliente

Anfitrión

Para instalar paquetes NFS, debe instalar nfs-utils paquete. Proporciona un demonio para el servidor NFS y herramientas relacionadas.

Instale el paquete.

$ sudo dnf install nfs-utils

Habilite e inicie el nfs-server Servicio. Servicios restantes necesarios para montar y compartir NFS como nfsd , nfs-idmapd , rpcbind , rpc.mountd , lockd , rpc.statd , rpc.quotad y rpc.idmapd iniciar automáticamente junto con él.

$ sudo systemctl enable nfs-server --now

Verifique la versión de instalación de NFS.

$ sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2

Las versiones 3 y 4 de NFS están habilitadas de manera predeterminada y la versión 2 está deshabilitada. NFSv2 es bastante antiguo y está desactualizado, por lo que puede ver el -ve firme delante de él.

NFS almacena sus configuraciones en /etc/nfsmount.conf y /etc/nfs.conf archivos El /etc/nfsmount.conf es configurar montajes NFS mientras /etc/nfs.conf es configurar el demonio NFS y las herramientas asociadas. La configuración predeterminada es suficiente para nuestro tutorial y no se requiere ningún cambio.

Cliente

En el cliente, instale nfs-utils y nfs4-acl-tools paquetes.

$ sudo dnf install nfs-utils nfs4-acl-tools

Paso 2:crea los directorios compartidos en el host

Usaremos dos ejemplos con diferentes ajustes de configuración:uno con un montaje de propósito general y otro compartiendo el directorio de inicio del host.

Los directorios montados en NFS no forman parte del Cliente. Por lo tanto, NFS no puede realizar tareas que requieran privilegios de superusuario. Significa que el cliente no puede cambiar la propiedad, escribir en ellos como usuario raíz o realizar tareas de alto nivel. Sin embargo, hay casos en los que un usuario de confianza en el cliente necesita realizar tales tareas sin requerir acceso de superusuario en el host. El servidor NFS se puede configurar para permitir esto, pero se corre el riesgo de que un cliente pueda acceder al host.

Trabajar con una montura de uso general

Para nuestro primer caso, crearemos un montaje simple que use el comportamiento NFS predeterminado, lo que significa que el cliente no puede realizar ninguna tarea que requiera privilegios de superusuario.

Cree un directorio compartido.

host:$ sudo mkdir /var/nfs/share -p

El usuario raíz del host será el propietario de este directorio ya que usamos sudo para crearlo.

host:$ ls -l /var/nfs
total 0
drwxr-xr-x. 2 root root 6 Dec 13 07:30 share

NFS traducirá todas las operaciones raíz en el lado del cliente al nobody:nobody credenciales por razones de seguridad. Por lo tanto, debemos hacerlos coincidir en el lado del host.

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

Trabajar con el directorio principal

Para nuestro segundo caso, haremos que el directorio de inicio en el host esté disponible para el cliente. No necesitamos crearlo ya que ya existe. No necesitamos cambiar ningún permiso, ya que afectaría a los usuarios en la máquina host.

Paso 3:configuración de exportaciones NFS en el host

Abra el archivo /etc/exports en la máquina Host para editar.

host:$ sudo nano /etc/exports

Pegue el siguiente código en el archivo.

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

Cada directorio y su configuración deben estar en una línea separada. Reemplace el client_ip valor con la dirección IP real de la máquina cliente.

Repasemos todas las opciones para las exportaciones de NFS.

  • rw - otorga a la máquina cliente acceso de lectura y escritura en el volumen NFS.
  • sincronizar - esta opción obliga a NFS a escribir cambios en el disco antes de responder. Esta opción se considera más confiable. Sin embargo, también reduce la velocidad de las operaciones con archivos.
  • no_subtree_check - esta opción evita la verificación de subárboles, un proceso en el que el host debe verificar si el archivo está disponible junto con los permisos para cada solicitud. También puede causar problemas cuando se cambia el nombre de un archivo en el host mientras aún está abierto en el cliente. Deshabilitarlo mejora la confiabilidad de NFS.
  • no_root_squash - De forma predeterminada, NFS traduce las solicitudes de un usuario raíz en el cliente a un usuario sin privilegios en el host. Esta opción deshabilita ese comportamiento y debe usarse con cuidado para permitir que el cliente obtenga acceso al host.

Una vez terminado, guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

Para exportar los recursos compartidos, ejecute el siguiente comando.

host:$ sudo exportfs -arv
exporting client_ip:/home
exporting client_ip:/var/nfs/share
  • -a - esta opción hace que se exporten todos los directorios.
  • -r - esta opción hace que todos los directorios se exporten mediante la construcción de una nueva lista en /var/lib/nfs/etab directorio. Esta opción se usa para actualizar la lista de exportación con cualquier cambio realizado en /etc/exports .
  • -v - habilita la salida detallada.

Para enumerar todos los directorios exportados, ejecute el siguiente comando. Mostrará todas las opciones, incluidas las predeterminadas que no se especificaron en /etc/exports archivo.

host:$ sudo exportfs -s
/var/nfs/share  client_ip(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/home  client_ip(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

Paso 4:configuración del cortafuegos en el host

Rocky Linux usa Firewalld Firewall. Compruebe el estado del cortafuegos.

host:$ sudo firewall-cmd --state
running

Esto indica que está funcionando correctamente.

El firewall funciona con diferentes zonas, y la zona pública es la predeterminada que usaremos. Enumere todos los servicios y puertos activos en el firewall.

host:$ sudo firewall-cmd --permanent --list-services

Debería mostrar el siguiente resultado.

cockpit dhcpv6-client ssh

A continuación, debemos permitir el tráfico a los servicios NFS necesarios:mountd , nfs y rpc-bind . También necesitamos permitir el acceso desde la IP del cliente. Si sus clientes y servidores host están en la misma subred, entonces no necesita agregar la dirección IP del cliente.

host:$ sudo firewall-cmd --permanent --add-service=nfs
host:$ sudo firewall-cmd --permanent --add-service=rpc-bind
host:$ sudo firewall-cmd --permanent --add-service=mountd
host:$ sudo firewall-cmd --permanent --add-source=client_IP 

Vuelva a cargar el cortafuegos para aplicar los cambios.

host:$ sudo firewall-cmd --reload

Paso 5 - Creación de puntos de montaje y directorios en el cliente

Ahora que el servidor/host NFS está configurado, el siguiente paso es configurar los puntos de montaje y los directorios en el cliente. Puede ejecutar el showmount Comando en el cliente para verificar la lista de sistemas de archivos exportados en el Host.

client:$ showmount -e host_ip
Export list for host_ip:
/home          host_ip
/var/nfs/share host_ip

Cree siempre un nuevo directorio como puntos de montaje en el cliente o use un directorio vacío existente. Si hay un archivo en un directorio que monte, se ocultará.

Cree los directorios de montaje.

client:$ sudo mkdir -p /nfs/share
client:$ sudo mkdir -p /nfs/home

Monte los recursos compartidos utilizando la dirección IP del host.

client:$ sudo mount host_ip:/var/nfs/share /nfs/share
client:$ sudo mount host_ip:/home /nfs/home

Verifica que el montaje haya sido exitoso.

client:$ df -h
Filesystem                 Size  Used Avail Use% Mounted on
devtmpfs                   370M     0  370M   0% /dev
tmpfs                      405M     0  405M   0% /dev/shm
tmpfs                      405M   16M  389M   4% /run
tmpfs                      405M     0  405M   0% /sys/fs/cgroup
/dev/vda1                   25G  2.4G   23G  10% /
tmpfs                       81M     0   81M   0% /run/user/1000
host_ip:/var/nfs/share      25G  2.4G   23G  10% /nfs/share
host_ip:/home               25G  2.4G   23G  10% /nfs/home

Ambos recursos compartidos se montan desde el mismo sistema de archivos. Por lo tanto, muestran el mismo uso de disco.

También puedes usar el mount comando para verificar.

client:$ mount | grep nfs
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
host_ip:/var/nfs/share on /nfs/share type nfs4 (rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=client_ip,local_lock=none,addr=host_ip)
host_ip:/home on /nfs/home type nfs4 (rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=client_ip,local_lock=none,addr=host_ip)

Paso 6:probar el acceso NFS

Compartir uso general de prueba

Escriba un archivo de prueba en /var/nfs/share compartir.

client:$ sudo touch /nfs/share/test.txt

Comprueba su propiedad.

client:$ ls -l /nfs/share/test.txt
-rw-r--r--. 1 nobody nobody 0 Dec 13 08:08 /nfs/share/test.txt

Dado que montamos este volumen usando la configuración NFS predeterminada y creamos el archivo en el cliente usando sudo , la propiedad del archivo por defecto es nobody:nobody . Los superusuarios del cliente no pueden realizar ninguna tarea administrativa en el recurso compartido.

Compartir directorio de inicio de prueba

Escriba un archivo de prueba en /nfs/home compartir.

client:$ sudo touch /nfs/home/home.txt

Comprueba su propiedad.

client:$ ls -l /nfs/home/home.txt
-rw-r--r--. 1 root root 0 Dec 13 08:09 /nfs/home/home.txt

Ya que usamos el no_root_squash opción, permitió que el usuario raíz del cliente actuara como raíz en el recurso compartido.

Paso 7:hacer que los puntos de montaje sean permanentes

Los recursos compartidos de NFS por defecto son temporales y deben montarse en el arranque. Podemos hacerlos permanentes editando el /etc/fstab archivo en el cliente.

Abra el archivo /etc/fstab para editar.

client:$ sudo nano /etc/fstab

Pegue las siguientes líneas en la parte inferior del archivo.

. . .
host_ip:/var/nfs/share      /nfs/share     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

Puede obtener más información sobre las opciones enumeradas anteriormente ejecutando los siguientes comandos.

client:$ man nfs
client:$ man mount

Si desea leerlos en línea, puede buscar en Google la frase man nfs y man mount para obtener más información sobre estas opciones.

Paso 8:Desmontar recurso compartido NFS

Si ya no desea los montajes remotos en su sistema, puede desmontarlos usando el umount dominio. Tenga en cuenta que el comando se llama umount y no desmontar lo cual es un error común.

Sal de las monturas compartidas y desmóntalas.

client:$ cd ~
client:$ sudo umount /nfs/share
client:$ sudo umount /nfs/home

Si ya no necesita que los recursos compartidos vuelvan a montarse al reiniciar, asegúrese de comentar las entradas correspondientes en el /etc/fstab archivo poniendo un # firmar delante de ellos.

Conclusión

En este tutorial, aprendimos cómo crear un servidor host NFS y montar directorios usándolo, que compartimos con un cliente NFS. Si lo está implementando en una red privada, entonces no debería haber ningún problema, pero si lo está usando en producción, debe recordar que el protocolo no está encriptado y debe implementar alguna autenticación para proteger sus datos.

Si tiene alguna pregunta, publíquela en los comentarios a continuación.


Rocky Linux
  1. Cómo montar un recurso compartido NFS en Linux

  2. Cómo instalar Python 3.9 en Rocky Linux 8

  3. Cómo configurar el servidor Pritunl VPN en Rocky Linux 8

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

  5. Cómo instalar Redis en Rocky Linux 8

Cómo instalar Anydesk en Rocky Linux 8

Cómo instalar TeamViewer en Rocky Linux 8

Cómo configurar la fecha y la hora en el escritorio y el servidor Rocky Linux 8

Cómo instalar Anaconda en Rocky Linux 8

Cómo instalar Snap en Rocky Linux 8

Cómo instalar PHP 7.4 en Rocky Linux 8