Konfigurowanie klienta sieciowego systemu plików dla usługi Azure NetApp FilesConfigure an NFS client for Azure NetApp Files

Konfiguracja klienta NFS opisana w tym artykule jest częścią instalacji podczas konfigurowania szyfrowania nfsv 4.1 Kerberos lub tworzenia dwuprotokołowego woluminu.The NFS client configuration described in this article is part of the setup when you configure NFSv4.1 Kerberos encryption or create a dual-protocol volume. Wiele różnych dystrybucji systemu Linux jest dostępnych do użycia z Azure NetApp Files.A wide variety of Linux distributions are available to use with Azure NetApp Files. W tym artykule opisano konfiguracje dla dwóch najczęściej używanych środowisk: RHEL 8 i Ubuntu 18,04.This article describes configurations for two of the more commonly used environments: RHEL 8 and Ubuntu 18.04.

Wymagania i zagadnieniaRequirements and considerations

Niezależnie od używanej wersji systemu Linux wymagane są następujące konfiguracje:Regardless of the Linux flavor you use, the following configurations are required:

  • Skonfiguruj klienta NTP, aby uniknąć problemów z przechyleniem czasu.Configure an NTP client to avoid issues with time skew.
  • Skonfiguruj wpisy DNS klienta systemu Linux na potrzeby rozpoznawania nazw.Configure DNS entries of the Linux client for name resolution.
    Ta konfiguracja musi zawierać rekord "A" (dalej) oraz rekord PTR (reverse).This configuration must include the “A” (forward) record and the PTR (reverse) record .
  • W przypadku przyłączania do domeny Utwórz konto komputera dla klienta systemu Linux w Active Directory docelowej (który jest tworzony podczas przyłączania do obszaru).For domain join, create a computer account for the Linux client in the target Active Directory (which is created during the realm join command).

    Uwaga

    $SERVICEACCOUNTZmienna użyta w poniższych poleceniach powinna być kontem użytkownika z uprawnieniami lub delegowaniem w celu utworzenia konta komputera w jednostce organizacyjnej.The $SERVICEACCOUNT variable used in the commands below should be a user account with permissions or delegation to create a computer account in the targeted Organizational Unit.

Konfiguracja RHEL 8RHEL 8 configuration

W tej sekcji opisano konfiguracje RHEL wymagane w przypadku szyfrowania Kerberos NFSv 4.1 i Dual Protocol.This section describes RHEL configurations required for NFSv4.1 Kerberos encryption and dual protocol.

W przykładach w tej sekcji użyto następującej nazwy domeny i adresu IP:The examples in this section use the following domain name and IP address:

  • Nazwa domeny: contoso.comDomain name: contoso.com
  • Prywatny adres IP: 10.6.1.4Private IP: 10.6.1.4

Konfiguracja RHEL 8 w przypadku korzystania z szyfrowania Kerberos NFSv 4.1RHEL 8 configuration if you are using NFSv4.1 Kerberos encryption

  1. Skonfiguruj /etc/resolv.conf przy użyciu odpowiedniego serwera DNS.Configure /etc/resolv.conf with the proper DNS server.

    Na przykład:For example:

    [root@reddoc cbs]# cat /etc/resolv.conf
    search contoso.com
    nameserver 10.6.1.4(private IP)

  2. Dodaj rekord klienta NFS na serwerze DNS dla strefy wyszukiwania do przodu i do tyłu DNS.Add the NFS client record in the DNS server for the DNS forward and reverse lookup zone.

  3. Aby sprawdzić system DNS, użyj następujących poleceń z klienta NFS:To verify DNS, use the following commands from the NFS client:

    # nslookup [hostname/FQDN of NFS client(s)]
    # nslookup [IP address of NFS client(s)]

  4. Zainstaluj pakiety:Install packages:

    yum update
    sudo yum -y install realmd sssd adcli samba-common krb5-workstation chrony nfs-utils

  5. Skonfiguruj klienta NTP.Configure the NTP client.

    RHEL 8 domyślnie używa chrony.RHEL 8 uses chrony by default. Postępując zgodnie z wytycznymi dotyczącymi konfiguracji w ramach Chrony zestawu, aby skonfigurować NTP.Following the configuration guidelines in Using the Chrony suite to configure NTP.

  6. Dołącz do domeny Active Directory:Join the Active Directory domain:

    sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"

    Na przykład:For example:

    sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"

    Upewnij się, że default_realm jest ustawiony na podany obszar w /etc/krb5.conf .Ensure that default_realm is set to the provided realm in /etc/krb5.conf. Jeśli nie, Dodaj ją do [libdefaults] sekcji w pliku, jak pokazano w następującym przykładzie:If not, add it under the [libdefaults] section in the file as shown in the following example:

    default_realm = CONTOSO.COM

  7. Uruchom ponownie wszystkie usługi NFS:Restart all NFS services:

    systemctl start nfs-*
    systemctl restart rpc-gssd.service

    Ponowne uruchomienie zapobiega warunkowi błędu “mount.nfs: an incorrect mount option was specified” podczas instalacji protokołu Kerberos.The restart prevents the error condition “mount.nfs: an incorrect mount option was specified” during Kerberos mount.

  8. Uruchom kinit polecenie przy użyciu konta użytkownika, aby uzyskać bilety:Run the kinit command with the user account to get tickets:

    sudo kinit $SERVICEACCOUNT@DOMAIN

    Na przykład:For example:

    sudo kinit ad_admin@CONTOSO.COM

