NFSv4.1-Protokoll

Im folgenden Leitfaden wird das NFSv4.1-Protokoll beschrieben.

Filestore bietet Unterstützung für das NFSv4.1-Protokoll für Instanzen, die in den folgenden Dienststufen erstellt wurden:

  • Zonal
  • Regional
  • Unternehmen

Diese Funktion kann in Managed Service for Microsoft Active Directory (Managed Microsoft AD) eingebunden werden, um Arbeitslasten zu unterstützen, die eine Client- und Serverauthentifizierung, Integritätsprüfungen von Nachrichtendaten und die Verschlüsselung von Daten während der Übertragung erfordern. Diese Funktionen waren zuvor in Filestore nicht verfügbar.

Die Authentifizierung wird über LDAP und Kerberos unterstützt und umfasst die folgenden Sicherheitsvarianten (Einstellungen):

  • Client- und Serverauthentifizierung (krb5).
  • Prüfung der Nachrichtenintegrität (krb5i). Umfasst die Funktionen der vorherigen Einstellung.
  • Verschlüsselung von Daten während der Übertragung (krb5p). Umfasst die Funktionen der vorherigen Einstellung.

Managed Microsoft AD ist die einzige vollständig verwaltete Google Cloud Lösung, die sowohl LDAP als auch Kerberos unterstützt. Das sind Anforderungen für das NFSv4.1-Protokoll und seine Sicherheits- und Datenschutzvorteile. Die Integration in Managed Microsoft AD ist zwar nicht erforderlich, wird aber für eine optimale Google Cloud Nutzererfahrung dringend empfohlen, um Nutzerkonten und schwankende Gruppen und Berechtigungen zu verwalten.

Sollten Sie NFSv4.1 verwenden?

Viele Unternehmen verlassen sich bei geschäftskritischen Vorgängen auf Legacy-Systeme. Viele dieser Systeme erfordern eine Authentifizierung und eine In-Transit-Verschlüsselung für den Netzwerkspeicher. NFSv3 wurde nicht für die Authentifizierung entwickelt. Die NFSv4.1-Protokollintegration von Filestore mit Managed Microsoft AD erfüllt jetzt diese wichtige Nutzeranforderung.

Weitere Informationen zu den Vorteilen von NFSv4.1 finden Sie unter Unterstützte Protokolle.

Netzwerkbasierte Access Control Lists (ACLs) in NFSv4.1

In NFSv3 wird nur der Sicherheits-Flavor sys unterstützt. Bei dieser Einstellung wird dem Nutzer uid und gid vertraut, die vom Client beim Mounten bereitgestellt werden.

Im Filestore-NFSv4.1-Protokoll sind mehrere Sicherheitsvarianten oder Einstellungen für Netzwerk-ACLs verfügbar:

  • krb5

    Authentifiziert den Client mit einem Kerberos-Ticket, das vom Managed Microsoft AD-Kerberos-Server validiert wird.

  • krb5i

    Beinhaltet die von krb5 bereitgestellte Authentifizierung und verwendet außerdem Kerberos, um die Nachrichtenintegrität des gesamten Netzwerkverkehrs zur und von der Instanz zu prüfen.

  • krb5p

    Umfasst die Authentifizierung durch krb5 und die Prüfungen der Nachrichtenintegrität von krb5i und verwendet außerdem Kerberos für die Verschlüsselung von Daten bei der Übertragung.

Wenn Sie diese Optionen nutzen möchten, ist eine Einbindung in Managed Service for Microsoft Active Directory erforderlich. Weitere Informationen finden Sie unter Filestore-Instanz mit Managed Microsoft AD erstellen.

Wenn keine Managed Service for Microsoft Active Directory-Domain angegeben ist, wird nur die Sicherheitsvariante sys unterstützt.

Weitere Informationen finden Sie unter NFSv4.1-Einschränkungen.

Filestore-NFSv4.1-Instanzen auf Linux-Clients bereitstellen

In den folgenden Schritten wird beschrieben, wie Sie Instanzen auf Linux-Clients einbinden.

  • Bereitstellung mit sec=sys für standardmäßige NFS-Berechtigungen:

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=sys,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • Einbinden mit sec=krb5 für die Kerberos-basierte Authentifizierung:

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5i,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • Einbinden mit sec=krb5i für Kerberos-basierte Authentifizierung und Prüfungen der Nachrichtenintegrität:

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5i,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • Einbinden mit sec=krb5p für Kerberos-basierte Authentifizierung, Integritätsprüfungen und Verschlüsselung während der Übertragung:

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

    Ersetzen Sie Folgendes:

    • FILESTORE-INSTANCE-FQDN ist der vollständig qualifizierte Domainname, unter dem sich die Filestore-Instanz befindet.
    • INSTANCE_SHARE_POINT ist der Name der Dateifreigabe der Filestore-Instanz, die Sie verbinden möchten.
    • MOUNT_POINT ist der Bereitstellungspunkt oder der Verzeichnisname, in dem Sie die Bereitstellung vornehmen möchten.

Linux-Clientkonfiguration

Mit einer NFSv4.1-Filestore-Instanz können Clients NFS-Vorgänge mit verschiedenen Sicherheitsvarianten ausführen. Diese Varianten werden vom Instanzadministrator über Netzwerk-ACLs für die Filestore NFSv4.1-Instanz konfiguriert, entweder bei der Erstellung oder durch Aktualisierung nach der Erstellung.

