Konfigurace klienta NFS pro Azure NetApp Files

Konfigurace klienta NFS popsaná v tomto článku je součástí nastavení při konfiguraci šifrování Kerberos NFSv4.1 nebo vytvoření svazku s duálním protokolem nebo NFSv3/NFSv4.1 s protokolem LDAP. Pro použití se službou Azure NetApp Files je k dispozici široká škála linuxových distribucí. Tento článek popisuje konfigurace pro dvě z běžně používaných prostředí: RHEL 8 a Ubuntu 18.04.

Požadavky a důležité informace

Bez ohledu na to, kterou variantu Linuxu používáte, jsou vyžadovány následující konfigurace:

  • Nakonfigurujte klienta NTP, aby nedocházelo k problémům se nerovnoměrnou distribuci času.
  • Nakonfigurujte položky DNS klienta Linuxu pro překlad názvů.
    Tato konfigurace musí obsahovat záznam "A" (forward) a záznam PTR (reverse).
  • Pro připojení k doméně vytvořte účet počítače pro klienta s Linuxem v cílové službě Active Directory (který se vytvoří během příkazu připojení k sférě).

    Poznámka:

    Proměnná $SERVICEACCOUNT použitá v následujících příkazech by měla být uživatelským účtem s oprávněními nebo delegování k vytvoření účtu počítače v cílové organizační jednotce.

Konfigurace RHEL 8

Tato část popisuje konfigurace RHEL vyžadované pro šifrování Kerberos NFSv4.1 a duální protokol.

Příklady v této části používají následující název domény a IP adresu:

  • Název domény: contoso.com
  • Privátní IP adresa: 10.6.1.4

Konfigurace RHEL 8, pokud používáte šifrování Kerberos NFSv4.1

  1. Nakonfigurujte /etc/resolv.conf správný server DNS.

    Příklad:

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

  2. Přidejte záznam klienta SYSTÉMU SOUBORŮ NFS na server DNS pro zónu předávání a zpětného vyhledávání DNS.

  3. K ověření DNS použijte následující příkazy z klienta systému souborů NFS:

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

  4. Instalační balíčky:

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

  5. Nakonfigurujte klienta NTP.

    RHEL 8 ve výchozím nastavení používá chrony.

  6. Připojte se k doméně služby Active Directory:

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

    Příklad:

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

    Ujistěte se, že default_realm je nastavená na zadanou sféru v /etc/krb5.conf. Pokud ne, přidejte ho do oddílu [libdefaults] v souboru, jak je znázorněno v následujícím příkladu:

    [libdefaults]
        default_realm = CONTOSO.COM
        default_tkt_enctypes = aes256-cts-hmac-sha1-96
        default_tgs_enctypes = aes256-cts-hmac-sha1-96
        permitted_enctypes = aes256-cts-hmac-sha1-96
    [realms]
        CONTOSO.COM = {
            kdc = dc01.contoso.com
            admin_server = dc01.contoso.com
            master_kdc = dc01.contoso.com
            default_domain = contoso.com
        }
    [domain_realm]
        .contoso.com = CONTOSO.COM
        contoso.com = CONTOSO.COM
    [logging]
        kdc = SYSLOG:INFO
        admin_server = FILE=/var/kadm5.log
    
  7. Restartujte všechny služby NFS:

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

    Restartování zabraňuje chybovému stavu “mount.nfs: an incorrect mount option was specified” během připojení Kerberos.

  8. Spuštěním kinit příkazu s uživatelským účtem získejte lístky:

    sudo kinit $SERVICEACCOUNT@DOMAIN

    Příklad:

    sudo kinit ad_admin@CONTOSO.COM

Konfigurace RHEL 8, pokud používáte duální protokol

