Mac-Osx

macOS High Sierra 問題掛載 Kerberized NFSv4 共享

  • February 21, 2019

我正在為 LDAP/Kerberos 使用 FreeIPA,並且為儲存設備(Dell/EMC UnityVSA VM)創建了一個主體。我已經使用 IPA 中的 keytab 設置了 VSA,我還在 VSA 中設置了 LDAP 配置並創建了一個支持 Kerberized NFS 共享的 NAS。IPA 和 VSA 都沒有報告任何問題,而且名義上看起來還不錯。

從 macOS 客戶端(High Sierra),當伺服器上的 Kerberos 被禁用時,我可以掛載 NFSv4 共享(所以基礎工作)。但是,當我為該共享的安全性指定 Kerberos 時,我無法連接(“權限被拒絕”)。

我用來掛載的命令是:

sudo mount_nfs -vv -o sec=krb5,vers=4 <storage-server>:/test ~/test

輸出是:

mount <storage-server>:/test on /Users/<user>/test
mount flags: 0x0
socket: type:any,nomntudp
file system locations:
/test
 <storage-server>
   inet <ip of storage server>
NFS options:     fg,retrycnt=1,vers=4,hard,nointr,noresvport,conn,callback,negnamecache,nonamedattr,acl,noaclonly,nocallumnt,locks,quota,rsize=32768,wsize=32768,readahead=16,dsize=32768,nordirplus,nodumbtimr,timeo=10,retrans=10,maxgroups=16,acregmin=5,acregmax=60,acdirmin=5,acdirmax=60,deadtimeout=0,nomutejukebox,noephemeral,nonfc,sec=krb5
mount_nfs: can't mount /test from <storage-server> onto <mount-point>:    Permission denied

我能夠從客戶端的 KDC 獲得一張票。klist在我嘗試連接到 NFS 共享後,該命令顯示以下輸出,其中第二個條目是 VSA(儲存伺服器)的 IPA 主體。

Credentials cache: API:A2FC2CF2-BA23-CE06-BC50-D5CA1180C946
       Principal: admin@<REALM>

 Issued                Expires               Principal
Feb 20 21:13:07 2019  Feb 21 21:12:46 2019  krbtgt/<REALM>@<REALM>
Feb 20 21:18:12 2019  Feb 21 21:12:46 2019  nfs/<storage-server>.<domain>@<REALM>

我客戶端上的 /etc/krb5.conf 文件如下所示:

[libdefaults]
default_realm = <REALM>
dns_lookup_realm = false
dns_lookup_kdc = true
rdns = false
ticket_lifetime = 24h
forwardable = true
udp_preference_limit = 0
default_ccache_name = KEYRING:persistent:%{uid}

[realms]
<REALM> = {
 kdc = tcp/<FQDN of IPA>
 admin_server = tcp/<FQDN of IPA>
}

[domain_realm]
.<domain> = <REALM>
<domain> = <REALM>
<FQDN of IPA> = <REALM>
<FQDN of storage-server> = <REALM>

順便說一句,我不能kadmin去上班。例如,命令

kadmin admin@REALM.COM

返回以下輸出:

kadmin: kadm5_init_with_password: Cannot contact any KDC for requested realm

有什麼想法我在這裡想念的嗎?我是否需要 krb5.conf 文件,或者 IPA 是否應該能夠處理 DNS 中的所有服務記錄?

更新

當我AUTH_SYS在伺服器端指定時,在 NFS 連接方面似乎也可以正常工作。

更新 2:WireShark 轉儲

下面的轉儲顯示了在上面的 mount 命令期間客戶端和 NFS 伺服器之間的 NFS 流量。第一個是客戶端,第二個是伺服器響應(下面成對繼續):

掛載期間的 Client-NFS-Server 流量

原來是 UnityVSA 上的模式規範存在問題,因此它無法正確執行 LDAP 搜尋;Kerberized NFS 現在可以工作了。

仍然不知道為什麼kadmin返回它在 macOS 上的作用。

作為記錄,/etc/krb5.conf(或 中的等效文件/Library/Preferences/...)根本不需要,DNS 負責所有繁重的工作。帶有 IPA 的 macOS 不需要特定的加密配置,開箱即用。

為了以後參考,在行為方面,即使在 macOS Ticket Viewer 中指定了 Kerberos 身份(密碼儲存在鑰匙串中),也必須顯式請求票證(如果票證未啟動但指定了身份,則票證例如,在訪問 finder 中訪問 NFS 共享時不會隱式請求)。

引用自:https://serverfault.com/questions/954893