使用LDAP:如何使用SSH登錄,使用autofs掛載Samba主目錄?

使用LDAP:如何使用SSH登錄,使用autofs掛載Samba主目錄?

考慮到 MacOS 和 Synology(我的 NAS)的特殊特性,我花了一些時間在 MacOS、iOS 和 Linux 網路中設定基於 LDAP 的身份驗證。 SSH 登入(SSH 金鑰等)可以運作,Samba 共用掛載也可以運作。這一切都非常繁瑣,而且我現在對 LDAP 的了解比我預想的還要多。

然而...

當我可以(至少在理論上)登入網路中的任何電腦時,我認為用戶也可以在任何地方存取相同的主目錄,這會很好。沒問題:autofs,也可以從 LDAP 管理!或者說我是這麼想的...

我正在嘗試類似以下的操作來設定 Samba 主目錄autofs

cn=*,ou=auto.home,cn=automount,cn=etc,dc=home,dc=arpa
cn: *
objectClass: automount
objectClass: top
automountInformation: -fstype=cifs,vers=3.0,domain=HOME,rw,username=&,uid=&,gid=& ://s-sy-00.local/home

一些背景:

  1. s-sy-00.local是我的 Synology NAS 主目錄所在的位置。
  2. /home是 Synology 為 中定義的使用者提供的主目錄共用的 UNC username=

當我使用 SSH 登入遠端電腦時,問題就出現了。autofs嘗試掛載使用者的主目錄,但需要使用者的密碼。我可以將密碼放入password=該行的參數中automountInformation,也可以將使用者名稱和密碼放入與參數一起傳遞的憑證檔案中credentials=。這兩種方法都會增加複雜性(automount每個使用者一個項目)和重複(在兩個不同的位置相同的使用者名稱和密碼:LDAP 和憑證檔案或LDAP 中的automountposixUser)。

有處理這個問題的標準方法嗎?我的搜尋引擎技能還沒有發現任何東西。

在我看來,有以下三種可能的解決方案:

  1. 對其他人來說這是顯而易見的,但對我來說卻不是;
  2. 使用 SSH 金鑰從 SSHFS 共用掛載每個使用者的憑證檔案(可能從 LDAP 動態產生);
  3. 使用 Kerberos 實現成熟的 SSO。

我更喜歡第 1 種:-) 我討厭 Kerberos:它似乎有點矯枉過正,而且確實相對複雜。

誰能提供一些智慧之言,讓我在新的一年有一個好的開始?

答案1

好吧,只要你在 Linux 上並且使用密碼初始登入的身份驗證,然後您可以擁有一個 PAM 模組,它將密碼儲存在核心密鑰環中,mount.cifs 可以在其中獲取它。我不能 100% 確定 cifs-utils 目前是否附帶了一個,但它確實有一個cifscreds具有相同功能的 CLI 工具。

儘管如此,我個人還是會設定 Kerberos 驗證而不是 LDAP。 (也就是說,讓LDAP 只完成目錄服務的工作。)總體而言,Kerberos 就像LDAP:從外面看起來很複雜,但當你仔細觀察時,結果發現非常簡單,除了數以百萬計的怪癖、邊緣情況和追溯到 20 世紀 80 年代的奇怪決定再次讓事情變得複雜。

它比 SMB 特定的 PAM 駭客攻擊更通用 - 相同的票證可用於存取 SMB、NFS、LDAP、HTTP、SSH...您甚至可以重複使用現有的 LDAP 伺服器作為 KDC 資料庫後端,免費複製,無需處理kprop 。

請注意,使用 mount.cifs,兩個都Kerberos 和 cifscreds 旨在在使用該multiuser選項掛載共用時使用,這為您提供類似 NFS 的行為 - 多個使用者可以存取相同的 SMB 掛載,並且核心將自動為每個 uid 使用正確的 SMB 憑證。

至於 SSH 公鑰身份驗證,您可以自動執行的操作並不多 – 要么檢索憑證文件並將其與 一起使用cifscreds,要么檢索憑證文件並將其與kinit... 一起使用,我再次認為後者更通用。

答案2

儘管我認為 @user1686 的答案是正確的,但我仍然想分享我找到的解決方案並將使用它,直到我有時間轉向 Kerberos 解決方案。

  1. 我在我調用的 NAS 上建立了一個使用者smbowner並為其分配了一個密碼。我給了smbownerNAS 管理員權限,這意味著它可以掛載 SMB 共用。

  2. 我在需要掛載 SMB 共享的電腦上建立了一個 Samba 憑證檔案。我把它放進去/etc/samba/credentials/s-sy-00,看起來像這樣:

username=smbowner
password=whatever

請注意,憑證檔案不包含網域定義。

  1. 我將 LDAP 條目更改為以下內容:
cn=*,ou=auto.home,cn=automount,cn=etc,dc=home,dc=arpa
cn: *
objectClass: automount
objectClass: top
automountInformation: -fstype=cifs,vers=3.0,domain=HOME,rw,credentials=/etc/samba/credentials/s-sy-00,uid=&,gid=& ://s-sy-00.local/&

在它的辯護中,可以說這個解決方案是有效的,儘管我不確定它在比我的環境更惡劣的環境中有多安全。

它是如何運作的?smbowner有足夠的權限在 NAS 上掛載任何共享。uid=&和參數gid=&確保本地用戶可以存取共用。稍後我會嘗試在 NAS 上設定共享的權限。

也許這對其他人有幫助。

史蒂夫

相關內容