Konfigurasikan klien NFS untuk Azure NetApp Files

Konfigurasi klien NFS yang dijelaskan dalam artikel ini adalah bagian dari penyiapan saat Anda mengonfigurasi enkripsi NFSv4.1 Kerberos atau membuat volume protokol ganda atau NFSv3/NFSv4.1 dengan LDAP. Berbagai macam distribusi Linux tersedia untuk digunakan dengan Azure NetApp Files. Artikel ini menjelaskan konfigurasi untuk dua lingkungan yang lebih umum digunakan: RHEL 8 dan Ubuntu 18.04.

Persyaratan dan pertimbangan

Terlepas dari jenis Linux yang Anda gunakan, konfigurasi berikut diperlukan:

  • Konfigurasikan klien NTP untuk menghindari masalah dengan penyimpangan waktu.
  • Konfigurasikan entri DNS klien Linux untuk resolusi nama.
    Konfigurasi ini harus menyertakan catatan “A” (forward) dan record PTR (reverse).
  • Untuk bergabung dengan domain, buat akun komputer untuk klien Linux di Direktori Aktif target (yang dibuat selama perintah bergabung dengan realm).

    Catatan

    Variabel $SERVICEACCOUNT ​​yang digunakan dalam perintah di bawah ini harus berupa akun pengguna dengan izin atau delegasi untuk membuat akun komputer di Unit Organisasi yang ditargetkan.

Konfigurasi RHEL 8

Bagian ini menjelaskan konfigurasi RHEL yang diperlukan untuk enkripsi NFSv4.1 Kerberos dan protokol ganda.

Contoh di bagian ini menggunakan nama domain dan alamat IP berikut:

  • Nama domain: contoso.com
  • IP Pribadi: 10.6.1.4

