Linux

提供基於 LDAP 資訊的 Samba 訪問?

  • May 15, 2009

我正在嘗試設置一個伺服器,為 Windows 客戶端提供一些文件共享,我希望它與我學校已經設置的現有身份驗證框架集成。有一個 Windows LDAP 伺服器在這裡保存所有學生的資訊——我希望 Samba 對該伺服器進行身份驗證並酌情授予對共享的訪問權限。

我四處尋找指南,但我能找到的只是設置我自己的 LDAP 伺服器以供 Samba 使用的文件。我的情況有些受限:我在 LDAP 伺服器上沒有管理員權限,我需要使用該伺服器,因為我非常想為我的使用者提供一個統一的登錄(即不必讓每個人都維護一個單獨的此伺服器上的帳戶)。

我設法設置了 LDAP、Kerberos、PAM 和 NSS,以便使用者可以使用他們的 LDAP 使用者名通過 SSH 登錄,但我不知道如何讓 Samba 做同樣的事情。我聽說讓 Samba 使用 PAM 很糟糕,因為這需要禁用密碼加密。有沒有辦法在沒有任何遠端電腦上的管理員權限的情況下設置 Samba 以針對單獨的 LDAP(或 Kerberos)伺服器對使用者進行身份驗證?(這也意味著將伺服器加入 Active Directory 域幾乎是不可能的。)

我相信至少有必要讓 LDAP 伺服器上的域管理員過來輸入他們的密碼至少一次,以完成您想要的操作並將 Samba 加入域。

鑑於此,步驟應該相對簡單。取自Samba Wiki,在您的 samba 配置中設置以下內容:

* passdb backend = ldapsam:ldap://<your-hostname>
* ldap suffix = 
* ldap admin dn 

然後執行 smbpasswd -w 讓 samba 知道 admin dn 的密碼。

這裡也有一篇不錯的文章。

Samba 需要 LDAP 樹中的自定義屬性和對象來儲存 Windows 密碼雜湊和其他數據,如密碼到期。samba 原始碼分發中有一個samba.schema文件。Debian 以samba-doc.

作為 samba 伺服器上的工具,我推薦smbldap-tools。它們提供了廣泛的範例配置文件,可以很容易地適應本地設置。使用它們,您甚至可以通過 Windows 為您的使用者啟用密碼更改。

真正的問題將是您如何創建所需的密碼雜湊。它們只能從原始明文密碼生成,並且在更改密碼時必須維護。

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