Configure an NFS client for Azure NetApp Files
Az ebben a cikkben ismertetett NFS-ügyfélkonfiguráció része a beállításnak az NFSv4.1 Kerberos-titkosítás konfigurálásakor, vagy kettős protokollú kötet vagy NFSv3/NFSv4.1 LDAP használatával történő létrehozásakor. Az Azure NetApp Fileshoz számos Linux-disztribúció érhető el. Ez a cikk a leggyakrabban használt környezetek két konfigurációját ismerteti: RHEL 8 és Ubuntu 18.04.
Követelmények és szempontok
A használt Linux-íztől függetlenül a következő konfigurációk szükségesek:
- Konfiguráljon egy NTP-ügyfelet az időeltéréssel kapcsolatos problémák elkerülése érdekében.
- Konfigurálja a Linux-ügyfél DNS-bejegyzéseit a névfeloldáshoz.
Ennek a konfigurációnak tartalmaznia kell az "A" (forward) rekordot és a PTR (fordított) rekordot. - Tartományhoz való csatlakozáshoz hozzon létre egy számítógépfiókot a Linux-ügyfél számára a cél Active Directoryban (amely a tartományhoz való csatlakozás parancsa során jön létre).
Megjegyzés:
Az
$SERVICEACCOUNT
alábbi parancsokban használt változónak egy olyan felhasználói fióknak kell lennie, amely rendelkezik engedélyekkel vagy delegálással egy számítógépfiók létrehozásához a megcélzott szervezeti egységben.
RHEL 8-konfiguráció
Ez a szakasz az NFSv4.1 Kerberos-titkosításhoz és a kettős protokollhoz szükséges RHEL-konfigurációkat ismerteti.
Az ebben a szakaszban szereplő példák a következő tartománynevet és IP-címet használják:
- Tartománynév:
contoso.com
- Privát IP-cím:
10.6.1.4
RHEL 8-konfiguráció NFSv4.1 Kerberos-titkosítás használata esetén
Konfigurálja
/etc/resolv.conf
a megfelelő DNS-kiszolgálóval.Például:
[root@reddoc cbs]# cat /etc/resolv.conf
search contoso.com
nameserver 10.6.1.4(private IP)
Adja hozzá az NFS-ügyfélrekordot a DNS-kiszolgálóhoz a DNS-továbbítási és fordított keresési zónához.
A DNS ellenőrzéséhez használja az NFS-ügyfél alábbi parancsait:
# nslookup [hostname/FQDN of NFS client(s)]
# nslookup [IP address of NFS client(s)]
Csomagok telepítése:
yum update
sudo yum -y install realmd sssd adcli samba-common krb5-workstation chrony nfs-utils
Konfigurálja az NTP-ügyfelet.
Az RHEL 8 alapértelmezés szerint időrendet használ.
Csatlakozzon az Active Directory-tartományhoz:
sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"
Például:
sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"
Győződjön meg arról, hogy
default_realm
a megadott tartományra van állítva a következőben/etc/krb5.conf
: . Ha nem, adja hozzá a[libdefaults]
fájl szakaszához az alábbi példában látható módon:[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
Indítsa újra az összes NFS-szolgáltatást:
systemctl start nfs-*
systemctl restart rpc-gssd.service
Az újraindítás megakadályozza a Kerberos-csatlakoztatás során előforduló hibaállapotot
“mount.nfs: an incorrect mount option was specified”
.Futtassa a
kinit
parancsot a felhasználói fiókkal a jegyek lekéréséhez:sudo kinit $SERVICEACCOUNT@DOMAIN
Például:
sudo kinit ad_admin@CONTOSO.COM
RHEL 8-konfiguráció kettős protokoll használata esetén
Az alábbi lépések nem kötelezőek. A lépéseket csak akkor kell végrehajtania, ha az NFS-ügyfélen használja a felhasználóleképezést:
Ha NFSv4.1 Kerberos titkosítási szakaszt használ, végezze el az RHEL 8 konfigurációban leírt összes lépést.
Adjon hozzá egy statikus DNS-rekordot a /etc/hosts fájlban, hogy teljes tartománynevet (FQDN) használjon az AD-hez az SSSD konfigurációs fájlban lévő IP-cím helyett:
cat /etc/hosts
10.6.1.4 winad2016.contoso.com
Adjon hozzá egy további szakaszt a tartományokhoz az AD LDAP-kiszolgáló azonosítóinak feloldásához:
[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
A fenti konfigurációban
[domain/contoso-ldap]
:id_provider
értékre van állítva,ldap
és nemad
.- A konfiguráció keresési alapokat és felhasználói és csoportosztályokat adott meg a keresésekhez.
ldap_sasl_authid
A számítógépfiók neve a következőből:klist -kte
.use_fully_qualified_names
beállítás értéke :false
. Ez a beállítás azt jelenti, hogy a rendszer ezt a konfigurációt használja rövid név használatakor.ldap_id_mapping
NINCS megadva, amely alapértelmezés szerint afalse
.
A
realm join
konfigurációt az ügyfél hozza létre, és így néz ki:[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
A fenti konfigurációban
[domain/contoso.com]
:id_provider
beállítás értéke :ad
.ldap_id_mapping
beállítás értéke :true
. Az SSSD által létrehozott azonosítókat használja. Másik lehetőségként beállíthatja ezt az értéketfalse
, ha POSIX felhasználói azonosítókat szeretne használni minden felhasználónévstílushoz. Az értéket az ügyfélkonfiguráció alapján határozhatja meg.use_fully_qualified_names
aztrue
. Ez a beállítás azt jelenti, hogyuser@CONTOSO.COM
ezt a konfigurációt fogja használni.
Győződjön meg arról, hogy
/etc/nsswitch.conf
rendelkezik a bejegyzésselsss
:cat /etc/nsswitch.conf
passwd: sss files systemd
group: sss files systemd
netgroup: sss files
Indítsa újra a szolgáltatást, és törölje a
sssd
gyorsítótárat:service sssd stop
rm -f /var/lib/sss/db/*
service sssd start
Ellenőrizze, hogy az ügyfél integrálva van-e az LDAP-kiszolgálóval:
[root@red81 cbs]# id ldapuser1
uid=1234(ldapuser1) gid=1111(ldapgroup1) groups=1111(ldapgroup1)
Ubuntu-konfiguráció
Ez a szakasz az NFSv4.1 Kerberos-titkosításhoz és a kettős protokollhoz szükséges Ubuntu-konfigurációkat ismerteti.
Az ebben a szakaszban szereplő példák a következő tartománynevet és IP-címet használják:
- Tartománynév:
contoso.com
- Privát IP-cím:
10.6.1.4
Konfigurálás
/etc/resolv.conf
a megfelelő DNS-kiszolgálóval:root@ubuntu-rak:/home/cbs# cat /etc/resolv.conf
search contoso.com
nameserver <private IP address of DNS server>
Adja hozzá az NFS-ügyfélrekordot a DNS-kiszolgálóhoz a DNS-továbbítási és fordított keresési zónához.
A DNS ellenőrzéséhez használja az NFS-ügyfél alábbi parancsait:
# nslookup [hostname/FQDN of NFS client(s)]
# nslookup [IP address of NFS client(s)]
Csomagok telepítése:
apt-get update
apt-get install -y realmd packagekit sssd adcli samba-common chrony krb5-user nfs-common
Amikor a rendszer kéri, a bemenet
$DOMAIN.NAME
(példáulCONTOSO.COM
nagybetűvel) az alapértelmezett Kerberos-tartomány.Indítsa újra a szolgáltatást
rpc-gssd.service
:sudo systemctl start rpc-gssd.service
Az Ubuntu 18.04 alapértelmezés szerint időrendet használ. Az Ubuntu Bionic konfigurációs irányelveit követve: Az NTP konfigurálásának időrendi beállítása.
Csatlakozzon az Active Directory-tartományhoz:
sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"
Például:
sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"
Végezze el
kinit
a felhasználóval a jegyek lekérését:sudo kinit $SERVICEACCOUNT
Például:
sudo kinit ad_admin
Ubuntu-konfiguráció kettős protokoll használata esetén
Az alábbi lépések nem kötelezőek. A lépéseket csak akkor kell végrehajtania, ha az NFS-ügyfélen szeretné használni a felhasználóleképezést:
Futtassa a következő parancsot a telepített csomagok frissítéséhez:
sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd
Az alábbi példa mintaértékeket használ. Amikor a parancssor bemenetet kér, a környezete alapján kell megadnia a bemenetet.
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
Győződjön meg arról, hogy a
/etc/nsswitch.conf
fájl a következőldap
bejegyzésekkel rendelkezik:
passwd: compat systemd ldap
group: compat systemd ldap
Futtassa a következő parancsot a szolgáltatás újraindításához és engedélyezéséhez:
sudo systemctl restart nscd && sudo systemctl enable nscd
Az alábbi példa lekérdezi az AD LDAP-kiszolgálót az Ubuntu LDAP-ügyfélről egy LDAP-felhasználó ‘hari1’
számára:
root@cbs-k8s-varun4-04:/home/cbs# getent passwd hari1
hari1:*:1237:1237:hari1:/home/hari1:/bin/bash
Konfiguráljon két azonos gazdagépnévvel rendelkező virtuális gépet az NFSv4.1 kötetek eléréséhez
Ez a szakasz azt ismerteti, hogyan konfigurálhat két olyan virtuális gépet, amelyek gazdaneve megegyezik az Azure NetApp Files NFSv4.1 köteteinek eléréséhez. Ez az eljárás akkor lehet hasznos, ha vészhelyreállítási (DR) tesztet végez, és olyan tesztrendszert igényel, amelynek gazdaneve megegyezik az elsődleges DR-rendszerrel. Ez az eljárás csak akkor szükséges, ha ugyanazzal a gazdagépnével rendelkezik két olyan virtuális gépen, amelyek ugyanazt az Azure NetApp Files-kötetet érik el.
Az NFSv4.x megköveteli, hogy minden ügyfél egyedi sztringgel azonosítsa magát a kiszolgálókon. Az egy ügyfél és egy kiszolgáló között megosztott fájlmegnyitási és zárolási állapot ehhez az identitáshoz van társítva. A robusztus NFSv4.x állapot-helyreállítás és a transzparens állapotmigrálás támogatása érdekében ez az identitássztring nem változhat az ügyfél újraindítása során.
A következő paranccsal jelenítse meg a
nfs4_unique_id
sztringet a virtuálisgép-ügyfeleken:# systool -v -m nfs | grep -i nfs4_unique
nfs4_unique_id = ""
Ha ugyanazt a kötetet egy másik virtuális gépre szeretné csatlakoztatni ugyanazzal a gazdagépnévvel, például a DR-rendszeren, hozzon létre egy olyan kötetet
nfs4_unique_id
, amely egyedileg azonosítja magát az Azure NetApp Files NFS szolgáltatásban. Ezzel a lépéssel a szolgáltatás különbséget tesz a két azonos gazdagépnévvel rendelkező virtuális gép között, és engedélyezheti az NFSv4.1 kötetek csatlakoztatását mindkét virtuális gépen.Ezt a lépést csak a teszt DR rendszeren kell végrehajtania. A konzisztencia érdekében érdemes lehet egyedi beállítást alkalmazni az egyes érintett virtuális gépeken.
A teszt DR rendszeren adja hozzá a következő sort a fájlhoz, amely általában a
nfsclient.conf
következő helyen/etc/modprobe.d/
található:options nfs nfs4_unique_id=uniquenfs4-1
A sztring
uniquenfs4-1
bármilyen alfanumerikus sztring lehet, amennyiben egyedi a szolgáltatáshoz csatlakoztatni kívánt virtuális gépeken.Tekintse meg a terjesztési dokumentációt az NFS-ügyfélbeállítások konfigurálásáról.
Indítsa újra a virtuális gépet a módosítás érvénybe lépéséhez.
A teszt DR rendszeren ellenőrizze, hogy
nfs4_unique_id
a virtuális gép újraindítása után be van-e állítva:# systool -v -m nfs | grep -i nfs4_unique
nfs4_unique_id = "uniquenfs4-1"
Csatlakoztassa az NFSv4.1 kötetet mindkét virtuális gépen a szokásos módon.
Az azonos gazdagépnévvel rendelkező virtuális gépek mostantól csatlakoztathatják és elérhetik az NFSv4.1 kötetet.