Cómo instalar un servidor y un cliente NFS en Debian 12

NFS o Sistema de Archivos en Red es un protocolo de red que te permite montar un sistema de archivos remoto a través de la red. El protocolo NFS utiliza una arquitectura cliente-servidor: el servidor NFS proporciona todos los directorios o particiones a los que se puede acceder, y los clientes acceden a todos los directorios y sistemas de archivos a través de la conexión de red interna utilizando el protocolo rpcbind.

A continuación se describe el estado actual del protocolo Sistema de Archivos en Red.

  • NFSv2 y NFSv3 siguen siendo compatibles con los principales sistemas operativos, pero por motivos de seguridad debes restringir el acceso al servidor NFS a la red local de confianza. NFSv2 y NFSv3 se recomiendan para implantaciones pequeñas y medianas.
  • El protocolo NFSv4 proporciona funciones de seguridad básicas como la autenticación y el cifrado, pero depende de Kerberos para estas partes. Así que tienes que hacer configuraciones adicionales para utilizar NFSv4 con funciones básicas de seguridad.

En esta guía, te mostraré cómo instalar un servidor y un cliente NFS en Debian 12. Instalaré el servidor NFS y configuraré NFSv4, incluyendo la configuración de exportsfs mediante el pseudo sistema de archivos. Al final, configuraré el cliente Debian para que monte el servidor NFS sólo mediante NFSv4 y configuraré el montaje automático mediante el archivo /etc/fstab.

Requisitos previos

Para completar esta guía, asegúrate de que tienes lo siguiente:

  • Dos servidores Debian 12 – En este caso, el servidor bookworm con dirección IP 192.168.10.15 se utilizará como servidor NFS, y el servidor client1 con IP 192.168.10.20 se utilizará como cliente NFS.
  • Un usuario no root con privilegios sudo/administrador.

Instalación del servidor NFS

NFS o Sistema de Archivos en Red es un protocolo para compartir archivos de forma distribuida. En Linux, incluido Debian, el paquete NFS está disponible por defecto en el repositorio oficial. Completa el primer paso que se indica a continuación para instalar el paquete del servidor NFS y aprender a gestionar el servicio del servidor NFS.

Antes de pasar a la instalación, ejecuta el siguiente comando apt para actualizar el repositorio de Debian y obtener la información más reciente sobre los paquetes.

sudo apt update

Ahora instala el paquete del servidor NFS nfs-kernel-server utilizando el comando apt que aparece a continuación. Introduce y para confirmar la instalación y pulsa ENTER.

sudo apt install nfs-kernel-server nfs-common

instalar nfs

Una vez instalado el paquete nfs-kernel-server, el servicio nfs-server se creará, se ejecutará y se activará por defecto en tu máquina Debian. Ejecuta los siguientes comandos systemctl para verificar el servicio nfs-server y asegurarte de que el servicio está habilitado y en ejecución.

sudo systemctl is-enabled nfs-server
sudo systemctl status nfs-server

Deberías obtener la salida habilitado, lo que significa que el servidor nfs se ejecutará automáticamente al arrancar el sistema. Deberías ver el mensaje activo (salido) o activo (en ejecución) cuando se esté ejecutando.

comprobando el servidor nfs

Además, puedes utilizar el siguiente comando para iniciar, reiniciar y detener el servicio nf-server.

sudo systemctl start nfs-server
sudo systemctl restart nfs-server
sudo systemctl stop nfs-server

Configurar NFSv4

En este momento, la última versión del protocolo NFS es la v4, que mejora la seguridad y el rendimiento. En la siguiente sección, aprenderás a configurar y activar NFSv4 en tu servidor NFS.

Abre la configuración NFS por defecto /etc/default/nfs-common utilizando el comando editor nano.

sudo nano /etc/default/nfs-common

Cambia el parámetro NEED_STATD a no y NEED_IDMAPD a yes. El NFSv4 requiere NEED_IDMAPD que se utilizará como demonio de mapeo de ID y proporciona funcionalidad entre el servidor y el cliente.

NEED_STATD="no"
NEED_IDMAPD="yes"

Guarda el archivo y sal del editor cuando hayas terminado.

Ahora abre la configuración del servidor NFS /etc/default/nfs-kernel-server utilizando el comando del editor nano que aparece a continuación.

sudo nano /etc/default/nfs-kernel-server

Añade la siguiente configuración para desactivar NFSv2 y NFSv3 cuando se ejecute el servicio nfs-server, y desactiva las peticiones de montaje de los clientes tanto para NFSv2 como para NFSv3.

RPCNFSDOPTS="-N 2 -N 3"
RPCMOUNTDOPTS="--manage-gids -N 2 -N 3"

