Skip to content

Laboratorio root_squash

Objetivos

  • Configurar un servidor NFS en un sistema RHEL 9 para soportar exclusivamente NFSv4.2.
  • Comprender y demostrar el efecto de la opción root_squash en un recurso compartido NFS.
  • Validar cómo el usuario root se mapea al usuario nobody al interactuar con el recurso compartido.
  • Modificar la configuración del recurso compartido para deshabilitar root_squash y observar el impacto en los permisos y propietarios de los archivos creados.
  • Realizar pruebas de conectividad, montaje y validación de permisos en el recurso compartido desde un cliente NFS.

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: Configuración de root_squash

  1. En el cliente en el sistema (student-X-bastion), monta el recurso compartido via NFS:
    sudo mount -t nfs4 student-X-servera:/nfs/compartido /mnt/compartido
    
  2. Como el usuario student tratar de crear un archivo en el punto de montaje /mnt/compartido
    sudo -u student touch /mnt/compartido/student.txt
    
    Salida:
    touch: cannot touch '/mnt/compartido/student.txt': Permission denied
    
  3. Identificar las razones. Desde el servidor (student-X-servera) NFS ejecutar: Asegurese de estar en el sistema adecuado:
    echo $HOSTNAME
    
    Salida similar:
    student-X-servera
    
  4. Desde el cliente (student-X-bastion), identificar los permisos para el directorio compartido:

    ls -ld /mnt/compartido/
    
    Salida
    drwxr-xr-x. 2 nobody nobody 32 Apr XX 18:39 /mnt/compartido/
    
    Notar los permisos:

    Campo Significado
    rwx (dueño) Permisos para el dueño (nobody): leer (r), escribir (w) y ejecutar (x).
    r-x (grupo) Permisos para el grupo (nobody): leer (r) y ejecutar (x), pero no escribir.
    r-x (otros) Permisos para otros usuarios: leer (r) y ejecutar (x), pero no escribir.
    nobody (dueño) Usuario propietario del directorio.
    nobody (grupo) Grupo propietario del directorio.
  5. Asegurese de estar en el sistema adecuado:

    echo $HOSTNAME
    
    Salida similar:
    student-X-bastion
    

  6. Como el usuario root tratar de crear un archivo en el punto de montaje /mnt/compartido
    sudo -u root touch /mnt/compartido/root.txt
    
    No debe mostrar algún error el comando.
  7. Identificar los permisos para el archivo creado en el punto de montaje.

    ls -l /mnt/compartido/root.txt
    
    Salida:
    -rw-r--r--. 1 nobody nobody 0 Apr XX 18:40 /mnt/compartido/root.txt
    
    Notar:

    Campo Significado
    nobody (dueño) Usuario propietario del directorio.
    nobody (grupo) Grupo propietario del directorio.

    Esto demuestra el efecto de root_squash, aún cuando el elemento es creado por el usuario root, este usuario se mapea al usuario nobody (anónmo configurado en el sistema).

  8. Con fines didacticos, desactivaremos esta opción por defecto en el directorio compartido en el servidor de NFS. Asegurese de estar en el sistema adecuado:

    echo $HOSTNAME
    
    Salida similar:
    student-X-servera
    

  9. Modifique las opciones del recurso exportado via NFS. Editando el archivo /etc/exports, de la siguiente manera: Original:
    /nfs/compartido student-5-bastion(rw)
    
    Nuevo contenido:
    /nfs/compartido student-5-bastion(rw,no_root_squash)
    
  10. Exporte de nuevo los recursos de NFS.
    sudo exportfs -va
    
  11. Asegurese de estar en el sistema adecuado:
    echo $HOSTNAME
    
    Salida similar:
    student-X-bastion
    
  12. Desmonte el recurso y vuelva a montarlo.
    sudo umount /mnt/compartido/
    sudo mount  student-X-servera:/nfs/compartido /mnt/compartido
    
  13. Como el usuario root tratar de crear un archivo en el punto de montaje /mnt/compartido
    sudo -u root touch /mnt/compartido/root-2.txt
    
    No debe mostrar algún error el comando.
  14. Identificar los permisos para el archivo creado en el punto de montaje.

    ls -l /mnt/compartido/root-2.txt
    
    Salida:
    -rw-r--r--. 1 nobody nobody 0 Apr XX 18:40 /mnt/compartido/root.txt
    
    Notar:

    Campo Significado
    root (dueño) Usuario propietario del directorio.
    root (grupo) Grupo propietario del directorio.

    Esto demuestra el efecto de no_root_squash ya que no se realiza ningún mapeo.

Resultados Esperados

  • El servidor NFS estará configurado para soportar únicamente NFSv4.2, con las opciones de seguridad predeterminadas habilitadas.
  • Se demostrará que, con root_squash habilitado, los archivos creados por el usuario root en el cliente NFS se asignan al usuario nobody en el servidor.
  • Al deshabilitar root_squash, los archivos creados por el usuario root mantendrán su propiedad como root en el servidor.
  • Las pruebas de validación confirmarán el correcto funcionamiento del recurso compartido NFS con y sin la opción root_squash.