Linux 上的 Postfix/Samba 使用来自 OS X 服务器的 LDAP

Linux 上的 Postfix/Samba 使用来自 OS X 服务器的 LDAP

在一个项目中,我需要使用存储在基于 LDAP 的 Mac Server 上的用户数据库来使用 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 属性以了解如何配置服务,请使用工作组管理器,在应用程序首选项中启用其“所有记录”选项卡和检查器(即工作组管理器菜单下的首选项,而不是工具栏中的首选项选项卡);启用该选项后,选择一个用户,然后选择右侧的检查器选项卡,并查找“本机”(又名 dsAttrTypeNative)属性以查看用户记录如何存储在 LDAP 中(注意:您可以通过单击选项按钮并关闭除“显示本机属性”之外的所有内容来简化视图)。

您可能遇到的最大症结是,默认情况下,OS X 的 Open Directory 不会以“标准”形式(LDAP 中用户记录中的 unix crypt 形式)存储用户密码,因此您可能无法配置 Courier 和 Samba 来验证用户密码。OD 通常通过 Kerberos 或基于 SASL 的密码服务器对用户进行身份验证。如果您能弄清楚如何配置 Kerberos(并且客户端软件/配置支持它),那么您就没问题了。我怀疑 Courier 或 Samba 是否知道如何针对密码服务进行身份验证,但我可能是错的(如果我错了,我很想知道——请留下评论并提供更多信息!)。

如果这两种方法都不可能,另一种选择是将服务器配置为通过 LDAP 绑定进行身份验证(即,他们通过尝试使用密码来验证与 OD 服务器的 LDAP 连接来检查用户密码)——尽可能避免这种情况,因为它需要密码以纯文本形式从客户端发送到 Linux 服务器,并从 Linux 服务器发送到 OD LDAP 服务器(使用 SSL 可以避免 IMAP 和 LDAP 的这个问题,但不能避免 SMB 的这个问题;此外,最近的 SMB 客户端将拒绝以纯文本形式发送密码)。(我不知道 Courier 或 Samba 是否支持这一点。)

最后,你可以以加密形式存储用户的密码(工作组管理器中有一个选项,在用户的高级选项卡下)——更应该避免这样做,因为这意味着客户端和 Linux 服务器之间的密码是未加密的(除非你使用 SSL),并且任何具有 LDAP 域读取权限的人都容易受到字典攻击。

相关内容