Acerca del protocolo NFSv4.1

En la siguiente guía, se describe el protocolo NFSv4.1.

Filestore ofrece compatibilidad con el protocolo NFSv4.1 para las instancias creadas en los siguientes niveles de servicio:

  • Zonal
  • Regional
  • Enterprise

Esta capacidad se puede integrar con el servicio administrado para Microsoft Active Directory (Microsoft AD administrado) para admitir cargas de trabajo que requieren autenticación de cliente y servidor, verificaciones de integridad de datos de mensajes y encriptación de datos en tránsito, capacidades que antes no estaban disponibles en Filestore.

La autenticación se admite con LDAP y Kerberos, y se incluyen los siguientes tipos de seguridad (configuración):

  • Autenticación de cliente y servidor (krb5)
  • Verificaciones de integridad de mensajes (krb5i). Incluye las capacidades del parámetro de configuración anterior.
  • Encriptación de datos en tránsito (krb5p): Incluye las capacidades del parámetro de configuración anterior.

Microsoft AD administrado es la única solución Google Cloud completamente administrada que admite LDAP y Kerberos, requisitos del protocolo NFSv4.1 y sus beneficios de seguridad y privacidad. Si bien no es obligatoria la integración con Microsoft AD administrado, se recomienda para una Google Cloud experiencia del usuario óptima administrar las cuentas de usuario y los grupos y permisos fluctuantes.

¿Deberías usar NFSv4.1?

Muchas organizaciones empresariales dependen de sistemas heredados para las operaciones críticas de la empresa. Muchos de estos sistemas requieren autenticación y encriptación en tránsito para su almacenamiento de archivos en red. NFSv3 no se diseñó teniendo en cuenta la autenticación. La integración del protocolo NFSv4.1 de Filestore con Microsoft AD administrado ahora cumple con este requisito crítico del usuario.

Para obtener más información sobre los beneficios de NFSv4.1, consulta Acerca de los protocolos compatibles.

Comprende las listas de control de acceso (LCA) basadas en la red en NFSv4.1.

En NFSv3, solo se admite el sabor de seguridad sys. Este parámetro de configuración confía en el usuario uid y gid proporcionados por el cliente durante el montaje.

En el protocolo NFSv4.1 de Filestore, hay disponibles varios tipos o parámetros de configuración de seguridad de la ACL de red:

  • krb5

    Autentica al cliente con un ticket Kerberos, que se valida en el servidor Kerberos de Microsoft AD administrado.

  • krb5i

    Incluye la autenticación proporcionada por krb5 y también usa Kerberos para ejecutar verificaciones de integridad de mensajes en todo el tráfico de red hacia y desde la instancia.

  • krb5p

    Incluye la autenticación proporcionada por krb5 y las verificaciones de integridad de mensajes de krb5i, y también usa Kerberos para la encriptación de datos en tránsito.

Si quieres aprovechar estas opciones, se requiere la integración del servicio administrado para Microsoft Active Directory. Para obtener más información, consulta Crea una instancia de Filestore con Microsoft AD administrado.

Si no se especifica un dominio del servicio administrado para Microsoft Active Directory, solo se admite el tipo de seguridad sys.

Para obtener más información, consulta Limitaciones de NFSv4.1.

Cómo activar instancias de Filestore NFSv4.1 en clientes de Linux

En los siguientes pasos, se muestra cómo activar instancias en clientes de Linux.

  • Activa con sec=sys para permisos de NFS estándar:

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=sys,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • Monta con sec=krb5 para la autenticación basada en Kerberos:

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • Monta con sec=krb5i para la autenticación basada en Kerberos y las verificaciones de integridad de mensajes:

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5i,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • Realiza el montaje con sec=krb5p para la autenticación basada en Kerberos, las verificaciones de integridad y la encriptación en tránsito:

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5p,rw \ FILESTORE-INSTANCE-FQ
    DN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    

    Reemplaza lo siguiente:

    • FILESTORE-INSTANCE-FQDN es el nombre de dominio completamente calificado en el que se encuentra la instancia de Filestore.
    • INSTANCE_SHARE_POINT es el nombre del recurso compartido de archivos de la instancia de Filestore a la que deseas conectarte.
    • MOUNT_POINT es el punto de activación o el nombre del directorio en el que deseas activar el bucket.

Configuración del cliente de Linux

Una instancia de Filestore de NFSv4.1 permite que los clientes realicen operaciones de NFS con varios tipos de seguridad. El administrador de la instancia configura estos tipos a través de las LCA de red en la instancia de Filestore NFSv4.1, durante la creación o si se actualizan después de la creación.

El sabor de seguridad sys usa la autenticación estándar de Unix, mientras que los sabores krb5, krb5i y krb5p usan la autenticación basada en Kerberos.

Las variantes krb5, krb5i y krb5p requieren que los clientes estén conectados al mismo dominio de Microsoft AD administrado que la instancia de Filestore. Completa los siguientes pasos según tu entorno.

