不使用 Samba/Winbind 来通过 AD 验证 CentOS

不使用 Samba/Winbind 来通过 AD 验证 CentOS

目前,我们的 CentOS 5.5 服务器使用 Samba 和 Winbind 针对 Active Directory 环境 (Windows 2003 R2) 进行身份验证。它为我们提供了良好的服务,但我们需要更强大的功能,有人建议使用 LDAP 和 Kerberos 直接针对 AD 进行身份验证。此举的主要动机是我们有不同的 UID/GID,其中一个服务器上的单个用户 (bob) 的 UID 为 501,而另一个服务器上的 UID 为 531,这会影响 SMB 安装目录的权限。

据我所知(作为一名 Linux 新手),AD 中的 Unix 属性是可以读取的,因此可以在整个环境中集中和标准化我们的 UID/GID?我希望这个环境尽可能稳定,并且认为 Samba/Winbind 解决方案的扩展性不是很好,因此如果我可以严格通过将 AD 指向为 LDAP 服务器来做到这一点,那就太理想了。

任何建议都会受到极大的赞赏,并会阻止我进一步脱发。

答案1

首先,不要忘记在“添加/删除 Windows 组件”窗口的“Active Directory 服务”下安装“UNIX 身份管理”Windows 组件。

Active Directory DC 将为您提供两项服务:

  1. 通过 LDAP 枚举用户(UID/GID/Home Dir/等)
  2. 通过 Kerberos 进行用户身份验证

在 CentOS 服务器上,您需要通过 /etc/ldap.conf 配置 LDAP 用户枚举,您的 Kerberos 配置进入 /etc/krb5.conf,并且为了使用用户,您需要更新 /etc/nsswitch.conf。

要启用 Kerberos 身份验证,您需要编辑 /etc/pam.d/system-auth 文件。

一些注意事项:

  • 确保您的时间与 DC 和客户端上的可靠来源同步
  • 确保你有正确的解析和反向解析
  • 必须有指南向您展示如何使用用户/密码绑定到 DC,更安全的方法是使用 Kerberos 票证进行 DC 身份验证(用于用户枚举/身份验证)
  • 它可能不会在第一次尝试时起作用,请尽可能长时间地保持 root 用户登录,以便快速修复,而无需进入救援模式(在您将自己挡在机器之外之后)。

通过快速搜索,我们发现跟随指南。成功后,我会尝试将 Kerberos 绑定到 DC。本指南适用于 RHEL5,但在 CentOS5 上同样适用

答案2

如果您对 winbind 的唯一问题是服务器之间的 UID 不匹配,那么请确保 winbind 使用 Active Directory RID 来生成其 UID,并且它们是一致的。这个先前的问题应该有足够的细节让您入门。我从未需要过任何用于 AD 的 Unix 扩展,并且链接方法在几十台独立服务器上对我有效,所有服务器都安装相同的中央 NFS 共享,没有不匹配的情况。

相关内容