Skip to content

Laboratorio NFSv4 (Servidor)

Objetivos

  • Configurar un servidor NFS en un sistema RHEL 9 para soportar exclusivamente NFSv4.2.
  • Deshabilitar servicios relacionados con versiones anteriores de NFS para garantizar compatibilidad y seguridad.
  • Compartir un directorio en el servidor NFS y configurarlo para acceso controlado desde un cliente específico.
  • Configurar un cliente NFS en un sistema RHEL 9 para montar y acceder al recurso compartido del servidor.
  • Validar la correcta configuración y funcionamiento del servidor y cliente NFS mediante pruebas de conectividad, montaje y uso del recurso compartido.

Entorno Inicial

  • Usuario: student
  • Máquina: servera
  • Contraseña inicial: student
  • Herramientas utilizadas: Shell Bash y utilidades básicas de Linux.

Pasos del Laboratorio

Prerequisitos

  1. Inicio de sesión

    • Inicia sesión en la máquina servera desde bastion como el usuario student utilizando la llave privada proporcionada:

      ssh student-#-servera
      

Parte 1: Instalación del servidor NFS

  1. En el sistema (student-X-servera):
    sudo dnf install nfs-utils
    
  2. Habilitar únicamente NFS v4.2. Editar /etc/nfs.conf, ubicar la sección [nfsd]. Configuración por defecto:
    [nfsd]
    # debug=0
    # threads=8
    # host=
    # port=0
    # grace-time=90
    # lease-time=90
    # udp=n
    # tcp=y
    # vers3=y
    # vers4=y
    # vers4.0=y
    # vers4.1=y
    # vers4.2=y
    rdma=y
    rdma-port=20049
    
    Modificar:
    vers3=n
    # vers4=y
    vers4.0=n
    vers4.1=n
    vers4.2=y
    
    Con esta configuración el Servidor soporte únicamente NFS v4.2.
  3. Desabilitar todos los sevicios relacionados a NFS v3.
    sudo systemctl mask --now rpc-statd.service rpcbind.service rpcbind.socket
    
  4. Crear directorio para drop-in file de systemd para nfs-mountd.
    sudo mkdir /etc/systemd/system/nfs-mountd.service.d
    
  5. Configurar rpc.mountd para no escuchar a solicitudes de NFSv3. Crear /etc/systemd/system/nfs-mountd.service.d/v4only.conf, con el contenido:
    [Service]
    ExecStart=
    ExecStart=/usr/sbin/rpc.mountd --no-tcp --no-udp
    
  6. Recargar la configuración de systemd para que tome efecto la configuración del paso anterior y reiniciar el servicio de nfs-mountd.
    sudo systemctl daemon-reload
    sudo systemctl restart nfs-mountd
    
  7. Habilita e inicia el servicio:
    sudo systemctl enable --now nfs-server
    
  8. Habilita los puertos en firewalld, si el servicio esta configurado.
    sudo firewall-cmd --permanent --add-service nfs
    sudo firewall-cmd --reload
    
  9. Validar que únicamente esta soportado NFS 4.2 para NFSv4.
    sudo  cat /proc/fs/nfsd/versions
    
    Salida:
    -3 +4 -4.0 -4.1 +4.2 # Notar +4 y +4.2
    

Parte 2: Configuración del servidor NFS (Export)

  1. Crea el directorio a compartir en el sistema (student-X-servera):

    sudo mkdir -p /nfs/compartido
    sudo chown -R nobody:nobody /nfs/compartido
    

  2. Edita el archivo de exportaciones /etc/exports.

    sudo vi /etc/exports
    

  3. Agrega una línea como:
    /nfs/compartido student-X-bastion(rw)
    
    Esta entrada comparte /nfs/compartido para ser accedido con permisos de lectura y escritura (rw) únicamente al cliente student-X-bastion
  4. Aplica los cambios:
    sudo exportfs -arv
    

Parte 3: Configuración del cliente NFS

  1. En el cliente en el sistema (student-X-bastion):

    sudo dnf install nfs-utils
    

  2. Crea un punto de montaje:

    sudo mkdir -p /mnt/compartido
    

  3. Monta el recurso:

    sudo mount -t nfs4 student-X-servera:/nfs/compartido /mnt/compartido
    

  4. Validar el montaje.

    sudo mount |grep compartido
    
    Salida similar:
    student-X-servera:/nfs/compartido on /mnt/compartido type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=X.X.X.X,local_lock=none,addr=X.X.X.X)
    
    Notar: vers=4.2

  5. Validar espacio disponible.

    sudo df -h /mnt/compartido
    
    Salida similar:
    Filesystem                         Size  Used Avail Use% Mounted on 
    student-X-servera:/nfs/compartido   40G  4.8G   35G  13% /mnt/compartido
    

  6. Para montaje permanente, agregagar en el archivo /etc/fstab, la siguiente linea:

    NOTA: NO REALIZAR EN ESTE AMBIENTE

    student-X-servera:/nfs/compartido  /mnt/nfs  nfs4  defaults  0  0
    

Resultados Esperados

  • El servidor NFS estará configurado para soportar únicamente NFSv4.2, con los servicios de versiones anteriores deshabilitados.
  • El directorio compartido en el servidor será accesible desde el cliente especificado con permisos de lectura y escritura.
  • El cliente NFS podrá montar correctamente el recurso compartido y validar su disponibilidad.
  • Las pruebas de validación mostrarán que el recurso compartido está montado con la versión NFSv4.2 y que el espacio disponible es accesible desde el cliente.