Konfiguracja RHEL 8 w przypadku korzystania z podwójnego protokołuRHEL 8 configuration if you are using dual protocol

Poniższe kroki są opcjonalne.The following steps are optional. Kroki te należy wykonać tylko w przypadku użycia mapowania użytkownika na kliencie NFS:You need to perform the steps only if you use user mapping at the NFS client:

  1. Wykonaj wszystkie kroki opisane w konfiguracji RHEL 8, jeśli używasz sekcji Szyfrowanie Kerberos nfsv 4.1 .Complete all steps described in the RHEL 8 configuration if you are using NFSv4.1 Kerberos encryption section.

  2. Dodaj statyczny rekord DNS w pliku/etc/hosts, aby użyć w pełni kwalifikowanej nazwy domeny (FQDN) dla usługi AD, zamiast korzystać z adresu IP w pliku konfiguracji SSSD:Add a static DNS record in your /etc/hosts file to use fully qualified domain name (FQDN) for your AD, instead of using the IP address in SSSD configuration file:

    cat /etc/hosts
    10.6.1.4 winad2016.contoso.com

  3. Dodaj dodatkową sekcję dla domen w celu rozpoznania identyfikatorów z serwera usługi AD LDAP:Add an extra section for domains to resolve identifiers from AD LDAP server:

    [root@reddoc cbs]# cat /etc/sssd/sssd.conf
    [sssd]
    domains = contoso.com, contoso-ldap (new entry added for LDAP as id_provider)
    config_file_version = 2
    services = nss, pam, ssh, sudo (ensure nss is present in this list)

    [domain/contoso-ldap] (Copy the following lines. Modify as per your domain name.)
    auth_provider = krb5
    chpass_provider = krb5
    id_provider = ldap
    ldap_search_base = dc=contoso,dc=com(your domain)
    ldap_schema = rfc2307bis
    ldap_sasl_mech = GSSAPI
    ldap_user_object_class = user
    ldap_group_object_class = group
    ldap_user_home_directory = unixHomeDirectory
    ldap_user_principal = userPrincipalName
    ldap_account_expire_policy = ad
    ldap_force_upper_case_realm = true
    ldap_user_search_base = cn=Users,dc=contoso,dc=com (based on your domain)
    ldap_group_search_base = cn=Users,dc=contoso,dc=com (based on your domain)
    ldap_sasl_authid = REDDOC$ (ensure $ at the end you can get this from “klist -kte” command)
    krb5_server = winad2016.contoso.com (same as AD address which is added in /etc/hosts)
    krb5_realm = CONTOSO.COM (domain name in caps)
    krb5_kpasswd = winad2016.contoso.com (same as AD address which is added in /etc/hosts)
    use_fully_qualified_names = false

    [domain/contoso.com] (Do not edit or remove any of the following information. This information is automatically generated during the realm join process.)
    ad_domain = contoso.com
    krb5_realm = CONTOSO.COM
    realmd_tags = manages-system joined-with-adcli
    cache_credentials = True
    id_provider = ad
    krb5_store_password_if_offline = True
    default_shell = /bin/bash
    ldap_id_mapping = True
    use_fully_qualified_names = True
    fallback_homedir = /home/%u@%d
    access_provider = ad

  4. Upewnij /etc/nsswitch.conf się, że masz sss wpis:Ensure your /etc/nsswitch.conf has the sss entry:

    cat /etc/nsswitch.conf
    passwd: sss files systemd
    group: sss files systemd
    netgroup: sss files

  5. Uruchom ponownie sssd usługę i wyczyść pamięć podręczną:Restart the sssd service and clear cache:

    service sssd stop
    rm -f /var/lib/sss/db/*
    service sssd start

  6. Przetestuj, aby upewnić się, że klient jest zintegrowany z serwerem LDAP:Test to ensure that your client is integrated with the LDAP server:

    [root@red81 cbs]# id ldapuser1
    uid=1234(ldapuser1) gid=1111(ldapgroup1) groups=1111(ldapgroup1)

Konfiguracja UbuntuUbuntu configuration

W tej sekcji opisano konfiguracje Ubuntu wymagane w przypadku szyfrowania Kerberos NFSv 4.1 i Dual Protocol.This section describes Ubuntu configurations required for NFSv4.1 Kerberos encryption and dual protocol.

W przykładach w tej sekcji użyto następującej nazwy domeny i adresu IP:The examples in this section use the following domain name and IP address:

  • Nazwa domeny: contoso.comDomain name: contoso.com
  • Prywatny adres IP: 10.6.1.4Private IP: 10.6.1.4
  1. Skonfiguruj /etc/resolv.conf przy użyciu odpowiedniego serwera DNS:Configure /etc/resolv.conf with the proper DNS server:

    root@ubuntu-rak:/home/cbs# cat /etc/resolv.conf
    search contoso.com
    nameserver <private IP address of DNS server>

  2. Dodaj rekord klienta systemu plików NFS na serwerze DNS dla strefy wyszukiwania do przodu i do tyłu DNS.Add NFS client record in the DNS server for the DNS forward and reverse lookup zone.

    Aby sprawdzić system DNS, użyj następujących poleceń z klienta NFS:To verify DNS, use the following commands from the NFS client:

    # nslookup [hostname/FQDN of NFS client(s)]
    # nslookup [IP address of NFS client(s)]

  3. Zainstaluj pakiety:Install packages:

    apt-get update
    apt-get install -y realmd packagekit sssd adcli samba-common chrony krb5-user nfs-common

    Po wyświetleniu monitu wprowadź wartość wejściową $DOMAIN.NAME (na przykład używając wielkiej litery CONTOSO.COM ) jako domyślnego obszaru protokołu Kerberos.When prompted, input $DOMAIN.NAME (using uppercase, for example, CONTOSO.COM) as the default Kerberos realm.

  4. Uruchom ponownie usługę rpc-gssd.service :Restart the service rpc-gssd.service:

    sudo systemctl start rpc-gssd.service

  5. Ubuntu 18,04 domyślnie używa chrony.Ubuntu 18.04 uses chrony by default. Zgodnie z zaleceniami dotyczącymi konfiguracji w Ubuntu Bionic: używanie chrony do KONFIGUROWANIA NTP.Following the configuration guidelines in Ubuntu Bionic: Using chrony to configure NTP.

  6. Dołącz do domeny Active Directory:Join the Active Directory domain:

    sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"

    Na przykład:For example:
    sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"

  7. Wykonaj kinit z użytkownikiem, aby uzyskać bilety:Perform kinit with the user to get tickets:

    sudo kinit $SERVICEACCOUNT

    Na przykład:For example:
    sudo kinit ad_admin

Konfiguracja Ubuntu w przypadku korzystania z podwójnego protokołuUbuntu configuration if you are using dual protocol

Poniższe kroki są opcjonalne.The following steps are optional. Kroki te należy wykonać tylko wtedy, gdy chcesz użyć mapowania użytkownika na kliencie NFS:You need to perform the steps only if you want to use user mapping at the NFS client:

  1. Uruchom następujące polecenie, aby uaktualnić zainstalowane pakiety:Run the following command to upgrade the installed packages:
    sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd

    W poniższym przykładzie zastosowano przykładowe wartości.The following example uses sample values. Gdy polecenie monituje o dane wejściowe, należy podać dane wejściowe w oparciu o środowisko.When the command prompts you for input, you should provide input based on your environment.

    base dc=contoso,dc=com uri ldap://10.20.0.4:389/ ldap_version 3 rootbinddn cn=admin,cn=Users,dc=contoso,dc=com pam_password ad

  2. Uruchom następujące polecenie, aby ponownie uruchomić i włączyć usługę:Run the following command to restart and enable the service:

    sudo systemctl restart nscd && sudo systemctl enable nscd

Poniższy przykład wysyła zapytanie do serwera LDAP AD z klienta Ubuntu LDAP dla użytkownika LDAP ‘hari1’ :The following example queries the AD LDAP server from Ubuntu LDAP client for an LDAP user ‘hari1’:

root@cbs-k8s-varun4-04:/home/cbs# getent passwd hari1
hari1:*:1237:1237:hari1:/home/hari1:/bin/bash

Następne krokiNext steps