我有一个由大约 3-6 台 CentOS 服务器组成的网络,大约有 5-10 个用户(目前和不久的将来)。我正在寻找一种集中管理用户的解决方案。
我对它的要求是:
- Linux 身份验证(登录服务器)
- 与 Samba 集成 - 仅向 Windows 公开 Linux 文件;我不想使用此解决方案登录 Windows 计算机
- 向其他需要身份验证的服务提供 API,例如Redmine或 Alfresco
- 简单管理
尝试过 OpenLDAP,但对于我的小型网络来说似乎太复杂了。然后我安装了 RedHat 的 IdM (=FreeIPA),它安装起来很容易,管理起来也很好。它也基于 LDAP,所以我认为它会与其他播放器很好地兼容。
令人惊讶的是,IdM/FreeIPA 似乎无法与 Samba 很好地集成。此外,看来我搞错了,IdM/FreeIPA 不会将其 LDAP 数据库公开给其他服务 - 它们必须使用 Kerberized,这会使业务变得复杂...
因此,合理的解决方案似乎是回到 LDAP。我说得对吗?
但是即使使用 LDAP,我也不确定正确的方法是什么......
- OpenLDAP/389 服务器
- 带有 LDAP 后端的 Samba3,或带有内置 LDAP 的 Samba4
- https://gna.org/projects/smbldap-tools/
我甚至不确定我问的问题是否正确:)
答案1
由于第 3 点,这有点棘手。IPA 中的 LDAP 可用,但不是匿名的,因此您需要对发出查询的应用程序进行 Kerberize 或为它们提供一个通用帐户进行绑定。我见过的大多数应用程序都支持这一点。
来自 samba wiki:“请注意,您不能将 Samba4 指向您现有的 OpenLDAP 服务器并期望一切正常。”
老实说,根据要求 3 对于如此小环境的具体要求,我建议您通过 sssd 使用 Active Directory(我假设您已经拥有它)并将其作为 samba 的后端。这是最简单、最易于维护的解决方案,假设要求 3 支持它。
答案2
我会选择一些基于 LDAP 的解决方案,因为它具有灵活性和广泛的支持,而对于 GNU/Linux 世界,最好的选择是 OpenLdap。一开始,ldap 世界有点琐碎,但相当可靠。
你需要:
一个 OpenLdap 服务器,如果您需要高可用性架构,则可能需要两个(以提供者-消费者的方式),并安装 Samba 模式
配置 Samba 服务器以使用 Openldap 作为后端检索用户和组并公开一些共享
Smbdlap 工具从命令行管理(添加、编辑、删除)用户和组
我建议使用 Web GUI 来简单管理(添加、编辑、删除)用户和组 融合目录或者本地 ldap 客户端
配置和包用于在 pam 和 nss 中启用 ldap 支持以实现 GNU linux 登录。
周围有一些关于此设置的相当不错的教程。
答案3
如果您不想从头开始构建一切,您可能想尝试一下 Univention Corporate Server (UCS)。我在 Univention 工作,所以我很了解它。它是一款基于 Debian 的企业级操作系统,可很好地用作异构环境的域/身份管理。还有一个免费的“核心版”,它具有您需要的所有功能。
除其他外,它还提供:
- 通过 LDAP 和/或 Kerberos 对客户端进行身份验证
- 通过 NFS 和/或 Samba 共享(Samba 4 / AD 也可以)
- 外部服务的身份验证-详细信息请参阅下文
- 一个不错的基于 Web 的管理界面
正如 Andy 指出的那样,您通常不希望在未经身份验证的情况下(匿名)公开您的 LDAP 目录。在 LDAP 目录中创建一个特殊用户并在第三方应用程序中使用该用户在查询 LDAP 目录时进行身份验证是一种很好的做法。
Univention Wiki 中甚至还有有关 Redmine 和 Alfresco 的文章: 很棒的解决方案 - 安装 Redmine 并设置 ldap 身份验证 很酷的解决方案——Alfresco
有关 UCS 的更多信息Univention 的网站。
希望我能帮到你,Maren