有关 Linux 服务器的 Active Directory 身份验证的常识?

eww*_*ite 32 linux active-directory redhat ldap

2014 年关于 Linux 服务器和现代Windows Server 操作系统(以 CentOS/RHEL 为重点)的Active Directory 身份验证/集成的共同智慧是什么?

自从我 2004 年第一次尝试集成以来,多年来,围绕这方面的最佳实践似乎已经发生了变化。我不太确定哪种方法目前具有最大的动力。

在现场,我见过:

Winbind/Samba
直接LDAP
有时 LDAP + Kerberos
Microsoft Windows Services for Unix (SFU)
Microsoft Identity Management for Unix
NSLCD
SSSD
FreeIPA
Centrify
Powerbroker(同样 née

Winbind 总是看起来很糟糕而且不可靠。Centrify 和 Likely 等商业解决方案总是有效,但似乎没有必要,因为此功能已融入操作系统。

我完成的最后几次安装将Microsoft Identity Management for Unix角色功能添加到 Windows 2008 R2 服务器和 Linux 端的 NSLCD(对于 RHEL5)。这在 RHEL6 之前一直有效,在那里缺乏对 NSLCD 的维护和内存资源管理问题迫使对 SSSD 进行更改。Red Hat 似乎也支持 SSSD 方法,所以这对我来说很好用。

我正在使用新安装,其中域控制器是 Windows 2008 R2核心系统,并且无法添加 Unix 角色功能的身份管理功能。而且我被告知Windows Server 2012 R2 中不再存在此功能已弃用。

安装此角色的好处是存在此 GUI,同时允许对用户属性进行简单的一步管理。

但...

不推荐使用远程服务器管理工​​具 (RSAT) 的网络信息服务 (NIS) 工具服务器选项。使用本机 LDAP、Samba 客户端、Kerberos 或非 Microsoft 选项。

如果它可能会破坏向前兼容性,这使得它真的很难依赖。客户想用Winbind,但我从Red Hat这边看到的一切都指向使用SSSD。

什么是正确的做法?
你如何在你的环境中处理这个问题?

Aar*_*ley 19

2014 年 3 月,红帽发布了用于将红帽企业服务器与 Active Directory 集成的参考架构。(这个材料当然应该是最新的和相关的。)我讨厌把它作为答案发布,但它真的太多了,无法转移到答案领域。

这份文件(已更正)在媒体上很火爆,似乎主要关注 Red Hat Enterprise Linux (RHEL) 7 的新特性。它是为上周的峰会发布的。

如果此链接失效,请告诉我,我会相应地更新答案。

我个人已经相当可靠地使用 WinBind 进行身份验证。很少有服务失败需要具有 root 或其他本地帐户的人进入并退回 winbindd。如果您愿意付出努力,这可能可以通过适当的监控来解决。

值得注意的是 Centrify 确实有额外的功能,尽管这可以通过单独的配置管理来提供。(人偶等)

编辑 6/16/14:

红帽企业 Linux 7 Windows 集成指南


小智 10

回复:“像 Centrify 和 Likely 这样的商业解决方案总是有效,但似乎没有必要,因为此功能已融入操作系统。”

好吧,我想我们中的大多数人多年来一直听说 XYZ 操作系统终于破解了 AD 集成难题。恕我直言,问题是对于操作系统供应商来说,AD 集成是一个复选框功能,即他们需要提供一些有点工作的东西来获取该复选框,而该复选框通常只适用于......

  1. 他们的操作系统平台和
  2. 该平台的当前版本和
  3. 针对更新版本的 Active Directory。

现实情况是,大多数环境在 OS 供应商和 OS 版本方面并不是单一的,并且会有旧版本的 AD。这就是为什么像 Centrify 这样的供应商必须支持 450 多种 UNIX/Linux/Mac/etc 的原因。从 Windows 2000 到 Windows 2012 R2,不仅仅是 RHEL 7 再到 Windows 2012 R2。

此外,您需要考虑 AD 的部署方式,操作系统供应商的 AD 集成是否支持只读域控制器 (RODC)、单向信任、提供多林支持等。现有的 UID 空间(您将使用),是否有将 UID 迁移到 AD 的迁移工具。操作系统供应商的 AD 支持是否解决了在 UID 空间不平坦的情况下将多个 UID 映射到单个 AD 的能力。那么……好吧,你明白了。

然后是支持的问题......

要点是 AD 集成在概念上可能看起来很容易,并且对于供应商的最新操作系统可能是“免费的”,并且如果您只有一个供应商提供的一个操作系统版本并且有一个最新版本的 vanilla AD,并且您有与操作系统供应商签订的高级支持合同,他们将尽力解决出现的任何问题。否则,您可能需要考虑专门的第三方解决方案。


vor*_*aq7 8

不推荐使用远程服务器管理工​​具 (RSAT) 的网络信息服务 (NIS) 工具服务器选项。

这对我来说并不奇怪——NIS 是 Sun 讨厌我们并希望我们过得悲惨的证据。

使用本机 LDAP、Samba 客户端、Kerberos 或非 Microsoft 选项。

这是一个很好的建议。鉴于选择我会说“使用本机 LDAP(请通过 SSL)” - 有很多可用的选项,我最熟悉的两个是pam_ldap + nss_ldap(来自 PADL),或者组合的nss-pam- ldapd(它起源于一个 fork 并且已经看到了持续的开发和增强)。


由于您专门询问 RedHat,因此值得注意的是,RedHat 为您提供了其他使用 SSSD 的替代方案
如果您的环境完全是 RedHat(或只有大量 RedHat 系统),那么研究官方支持的“RedHat 做事方式”肯定值得您花时间。

由于我自己没有使用 RedHat/SSSD 的经验,因此我只是看文档,但它看起来非常健壮且设计精良。


小智 6

在建议的方法中,让我给你一个优点/缺点列表:

直接使用 Kerberos/LDAP

优点:配置正确时效果很好。很少有中断,有弹性,可以在网络故障中幸存下来。AD 无需更改,无需架构更改,无需管理员访问 AD。自由。

缺点:配置相对困难。需要更改多个文件。如果身份验证服务器 (Kerberos/LDAP) 不可用,则将不起作用。

风联

优点:易于配置。基本的 sudo 功能。自由。

缺点:支持密集。不是网络弹性。如果存在网络问题,Linux 机器可能会退出 AD,需要重新注册服务器,这是一项支持任务。需要访问 AD 的管理员帐户。可能会在 AD 中进行架构更改。

集中/同样地等。

优点:相对容易配置。

缺点:将 sudo 功能更改为专有的,更难支持。每台服务器的许可证成本。需要额外的技能来管理。

固态硬盘

优点:一个配置文件,易于配置。适用于所有当前和未来的身份验证方法。可扩展,随系统增长。将在断开连接模式下工作。网络弹性。无需对 AD 架构进行任何更改。不需要 AD 管理员凭据。免费,支持。

缺点:没有像 DNS 自动更新这样的 win 服务。需要配置CIFS共享。

概括

从优点和缺点来看,SSSD 显然是赢家。如果是新系统,就没有理由使用SSSD以外的任何东西。它是一个集成器,适用于所有现有的身份验证方法,并且可以随着系统的发展而增长,因为可以在可用时添加新方法。它使用本地 linux 方法,并且更加可靠和快速。如果打开缓存,即使在完全断开网络且完全网络故障的系统中,系统也能正常工作。

如果需要更改的工作量太大,Winbind 可用于现有系统。

Centrify 存在集成问题,这可能会导致成本高昂。大多数错误在新版本中得到修复,但仍有一些令人头疼。

我已经使用了所有这些方法,SSSD 显然是赢家。即使对于较旧的系统,从 Winbind 转换为 SSSD 的投资回报率也非常高。除非有特定原因不使用 SSSD,否则请始终使用 SSSD。


小智 5

不得不对此发表评论:

值得注意的是 Centrify 确实有额外的功能,尽管这可以通过单独的配置管理来提供。(人偶等)

作为与 Centrify 合作的人,不确定该评论来自何处。看看这个,你会发现有一大堆功能是你无法通过配置管理工具 ala Puppet 获得的。例如,支持将多个 UID 映射到单个 AD 帐户(区域)、支持完整的 Active Directory 域信任(Red Hat 解决方案在第 3 页上记录它不支持)等。

但是回到这个 Red Hat 指南。很高兴 Red Hat 发布了这个,选项很好。请注意,它为客户提供了 10 个选项来进行基本的 AD 集成。大多数选项是 Winbind 的变体,第 15 页列出了每个选项的优点和缺点,并且每个选项都需要大量手动步骤(具有相应的缺点/上述缺乏功能)。Centrify Express 的优势在于,上面的其他评论者是:

  1. 无需所有手动步骤即可轻松安装,并且...
  2. 是免费的...
  3. 不限于 Red Hat V7,这很重要,因为该问题与 Linux 有关,而不仅仅是一种变体——Centrify 支持 300 多种 *nix 和...
  4. 支持 Windows AD 的所有变体,不仅仅是 Windows 2008。他们在这里发布了 Centrify 与 Winbind 的比较,但它不是开源的。

最后归结为您是想自己推出还是采用商业解决方案。真的很重要,你在哪里以及你如何度过你的时间。