Konfigurasi RHEL 8 jika Anda menggunakan enkripsi NFSv4.1 Kerberos

  1. Konfigurasikan /etc/resolv.conf dengan server DNS yang tepat.

    Contohnya:

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

  2. Tambahkan catatan klien NFS di server DNS untuk zona pencarian maju dan mundur DNS.

  3. Untuk memverifikasi DNS, gunakan perintah berikut dari klien NFS:

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

  4. Instal paket:

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

  5. Konfigurasi klien NTP.

    RHEL 8 menggunakan chrony secara default.

  6. Bergabung dengan domain Direktori Aktif:

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

    Contohnya:

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

    Pastikan default_realm ditetapkan ke realm yang disediakan di /etc/krb5.conf. Jika tidak, tambahkan di bagian [libdefaults] dalam file seperti yang ditunjukkan pada contoh berikut:

    [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. Mulai ulang semua layanan NFS:

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

    Mulai ulang mencegah kondisi kesalahan “mount.nfs: an incorrect mount option was specified” selama pemasangan Kerberos.

  8. Jalankan perintah kinit dengan akun pengguna untuk mendapatkan tiket:

    sudo kinit $SERVICEACCOUNT@DOMAIN

    Contohnya:

    sudo kinit ad_admin@CONTOSO.COM

Konfigurasi RHEL 8 jika Anda menggunakan protokol ganda

Langkah-langkah berikut ini bersifat opsional. Anda perlu melakukan langkah-langkah tersebut hanya jika Anda menggunakan pemetaan pengguna di klien NFS:

  1. Selesaikan semua langkah yang dijelaskan di bagian konfigurasi RHEL 8 jika Anda menggunakan enkripsi NFSv4.1 Kerberos.

  2. Tambahkan catatan DNS statis di file /etc/hosts Anda untuk menggunakan nama domain yang sepenuhnya memenuhi syarat (FQDN) untuk AD, alih-alih menggunakan alamat IP dalam file konfigurasi SSSD:

    cat /etc/hosts
    10.6.1.4 winad2016.contoso.com

  3. Tambahkan bagian tambahan untuk domain guna menyelesaikan pengidentifikasi dari server 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

    Dalam konfigurasi [domain/contoso-ldap] di atas:

    • id_provider diatur ke ldap dan ad tidak.
    • Konfigurasi telah menentukan basis pencarian serta kelas pengguna dan grup untuk pencarian.
    • ldap_sasl_authid adalah nama akun mesin dari klist -kte.
    • use_fully_qualified_names diatur ke false. Pengaturan ini berarti konfigurasi ini digunakan saat nama pendek digunakan.
    • ldap_id_mapping TIDAK ditentukan, yang di-default ke false.

    Konfigurasi realm join dihasilkan oleh klien dan terlihat seperti ini:

    [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

    Dalam konfigurasi [domain/contoso.com] di atas:

    • id_provider diatur ke ad.
    • ldap_id_mapping diatur ke true. Ini menggunakan ID yang dihasilkan SSSD. Sebagai alternatif, Anda dapat mengatur nilai ini ke false jika Anda ingin menggunakan UID POSIX untuk SEMUA gaya nama pengguna. Anda dapat menentukan nilai berdasarkan konfigurasi klien Anda.
    • use_fully_qualified_names adalah true. Pengaturan ini berarti user@CONTOSO.COM akan menggunakan konfigurasi ini.
  4. Pastikan /etc/nsswitch.conf Anda memiliki entri sss:

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

  5. Mulai ulang layanan sssd dan hapus cache:

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

  6. Uji untuk memastikan bahwa klien Anda terintegrasi dengan server LDAP:

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

Konfigurasi Ubuntu

Bagian ini menjelaskan konfigurasi Ubuntu yang diperlukan untuk enkripsi NFSv4.1 Kerberos dan protokol ganda.

Contoh di bagian ini menggunakan nama domain dan alamat IP berikut:

  • Nama domain: contoso.com
  • IP Pribadi: 10.6.1.4
  1. Konfigurasikan /etc/resolv.conf dengan server DNS yang tepat:

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

  2. Tambahkan catatan klien NFS di server DNS untuk zona pencarian maju dan mundur DNS.

    Untuk memverifikasi DNS, gunakan perintah berikut dari klien NFS:

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

  3. Instal paket:

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

    Saat diminta, masukkan $DOMAIN.NAME (menggunakan huruf besar, misalnya, CONTOSO.COM) sebagai realm Kerberos default.

  4. Mulai ulang layanan rpc-gssd.service:

    sudo systemctl start rpc-gssd.service

  5. Ubuntu 18.04 menggunakan chrony secara default. Ikuti panduan konfigurasi di Ubuntu Bionic: Menggunakan chrony untuk mengonfigurasi NTP.

  6. Bergabung dengan domain Direktori Aktif:

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

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

  7. Lakukan kinit dengan pengguna untuk mendapatkan tiket:

    sudo kinit $SERVICEACCOUNT

    Contohnya:
    sudo kinit ad_admin

Konfigurasi Ubuntu jika Anda menggunakan protokol ganda

Langkah-langkah berikut ini bersifat opsional. Anda perlu melakukan langkah-langkah tersebut hanya jika Anda ingin menggunakan pemetaan pengguna di klien NFS:

  1. Jalankan perintah berikut untuk meningkatkan paket yang diinstal:
    sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd

    Contoh berikut menggunakan nilai sampel. Ketika perintah meminta Anda untuk memberikan input, Anda harus memberikan input berdasarkan lingkungan Anda.

    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. Pastikan file /etc/nsswitch.conf Anda memiliki entri ldap berikut:
    passwd: compat systemd ldap
    group: compat systemd ldap

  3. Jalankan perintah berikut untuk memulai ulang dan mengaktifkan layanan:

    sudo systemctl restart nscd && sudo systemctl enable nscd

Contoh berikut membuat kueri server AD LDAP dari klien LDAP Ubuntu untuk pengguna LDAP ‘hari1’:

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

Mengonfigurasi dua VM dengan nama host yang sama untuk mengakses volume NFSv4.1

Bagian ini menjelaskan bagaimana Anda dapat mengonfigurasi dua VM yang memiliki nama host yang sama untuk mengakses volume Azure NetApp Files NFSv4.1. Prosedur ini dapat berguna saat Anda melakukan pengujian pemulihan bencana (DR) dan memerlukan sistem pengujian dengan nama host yang sama dengan sistem DR utama. Prosedur ini hanya diperlukan jika Anda memiliki nama host yang sama pada dua VM yang mengakses volume Azure NetApp Files yang sama.

NFSv4.x mengharuskan setiap klien untuk mengidentifikasi dirinya ke server dengan string unik. Status buka dan kunci file yang dibagikan antara satu klien dan satu server dikaitkan dengan identitas ini. Untuk mendukung pemulihan status NFSv4.x yang kuat dan migrasi status transparan, string identitas ini tidak boleh berubah di seluruh reboot klien.

  1. Tampilkan string nfs4_unique_id pada klien VM dengan menggunakan perintah berikut:

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

    Untuk memasang volume yang sama pada VM tambahan dengan nama host yang sama, misalnya sistem DR, buat nfs4_unique_id sehingga dapat mengidentifikasi dirinya secara unik ke layanan NFS Azure NetApp Files. Langkah ini memungkinkan layanan untuk membedakan antara dua VM dengan nama host yang sama dan mengaktifkan pemasangan volume NFSv4.1 pada kedua VM.

    Anda perlu melakukan langkah ini pada sistem pengujian DR saja. Agar konsistensi, Anda dapat mempertimbangkan untuk menerapkan pengaturan unik pada setiap komputer virtual yang terlibat.

  2. Pada sistem DR pengujian, tambahkan baris berikut ke file nfsclient.conf, biasanya terletak di /etc/modprobe.d/:

    options nfs nfs4_unique_id=uniquenfs4-1

    String uniquenfs4-1 dapat berupa string alfanumerik apa pun, asalkan unik di seluruh VM yang akan dihubungkan ke layanan.

    Periksa dokumentasi distribusi Anda tentang cara mengonfigurasi pengaturan klien NFS.

    Reboot VM agar perubahan diterapkan.

  3. Pada sistem DR pengujian, verifikasi bahwa nfs4_unique_id telah ditetapkan setelah reboot VM:

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

  4. Pasang volume NFSv4.1 pada kedua VM seperti biasa.

    Kedua VM dengan nama host yang sama sekarang dapat memasang dan mengakses volume NFSv4.1.

Langkah berikutnya