根据 LDAP 信息提供 Samba 访问?

根据 LDAP 信息提供 Samba 访问?

我正在尝试设置一个服务器,为 Windows 客户端提供一些文件共享,并希望它与学校已经设置的现有身份验证框架集成。这里有一个 Windows LDAP 服务器,里面保存着所有学生的信息 - 我希望 Samba 能够针对该服务器进行身份验证并根据需要授予对共享的访问权限。

我到处寻找指南,但我能找到的只是设置我自己的 LDAP 服务器以供 Samba 使用的文档。我的情况有些受限:我没有 LDAP 服务器上的管理员权限,我需要使用该服务器,因为我非常想为我的用户提供统一的登录名(即不必让每个人都在此服务器上维护单独的帐户)。

我已经成功设置了 LDAP、Kerberos、PAM 和 NSS,以便用户可以使用其 LDAP 用户名通过 SSH 登录,但我不知道如何让 Samba 执行相同的操作。我听说让 Samba 使用 PAM 是不好的,因为这需要禁用密码加密。有没有办法,在没有远程计算机上的管理员权限的情况下,设置 Samba 以针对单独的 LDAP(或 Kerberos)服务器对用户进行身份验证?(这也意味着将服务器加入 Active Directory 域几乎是不可能的。)

答案1

我相信至少需要让 LDAP 服务器上的域管理员过来至少输入一次他们的密码才能完成您想要的操作并将 Samba 加入域。

鉴于此,步骤应该相对简单。摘自桑巴维基,在你的 samba 配置中设置以下内容:

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

然后运行 ​​smbpasswd -w 让 samba 知道管理员 dn 的密码。

还有一篇很好的文章这里

答案2

samba.schemaSamba 需要 LDAP 树中的自定义属性和对象来存储 Windows 密码哈希和其他数据(如密码过期)。Samba源发行版中有一个文件。Debian 将其发布在 中samba-doc

作为 Samba 服务器上的工具,我推荐smbldap 工具。它们提供了大量示例配置文件,可以轻松适应本地设置。使用它们,您甚至可以为您的用户启用通过 Windows 更改密码的功能。

真正的问题在于你如何创建所需的密码哈希值。它们只能从原始明文密码生成,并且在更改密码时必须保留。

答案3

Doug Wilson 有一篇关于使用 Kerberos 和 Active Directory 对 Samba 客户端进行身份验证的文章这里

相关内容