Linux 上的 Postfix/Samba 使用 OS X 伺服器中的 LDAP

Linux 上的 Postfix/Samba 使用 OS X 伺服器中的 LDAP

在一個專案中,我需要使用儲存在基於 LDAP 的 Mac 伺服器上的使用者資料庫來使用 postfix+courier 和 samba 建立郵件伺服器。你能告訴我是否有人做到了或是否可能(理論上應該是)。如果你能給我一個提示,我會在餘下的日子裡感謝你:)

先致謝

答案1

看起來後綴,導遊, 和森巴舞所有都支援從 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 選單下的首選項,而不是工具列中的首選項標籤);啟用該功能後,選擇一個用戶,然後選擇右側的「檢查器」選項卡,並尋找「Native」(又稱dsAttrTypeNative)屬性以查看用戶記錄如何儲存在LDAP 中(注意:您可以透過點擊來簡化視圖)選項按鈕,並關閉除「顯示本機屬性」之外的所有內容)。

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

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

最後,您可以以crypt 形式儲存使用者的密碼(Workgroup Manager 中的「使用者的進階」標籤下有一個選項)—更要避免這種情況,因為這表示客戶端和Linux 伺服器之間的密碼是未加密的(除非您使用 SSL),以及任何具有 LDAP 網域讀取權限的人都容易受到字典攻擊。

相關內容