Imagen de Ubuntu

  1. Establece una conexión SSH a la instancia de Compute Engine.
  2. Ejecuta los siguientes comandos para unir el dominio de Microsoft AD administrado.

    1. Ejecuta el siguiente comando de configuración:

      sudo apt-get update \
      sudo apt-get -y -qq install adcli realmd sssd sssd-tools packagekit krb5-user \ nfs-common expect retry
      
    2. Cuando se te solicite el dominio, reemplaza la entrada existente por el dominio de Microsoft AD administrado que se usa en la instancia de Filestore. Ingresa el valor en mayúsculas, presiona la tecla de flecha para seleccionar Aceptar y, luego, presiona Intro.

    3. Cuando se te solicite que ingreses los hosts, deja el campo en blanco y continúa.

    4. Completa uno de los siguientes pasos:

      • En el caso de las VMs con una longitud de nombre de host menor o igual a 15 caracteres, ejecuta el siguiente comando:

        sudo realm join -vU JOIN_DOMAIN_USER --automatic-id-mapping=no MANAGED_AD_DOMAIN_NAME
        

        Reemplaza lo siguiente:

        • JOIN_DOMAIN_USER es el nombre de la cuenta de usuario que se usa para unirse al dominio.
        • MANAGED_AD_DOMAIN_NAME es el nombre de dominio del servicio de Microsoft AD administrado que deseas usar.
      • En el caso de las VMs con una longitud de nombre de host superior a 15 caracteres, ejecuta el siguiente comando:

        sudo realm join -vU JOIN_DOMAIN_USER --automatic-id-mapping=no \ --user-principal=host/`hostname -f`@MANAGED_AD_REALM_NAME MANAGED_AD_DOMAIN_NAME
        

        Reemplaza lo siguiente:

        • JOIN_DOMAIN_USER es el nombre de la cuenta de usuario que se usa para unirse al dominio.
        • MANAGED_AD_REALM_NAME es el nombre del dominio del servicio de Microsoft AD administrado que deseas usar.
        • MANAGED_AD_DOMAIN_NAME es el nombre de dominio del servicio de Microsoft AD administrado que deseas usar.
  3. Actualiza la configuración de Kerberos. Actualiza /etc/krb5.conf con la definición de dominio requerida y la asignación de dominio a dominio:

     [realms]
              DOMAIN_NAME = {
                       kdc = DOMAIN_NAME
                       default_domain = DOMAIN_NAME
              }
     [domain_realm]
              .domain_name_lowercase = DOMAIN_NAME
              domain_name_lowercase = DOMAIN_NAME
    

    Reemplaza lo siguiente:

    • DOMAIN_NAME es el nombre de dominio que deseas usar, ingresado en mayúsculas.
    • domain_name_lowercase es el nombre de dominio que deseas usar, ingresado en minúsculas.

    Consulta el siguiente ejemplo:

    [realms]
           FILE.DEMO.LOCAL = {
                    kdc = FILE.DEMO.LOCAL
                    default_domain = FILE.DEMO.LOCAL
           }
    
    [domain_realm]
           .file.demo.local = FILE.DEMO.LOCAL
           file.demo.local = FILE.DEMO.LOCAL
    
  4. Ejecuta el servicio rpc-gssd. Agrega el siguiente valor del atributo No-Strip a la sección [General] dentro de /etc/idmapd.conf:

     [General]
     No-Strip = both
    
  5. Ejecuta el siguiente comando:

    sudo systemctl restart rpc-gssd
    

Imagen de CentOS

  1. Establece una conexión SSH a la instancia de Compute Engine.
  2. Une el dominio de Microsoft AD administrado:

    sudo yum update \
    sudo yum install -y adcli realmd sssd samba-common-tools krb5-workstation nfs-utils \ bind-utils openldap-clients
    
  3. Completa uno de los siguientes pasos:

    • En el caso de las VMs con una longitud de nombre de host menor o igual a 15 caracteres, ejecuta el siguiente comando:

      sudo realm join -vU JOIN_DOMAIN_USER --automatic-id-mapping=no MANAGED_AD_DOMAIN_NAME
      

      Reemplaza lo siguiente:

      • JOIN_DOMAIN_USER es el nombre de la cuenta de usuario que se usa para unirse al dominio.
      • MANAGED_AD_DOMAIN_NAME es el nombre de dominio del servicio de Microsoft AD administrado que deseas usar.
    • En el caso de las VMs con una longitud de nombre de host superior a 15 caracteres, ejecuta el siguiente comando:

      sudo realm join -vU JOIN_DOMAIN_USER --automatic-id-mapping=no \ --user-principal=host/`hostname -f`@MANAGED_AD_REALM_NAME MANAGED_AD_DOMAIN_NAME
      

      Reemplaza lo siguiente:

      • JOIN_DOMAIN_USER es el nombre de la cuenta de usuario que se usa para unirse al dominio.
      • MANAGED_AD_REALM_NAME es el nombre del dominio del servicio de Microsoft AD administrado que deseas usar.
      • MANAGED_AD_DOMAIN_NAME es el nombre de dominio del servicio de Microsoft AD administrado que deseas usar.
  4. Asegúrate de que el servicio sssd esté en ejecución:

    sudo systemctl status sssd
    
  5. Ejecuta el servicio rpc-gssd. Agrega lo siguiente debajo del valor del atributo No-Strip a la sección [General] dentro de /etc/idmapd.conf:

    [General]
    No-Strip = both
    
  6. Ejecuta el siguiente comando. Este comando ayuda a garantizar que el cliente NFS no quite el nombre de dominio del nombre de host del servidor NFS. Para obtener más información, consulta NFS Ganesha List Archives y Arch Linux Archive:

    sudo systemctl start rpc-gssd
    

¿Qué sigue?