Následující kroky jsou volitelné. Tento postup je potřeba provést pouze v případě, že v klientovi NFS používáte mapování uživatelů:

  1. Pokud používáte část šifrování Kerberos NFSv4.1, proveďte všechny kroky popsané v konfiguraci RHEL 8.

  2. Přidejte do souboru /etc/hosts statický záznam DNS pro použití plně kvalifikovaného názvu domény (FQDN) pro vaši službu AD místo použití IP adresy v konfiguračním souboru SSSD:

    cat /etc/hosts
    10.6.1.4 winad2016.contoso.com

  3. Přidejte další oddíl pro domény pro překlad identifikátorů ze serveru AD LDAP:

    [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-ldap] V konfiguraci výše:

    • id_provider je nastavena na ldap a nikoli ad.
    • Konfigurace zadala pro vyhledávání základy vyhledávání a třídy uživatelů a skupin.
    • ldap_sasl_authid je název účtu počítače z klist -kte.
    • use_fully_qualified_names je nastavena na falsehodnotu . Toto nastavení znamená, že se tato konfigurace používá při použití krátkého názvu.
    • ldap_id_mapping není zadáno, což je výchozí hodnota false.

    Konfigurace realm join se vygeneruje klientem a vypadá takto:

    [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

    [domain/contoso.com] V konfiguraci výše:

    • id_provider je nastavena na adhodnotu .
    • ldap_id_mapping je nastavena na truehodnotu . Používá ID vygenerovaná SSSD. Tuto hodnotu false můžete také nastavit, pokud chcete pro všechny styly uživatelských jmen použít identifikátory UŽIVATELSKÉHO rozhraní POSIX. Hodnotu můžete určit na základě konfigurace klienta.
    • use_fully_qualified_names je true. Toto nastavení znamená user@CONTOSO.COM , že tuto konfiguraci použije.
  4. Ujistěte se, že sss položka /etc/nsswitch.conf obsahuje:

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

  5. sssd Restartujte službu a vymažte mezipaměť:

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

  6. Otestujte, jestli je váš klient integrovaný se serverem LDAP:

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

Konfigurace Ubuntu

Tato část popisuje konfigurace Ubuntu vyžadované pro šifrování Kerberos NFSv4.1 a duální protokol.

Příklady v této části používají následující název domény a IP adresu:

  • Název domény: contoso.com
  • Privátní IP adresa: 10.6.1.4
  1. Nakonfigurujte /etc/resolv.conf správný server DNS:

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

  2. Přidání záznamu klienta SYSTÉMU SOUBORŮ NFS na server DNS pro zónu předávání a zpětného vyhledávání DNS

    K ověření DNS použijte následující příkazy z klienta systému souborů NFS:

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

  3. Instalační balíčky:

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

    Po zobrazení výzvy zadejte jako výchozí sféru Kerberos ( $DOMAIN.NAME například CONTOSO.COMvelká písmena).

  4. Restartujte službu rpc-gssd.service:

    sudo systemctl start rpc-gssd.service

  5. Ubuntu 18.04 používá ve výchozím nastavení chrony. Postupujte podle pokynů konfigurace v Ubuntu Bionic: Použití chrony ke konfiguraci NTP.

  6. Připojte se k doméně služby Active Directory:

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

    Příklad:
    sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"

  7. Pokud chcete získat lístky, proveďte kinit s uživatelem:

    sudo kinit $SERVICEACCOUNT

    Příklad:
    sudo kinit ad_admin

Konfigurace Ubuntu, pokud používáte duální protokol

Následující kroky jsou volitelné. Tento postup je potřeba provést pouze v případě, že chcete použít mapování uživatelů v klientovi NFS:

  1. Spuštěním následujícího příkazu upgradujte nainstalované balíčky:
    sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd

    Následující příklad používá ukázkové hodnoty. Když vás příkaz vyzve k zadání, měli byste zadat vstup na základě vašeho prostředí.

    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. Ujistěte se, že soubor /etc/nsswitch.conf obsahuje následující ldap položky:
    passwd: compat systemd ldap
    group: compat systemd ldap

  3. Spuštěním následujícího příkazu restartujte službu a povolte ji:

    sudo systemctl restart nscd && sudo systemctl enable nscd

Následující příklad dotazuje server AD LDAP z klienta Ubuntu LDAP pro uživatele ‘hari1’LDAP:

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

Konfigurace dvou virtuálních počítačů se stejným názvem hostitele pro přístup ke svazkům NFSv4.1

Tato část vysvětluje, jak nakonfigurovat dva virtuální počítače se stejným názvem hostitele pro přístup ke svazkům Azure NetApp Files NFSv4.1. Tento postup může být užitečný při provádění testu zotavení po havárii (DR) a vyžaduje testovací systém se stejným názvem hostitele jako primární systém zotavení po havárii. Tento postup se vyžaduje jenom v případě, že máte stejný název hostitele na dvou virtuálních počítačích, které přistupují ke stejným svazkům Azure NetApp Files.

NFSv4.x vyžaduje, aby se každý klient identifikoval na servery s jedinečným řetězcem. K této identitě je přidružen stav otevření a uzamčení souboru sdílený mezi jedním klientem a jedním serverem. Aby bylo možné podporovat robustní obnovení stavu NFSv4.x a transparentní migraci stavu, nesmí se tento řetězec identity během restartování klienta měnit.

  1. nfs4_unique_id Pomocí následujícího příkazu zobrazte řetězec na klientech virtuálních počítačů:

    # systool -v -m nfs | grep -i nfs4_unique
    nfs4_unique_id = ""

    Pokud chcete připojit stejný svazek k dalšímu virtuálnímu počítači se stejným názvem hostitele, jako je například systém zotavení po havárii, vytvořte, nfs4_unique_id aby se mohl jednoznačně identifikovat ve službě Azure NetApp Files NFS. Tento krok umožňuje službě rozlišovat mezi těmito dvěma virtuálními počítači se stejným názvem hostitele a povolit připojení svazků NFSv4.1 na obou virtuálních počítačích.

    Tento krok musíte provést pouze v testovacím systému zotavení po havárii. Pro konzistenci můžete zvážit použití jedinečného nastavení na každém zapojeném virtuálním počítači.

  2. V testovacím systému zotavení po havárii přidejte do nfsclient.conf souboru následující řádek, obvykle umístěný v /etc/modprobe.d/:

    options nfs nfs4_unique_id=uniquenfs4-1

    Řetězec uniquenfs4-1 může být libovolný alfanumerický řetězec, pokud je jedinečný napříč virtuálními počítači, které se mají ke službě připojit.

    Projděte si dokumentaci k distribuci o tom, jak nakonfigurovat nastavení klienta NFS.

    Restartujte virtuální počítač, aby se změna projevila.

  3. V testovacím systému zotavení po havárii ověřte, že nfs4_unique_id je nastavený po restartování virtuálního počítače:

    # systool -v -m nfs | grep -i nfs4_unique
    nfs4_unique_id = "uniquenfs4-1"

  4. Připojte svazek NFSv4.1 k oběma virtuálním počítačům jako obvykle.

    Oba virtuální počítače se stejným názvem hostitele teď můžou připojit a přistupovat ke svazku NFSv4.1.

Další kroky