Für die Sicherheitsvariante sys wird die standardmäßige Unix-Authentifizierung verwendet, während für die Varianten krb5, krb5i und krb5p die Kerberos-basierte Authentifizierung verwendet wird.

Für die Varianten krb5, krb5i und krb5p müssen die Clients mit derselben Managed Microsoft AD-Domain wie die Filestore-Instanz verbunden sein. Führen Sie die folgenden Schritte aus, die für Ihre Umgebung geeignet sind.

Ubuntu-Image

  1. Stellen Sie eine SSH-Verbindung zur Compute Engine-Instanz her.
  2. Führen Sie die folgenden Befehle aus, um der Managed Microsoft AD-Domain beizutreten.

    1. Führen Sie den folgenden Einrichtungsbefehl aus:

      sudo apt-get update \
      sudo apt-get -y -qq install adcli realmd sssd sssd-tools packagekit krb5-user \ nfs-common expect retry
      
    2. Wenn Sie zur Eingabe des Bereichs aufgefordert werden, ersetzen Sie den vorhandenen Eintrag durch die verwaltete Microsoft AD-Domain, die in der Filestore-Instanz verwendet wird. Geben Sie den Wert in Großbuchstaben ein, drücken Sie die Pfeiltaste, um OK auszuwählen, und drücken Sie dann die Eingabetaste.

    3. Lassen Sie das Feld für Hosts leer und fahren Sie fort.

    4. Führen Sie einen der folgenden Schritte aus:

      • Führen Sie für VMs mit einem Hostnamen, der maximal 15 Zeichen lang ist, den folgenden Befehl aus:

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

        Ersetzen Sie Folgendes:

        • JOIN_DOMAIN_USER ist der Name des Nutzerkontos, das zum Einbinden der Domain verwendet wird.
        • MANAGED_AD_DOMAIN_NAME ist der Domainname des Managed Microsoft AD-Dienstes, den Sie verwenden möchten.
      • Führen Sie für VMs mit einer Hostnamenlänge von mehr als 15 Zeichen den folgenden Befehl aus:

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

        Ersetzen Sie Folgendes:

        • JOIN_DOMAIN_USER ist der Name des Nutzerkontos, das zum Einbinden der Domain verwendet wird.
        • MANAGED_AD_REALM_NAME ist der Realm-Name des Managed Microsoft AD-Dienstes, den Sie verwenden möchten.
        • MANAGED_AD_DOMAIN_NAME ist der Domainname des Managed Microsoft AD-Dienstes, den Sie verwenden möchten.
  3. Kerberos-Konfiguration aktualisieren Aktualisieren Sie /etc/krb5.conf mit der erforderlichen Realm-Definition und Realm-Domain-Zuordnung:

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

    Ersetzen Sie Folgendes:

    • DOMAIN_NAME ist der Domainname, den Sie verwenden möchten, in Großbuchstaben.
    • domain_name_lowercase ist der Domainname, den Sie verwenden möchten, in Kleinbuchstaben.

    Hier ein Beispiel:

    [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. Führen Sie den Dienst „rpc-gssd“ aus. Fügen Sie den folgenden Attributwert No-Strip in den Abschnitt [General] in /etc/idmapd.conf ein:

     [General]
     No-Strip = both
    
  5. Führen Sie dazu diesen Befehl aus:

    sudo systemctl restart rpc-gssd
    

CentOS-Image

  1. Stellen Sie eine SSH-Verbindung zur Compute Engine-Instanz her.
  2. Verbinden Sie die Managed Microsoft AD-Domain:

    sudo yum update \
    sudo yum install -y adcli realmd sssd samba-common-tools krb5-workstation nfs-utils \ bind-utils openldap-clients
    
  3. Führen Sie einen der folgenden Schritte aus:

    • Führen Sie für VMs mit einem Hostnamen, der maximal 15 Zeichen lang ist, den folgenden Befehl aus:

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

      Ersetzen Sie Folgendes:

      • JOIN_DOMAIN_USER ist der Name des Nutzerkontos, das zum Einbinden in die Domain verwendet wird.
      • MANAGED_AD_DOMAIN_NAME ist der Domainname des Managed Microsoft AD-Dienstes, den Sie verwenden möchten.
    • Führen Sie für VMs mit einem Hostnamen, der länger als 15 Zeichen ist, den folgenden Befehl aus:

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

      Ersetzen Sie Folgendes:

      • JOIN_DOMAIN_USER ist der Name des Nutzerkontos, das zum Einbinden in die Domain verwendet wird.
      • MANAGED_AD_REALM_NAME ist der Realm-Name des Managed Microsoft AD-Dienstes, den Sie verwenden möchten.
      • MANAGED_AD_DOMAIN_NAME ist der Domainname des Managed Microsoft AD-Dienstes, den Sie verwenden möchten.
  4. Prüfen Sie, ob der sssd-Dienst ausgeführt wird:

    sudo systemctl status sssd
    
  5. Führen Sie den rpc-gssd-Dienst aus. Fügen Sie Folgendes unter dem Attributwert No-Strip in den Abschnitt [General] in /etc/idmapd.conf ein:

    [General]
    No-Strip = both
    
  6. Führen Sie den folgenden Befehl aus: Dieser Befehl sorgt dafür, dass der NFS-Client den Domainnamen nicht aus dem Hostnamen des NFS-Servers entfernt. Weitere Informationen finden Sie unter NFS Ganesha List Archives und Arch Linux Archive:

    sudo systemctl start rpc-gssd
    

Nächste Schritte