追求真正的 Active Directory 集成

追求真正的 Active Directory 集成

在您嘲笑我说“如果您想要 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,原为 Likewise-Open)
  3. SSSD+SELinux

Centrify ……太丑了。我从来都不是它的忠实粉丝。另外,就我公司的需求而言,我们不能使用 Centrify-Express,所以它不是免费的,也没有无限许可。然而,这是我们找到的最佳解决方案,我迫切希望找到其他解决方案。

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

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

我考虑过的其他临时解决方案包括使用 Puppet(我们使用的)将 /etc/password、shadow、group 文件推送到端点,但这需要开发,它非常间接,而且我可以看到事情会变得很糟糕。更好的选择是将 SSSD+SELinux 添加到 Puppet 想法中。虽然这会简化灾难,但它仍然是一场灾难。

我遗漏了什么,您正在使用什么,以及我还没有考虑到的解决 Linux AD 集成难题的“新热点”是什么?

答案1

您的解决方案可以是 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 能够按服务器粒度发现所有这些覆盖。

答案2

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

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

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

答案3

Redhat 产品在这里有详细介绍:
关于 Linux 服务器的 Active Directory 身份验证的常识?

在我最近的安装中,这是通过 SSSD(内置)和 ldap 或 sssd.conf 组过滤器完成的。

您的 Linux 用户到底需要什么在系统上?

答案4

winbind + samba + kerberos 怎么样?

  • 通过 AD 凭证进行身份验证(让用户进门)

已检查

  • 验证后授权(授予用户访问系统各个区域的权限)

已检查

  • 审计(能够将用户操作与其 AD 凭证联系起来)

/var/log/secure? 已检查

  • 支持 AD 组(不仅仅是普通 LDAP 并且必须在系统上添加/删除单个用户)

它允许本地群组中的广告组或广告用户,已选中

  • 不是基于 AD 信任的重复/镜像身份源(我不需要两个庞大的系统)

freeipa 不是必需的,已检查

相关内容