Samba 与现有 OpenLDAP、MIT Kerberos 和 Bind9 服务集成

Samba 与现有 OpenLDAP、MIT Kerberos 和 Bind9 服务集成

我有一个运行 OpenLDAP、MIT Kerberos 和 Bind9 的网络域。现在,我希望允许某些 MS Windows 主机访问 NAS,以便用户凭据保留在我的 LDAP 和 Kerberos 基础设施中。显然,这个问题的答案似乎是 Samba,但经过几周的整合工作后(我在家里运行这个网络主要是为了自我训练,所以我每天不能投入超过几个小时) ,将 Samba 与我的环境集成起来似乎太复杂了。

此时,唯一有效的集成选项是以 AD 模式设置 Samba(它带有自己的 LDAP 和 DNS,但应与 MIT Kerberos 集成),然后解决我的 LDAP 和 DNS 信息与 Samba 的集成通过同步脚本。我认为这个选项非常容易出错并且消耗资源。

我相信我的网络设置非常标准,那么,在这种情况下,哪种是与 MS Windows 主机实现文件共享的常用方法呢?我觉得我在大局中错过了一些东西。也许 Samba 不是合适的解决方案?

答案1

经过大量不成功的集成工作后,我得出的结论是,目前我想要的东西是不可能的。其他一些人在类似的场景中也得出了相同的结论[1][2]。 Andre Bartlett(Samba 团队身份验证开发人员)的以下回答明确指出身份验证委托选项仅限于 AD 或 Samba 域 [3]:

[...]

我有一个关于 Samba4 以及使用 Cyrus SASL 将身份验证委托给外部 LDAP 服务器的可能性的问题。

[...]

不,这是不可能的。Samba 只能将身份验证委托给 AD 或 Samba 域,而不能委托给其他 LDAP 服务器或 SASL,因为我们的身份验证协议不会泄露明文密码。AD 和 Samba 域支持 NTLM 的直通机制,我们可以接受 Kerberos 服务器颁发的 Kerberos 票证。'

要成为 AD DC,您需要成为密码的真实来源。我只能建议您进行相反的安排,即您的 OpenLDAP 服务器与 Samba AD DC 通信。

我还尝试将 Samba 部署为域控制器,却发现它只使用自己的内部 LDAP 发行版(即没有与我正在运行的 LDAP 集成)[4],并且 MIT Kerberos 支持非常有限...[5 ]

我也许能够以牺牲密码机密性为代价来启用 PAM 身份验证 [6],但这对我来说不是一个选择。

我将保留这个问题,并且很高兴听到任何人关于这个问题的成功故事。

[1]https://serverfault.com/questions/644145/ubuntu-server-samba-pam-apple-opendirectory [2]https://serverfault.com/questions/264421/samba-file-server-pam-berkeley-db-or-samba-pam [3]https://lists.samba.org/archive/samba/2015-March/189871.html [4]https://wiki.samba.org/index.php/FAQ#Is_It_Planned_to_Support_OpenLDAP_as_Back_End_for_Samba_AD.3F [5] 似乎主要的 Linux 发行版都维护仅支持 Heimdal Kerberos 的 Samba 软件包。我已经发布了我编写的 Dockerfile,用于构建具有 MIT Kerberos 支持的 Samba。如果您需要此任务的帮助,可以从以下存储库中查看它:https://github.com/glalejos/docker-debian-samba-mit-kerberos [6]https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html#OBEYPAMRESTRICTIONS

相关内容