Guarda el archivo y sal de él cuando hayas terminado.

Por último, ejecuta el siguiente comando para reiniciar el servicio nfs-server y aplicar los cambios. Con esto, tu servidor NFS sólo aceptará el protocolo NFSv4.

sudo systemctl restart nfs-server

Configurar el cortafuegos mediante UFW

Habilitar firewalld en tu servidor NFS es imprescindible, ya que puedes limitar qué redes internas pueden acceder al servidor NFS. Completa este paso para configurar el UFW (Cortafuegos sin complicaciones) y asegurar tu servidor NFS.

Si UFW no está instalado, ejecuta el siguiente comando apt para instalarlo.

sudo apt install ufw -y

instalar ufw

Una vez instalado UFW, ejecuta el siguiente comando ufw para permitir el servicio SSH y habilitar UFW. Introduce y y pulsa ENTER para confirmar y habilitar UFW.

sudo ufw allow ssh
sudo ufw enable

Deberías obtener una salida«El cortafuegos está activo y habilitado al iniciar el sistema» cuando el UFW esté ejecutándose y habilitado.

activar ufw

A continuación, ejecuta el siguiente comando ufw para permitir que la subred de tu red local acceda al servidor NFS. El siguiente comando permitirá que 192.168.10.0/24 acceda al servidor NFS.

sudo ufw allow from 192.168.10.0/24 to any port nfs

Por último, ejecuta el siguiente comando ufw para recargar y verificar el estado de la UFW.

sudo ufw reload
sudo ufw status

Deberías ver el puerto NFS 2049 añadido a UFW ; sólo la subred de red 192.168.10.0/24 puede acceder al puerto.

configuración verificar ufw

Configurar el Pseudo Sistema de Archivos y las Exportaciones

Un Pseudo sistema de archivos es un sistema de archivos falso que te permite configurar el directorio compartido NFS como un único sistema de archivos. Así, en lugar de utilizar varios directorios compartidos, puedes utilizar un único pseudosistema de archivos para todos tus directorios compartidos.

En la siguiente sección, configurarás un pseudosistema de archivos en el servidor NFS y lo utilizarás como único sistema de archivos compartido para los clientes NFS.

Ejecuta el siguiente comando para crear los nuevos directorios /compartido, /compartido/datos y /compartido/documentos. A continuación, cambia la propiedad a nobody y nogroup mediante chown.

mkdir -p /shared/{data,documents}
sudo chown -R nobody:nogroup /shared

Ahora crea otros directorios /exports, /exports/home, /exports/data, y /exports/documents utilizando el comando siguiente. Y asegúrate de cambiar la propiedad a nadie y nogroup.

mkdir -p /exports/{data,home,documents}
sudo chown -R nobody:nogroup /exports

A continuación, monta el directorio /home como pseudosistema de archivos en el directorio /exports/home, el directorio compartido /shared/dataen /exports/data y el directorio compartido /shared/documents en /exports/documents.

sudo mount --bind /home /exports/home
sudo mount --bind /shared/data /exports/data
sudo mount --bind /shared/documents /exports/documents

configurar pseudosistema de archivos

Comprueba la lista de sistemas de archivos montados utilizando el comando df que aparece a continuación. El parámetro -a se utiliza para mostrar todos los sistemas de archivos disponibles, incluido el pseudosistema de archivos.

sudo df -ah

Deberías ver tres pseudosistemas de archivos disponibles y montados.

comprobación del pseudo-sistema de archivos

También puedes montar un pseudosistema de archivos de forma permanente mediante el archivo /etc/fstab. Abre el archivo /etc/fstab con el editor nano.

sudo nano /etc/fstab

Añade la siguiente configuración al archivo:

/home /exports/home    none bind
/shared/data /exports/data     none bind
/shared/documents /exports/documents    none bind

Guarda y cierra el archivo cuando hayas terminado.

Puedes añadir el directorio exportado /exports al servidor NFS como pseudosistema de archivos.

Abre el archivo /etc/exports utilizando el siguiente comando del editor nano.

sudo nano /etc/exports

Añade la siguiente línea al archivo.

/exports   192.168.10.0/255.255.255.0(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)

Guarda y cierra el archivo cuando hayas terminado.

A continuación se indican algunas opciones NFS utilizadas en este caso:

  • rw: permite el acceso de lectura y escritura tanto para el servidor NFS como para el cliente al volumen/directorio.
  • no_subtree_check: desactiva la comprobación de subárboles, que tiene ligeras implicaciones de seguridad, pero puede mejorar la fiabilidad en algunas circunstancias.
  • no_root_sqash: desactiva el aplastamiento de la raíz. Esta opción es útil sobre todo para clientes sin disco.
  • fsid=0: para NFSv4, este parámetro se utiliza para informar al servidor NFS de que esta exportación es la raíz de todos los sistemas de archivos exportados.

