追求真正的 Active Directory 集成

Art*_*ers 4 linux active-directory likewise-open sssd

在你嘲笑我说“如果你想要 Active Directory,使用 Windows”或告诉我使用 Google 之前,先听我说。

我的公司非常依赖 AD。不,我们在这一点上与之结婚,作为财富 10 强公司,这并没有改变。然而,我们的环境中有很多 *nix 系统(主要是 RHEL 和 SLES),而且我还没有找到一个很好的机制来与作为身份源的 Active Directory 集成。至少,我需要一些东西来提供以下内容:

  1. 通过 AD 凭据进行身份验证(让用户进门)
  2. 授权一旦通过身份验证(授予用户访问系统区域的权限)
  3. 审计(能够将用户操作与其 AD 凭据联系起来)
  4. 支持 AD 组(不仅仅是普通 LDAP 并且必须在系统上添加/删除个人用户)
  5. 不是基于 AD 信任的重复/镜像身份源(我不需要两个庞大的系统)

我发现的最佳解决方案如下:

  1. 集中
  2. PowerBroker Open(PBIS Open,以前的 Likely-Open)
  3. SSSD+SELinux

集中。. . 只是丑陋。我从来都不是真正的粉丝。另外,为了我公司的需要,我们不能使用 Centrify-Express,所以它不是免费的,也没有无限制的许可证。然而,这是我们找到的最好的解决方案,我很想找到别的东西。

PBIS Open 是我所倾向的。这是 VMware 在 vShield 后端使用的,并且运行良好。它只需要几个命令就可以设置,它支持 AD 组,并且没有辅助身份管理系统 - 它直接与 AD 对话。我不走这条路的唯一原因是我喜欢本机解决方案,如果有更好的方法来做到这一点并且已经包含在现代发行版中,我完全赞成。

SSSD+SELinux 听起来不错。设置起来很麻烦,但它是灵活的、原生的,并且受到大多数现代发行版的支持。它唯一缺乏的(据我所知)是对 AD 组的支持。许多文章建议利用 FreeIPA 或类似的东西来添加此功能,但进一步阅读后,这违反了要求 5,并且基本上创建了一个中间人身份服务。我对基本上复制 AD 或建立对辅助身份服务的信任不感兴趣。

我扔掉的其他 kludge 选项包括使用 Puppet(我们使用的)将 /etc/password、shadow、group 文件推送到端点,但这需要开发,这是非常间接的,我可以看到一些事情很糟糕。更好的选择是将 SSSD+SELinux 添加到 Puppet 的想法中。虽然它会简化灾难,但它仍然是一场灾难。

我错过了什么,你在用什么,还有什么是我没有考虑到的解决 Linux AD 集成头痛的“新热点”?

abb*_*bra 7

您的解决方案是 FreeIPA 或 Centrify/PowerBroker。FreeIPA 是标准 RHEL 订阅的一部分,因此已经可以节省一些费用。

FreeIPA 可以在所有用户和组都可以来自 Active Directory 的模式下运行。您只会将这些用户和组映射到 FreeIPA 中的 POSIX 特定环境,例如 SUDO 规则、公共 SSH 密钥、基于主机的访问控制定义、SE Linux 上下文分配等。为此,您需要将某些 AD 用户/组映射到 FreeIPA 中的某些组,但这不是信息的重复,而是使用非 AD 特定的部分对其进行修改。

FreeIPA 实现与 Active Directory 的兼容性的方式是将自己呈现为与 Active Directory 兼容的森林。允许AD用户通过跨林信任使用FreeIPA资源就足够了,但还不足以允许FreeIPA用户访问信任另一端的Windows系统。你似乎对第一部分感兴趣,所以这应该没问题。

有了 FreeIPA 4.1 已经是 RHEL 7.1 beta 的一部分(希望 RHEL 7.1 将“很快”出来),我们有一个强大的机制来保持 FreeIPA 中 AD 用户和组的覆盖,SSSD 能够发现所有这些每个服务器的粒度。


jhr*_*zek 5

在谈论 SSSD 时,我真的很想听听您所说的“真正的 AD 组”是什么意思。较新版本的 SSSD 不需要组具有 POSIX 属性,并且如果使用 AD 提供程序,则主要从 TokenGroups 读取组成员身份。

此外,在 RHEL-7.1(上游 1.12+)中,SSSD 获得了使用 GPO 策略进行访问控制检查的能力。

如果您有特定问题,请随时来写信给 sssd-users 列表。