Linux

在 Linux 上使用來自 OS X 伺服器的 LDAP 的 Postfix/Samba

  • December 24, 2010

在一個項目中,我需要使用儲存在基於 Mac 伺服器的 LDAP 上的使用者數據庫來使用 postfix+courier 和 samba 創建郵件伺服器。你能告訴我是否有人做過這個或者是否有可能(理論上應該是)。如果你能給我一個提示,我會在我剩下的日子裡感謝你:)

提前致謝

似乎postfixCourierSamba都支持從 LDAP 中提取使用者資訊。

您需要知道 OS X 伺服器的 LDAP 搜尋庫(您可以在伺服器管理 -> 側邊欄中的打開目錄模組 -> 工具欄中的概覽中找到它)——它通常是 LDAPspeak 中伺服器的完整域名(例如 macserver.example.com 將是 dc=macserver,dc=example,dc=com);使用者帳戶將在 cn=users,searchbase 下(例如 cn=users,dc=macserver,dc=example,dc=com)。

使用者屬性映射應該相當簡單,因為 OS X 遵循 unix 標準 (RFC 2307)。如果您確實需要查看使用者的 LDAP 屬性以確定如何配置服務,請使用 Workgroup Manager,在應用程序首選項中啟用其“所有記錄”選項卡和檢查器(即 Workgroup Manager 菜單下的首選項,而不是工具欄中的首選項選項卡);啟用該功能後,選擇一個使用者,然後選擇右側的 Inspector 選項卡,並查找“Native”(又名 dsAttrTypeNative)屬性以查看使用者記錄如何儲存在 LDAP 中(注意:您可以通過點擊簡化視圖選項按鈕,並關閉除“顯示本機屬性”之外的所有內容)。

您可能遇到的最大問題是,預設情況下,OS X 的 Open Directory 不會以“標準”形式(LDAP 中使用者記錄中的 unix crypt 形式)儲存使用者密碼,因此您可能無法配置Courier 和 Samba 驗證使用者密碼。OD 通常通過 Kerberos 或基於 SASL 的密碼伺服器對使用者進行身份驗證。如果您能弄清楚如何配置 Kerberos(並且客戶端軟體/配置支持它),那麼您的狀態就很好。我懷疑 Courier 或 Samba 是否知道如何針對密碼服務進行身份驗證,但我可能是錯的(如果我錯了,我很想知道——請留下評論並提供指向更多資訊的指針!)。

如果這些都不可能,另一種選擇是將伺服器配置為通過 LDAP 綁定進行身份驗證(即,他們通過嘗試使用密碼來驗證與 OD 伺服器的 LDAP 連接來檢查使用者密碼)——盡可能避免這種情況,因為它’d 要求密碼以明文形式從客戶端發送到 Linux 伺服器,以及從 Linux 伺服器到 OD LDAP 伺服器(對於 IMAP 和 LDAP,使用 SSL 可以避免此問題,但對於 SMB 則不行;此外,最近的 SMB 客戶端將拒絕以明文形式發送密碼)。(而且我不知道 Courier 或 Samba 是否支持這一點。)

最後,您可以以加密形式儲存使用者的密碼(在 Workgroup Manager 中,在使用者的“高級”選項卡下有一個選項)——更避免這種情況,因為這意味著密碼在客戶端和 Linux 伺服器之間是未加密的(除非您使用 SSL),並且容易受到任何對 LDAP 域具有讀取權限的人的字典攻擊。

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