A continuación, ejecuta el siguiente comando para reiniciar el servicio nfs-server y aplicar los cambios. A continuación, verifica nfs-server para asegurarte de que el servicio se está ejecutando.

sudo systemctl restart nfs-server
sudo systemctl status nfs-server

Debería aparecerte una salida como ésta:

configurar exportaciones

Por último, ejecuta el siguiente comando para comprobar el directorio y el sistema de archivos exportados en el servidor NFS.

sudo showmount -e 192.168.10.15
sudo showmount -e

Si todo va bien, deberías ver que el directorio /exports está exportado en el servidor NFS.

showmount

Configuración del cliente NFS

Llegados a este punto, ya has configurado el servidor NFS con un pseudosistema de archivos y has asegurado el servidor NFS mediante UFW. Ahora, configurarás la máquina cliente Debian y montarás el sistema de archivos compartido del servidor NFS.

Accede a la máquina cliente y actualiza el repositorio de Debian para obtener la información más reciente de los paquetes. A continuación, instala el paquete nfs-common mediante el siguiente comando apt.

sudo apt update
sudo apt install nfs-common

instalar cliente nfs

Una vez instalado el paquete, ejecuta el siguiente comando para crear los directorios de montaje de destino /users, /data y /documents.

mkdir -p /users /data /documents

A continuación, ejecuta los siguientes comandos mount.nfs4 para montar el pseudo-sistema de archivos exportado en el directorio de destino. En este caso, el pseudo sistema de archivos /home se monta en el directorio /users, el /data en el directorio /data, y el /documents en el directorio /documents.

sudo mount.nfs4 192.168.10.15:/home /users
sudo mount.nfs4 192.168.10.15:/data /data
sudo mount.nfs4 192.168.10.15:/documents /documents

montar nfsv4

Comprueba la lista de sistemas de archivos montados utilizando el comando df que aparece a continuación.

sudo df -h

Si tiene éxito, deberías ver que cada pseudo-sistema de archivos del servidor NFS está montado en cada directorio de destino de esta forma:

comprobando nfsv4 munt

Además, también puedes montar la raíz de un pseudosistema de archivos así. Si compruebas el directorio de destino /nfs, deberías ver tres directorios diferentes /home, /data y /documents.

mkdir -p /nfs
sudo mount.nfs4 192.168.10.15:/ /nfs -o soft,intr,rsize=8192,wsize=8192

montar sistema de archivos raíz pseudo sistema de archivos

Montar el servidor NFS mediante /etc/fstab

Arriba, has montado el servidor NFS mediante el comando mount.nfs4. La siguiente sección te mostrará cómo montar el servidor NFS de forma permanente mediante el archivo /etc/fstab.

En primer lugar, elimina el servidor NFS mediante el siguiente comando umount.

sudo umount /users /data /documents

Ahora abre el archivo /etc/fstab utilizando el siguiente comando del editor nano.

sudo nano /etc/fstab

Añade las siguientes líneas al archivo.

192.168.10.15:/home /users nfs4 soft,intr,rsize=8192,wsize=8192
192.168.10.15:/data /data nfs4 soft,intr,rsize=8192,wsize=8192
192.168.10.15:/documents /documents nfs4 soft,intr,rsize=8192,wsize=8192

Guarda el archivo y sal del editor al terminar.

A continuación, ejecuta el siguiente comando systemctl para reiniciar el gestor systemd. A continuación, ejecuta el comando mount para montar todos los sistemas de archivos disponibles en el archivo /etc/fstab.

sudo systemctl daemon-reload
sudo mount -a

A continuación, verifica la lista de sistemas de archivos montados utilizando el siguiente comando df. Si tiene éxito, deberías ver que el servidor NFS está montado en cada directorio de destino.

sudo df -h

montar mediante /etc/fstab

También puedes intentar reiniciar la máquina cliente para ver el efecto. Si todo va bien, el servidor NFS debería montarse automáticamente a través del archivo /etc/fstab.

sudo reboot

Conclusión

Ya está. Has completado la instalación del servidor y el cliente NFS en servidores Debian 12. También has configurado explícitamente el NFSv4 y el pseudosistema de archivos en el servidor NFS. Además, has asegurado el servidor NFS mediante UFW (cortafuegos sin complicaciones).

Por último, también has terminado la configuración del cliente NFS en la máquina Debian y has configurado correctamente el servidor NFS de montaje automático mediante el archivo /etc/fstab en tu máquina Ubuntu. Ahora puedes empezar a configurarlo según tus necesidades.

También te podría gustar...