使用 Active Directory 对 Linux 客户端进行身份验证(8)

安装和配置 Samba
要安装您刚刚创建的 Samba 二进制文件,请转至 /usr/src/RedHat/RPMS 目录。由 rpmbuild 命令创建的所有 RPM 文件都会显示在此目录中。请记住,Samba 包括允许 Linux 客户端访问 Windows(或 Samba)文件共享的二进制文件,以及允许 Linux 系统充当 Windows 文件服务器、Windows 打印机服务器和 Windows NT 4.0-style DC 角色的代码。

要让 Linux 对 Active Directory 进行身份验证,我们根本用不到这么多角色,其实我们只需要使用 Samba 公共文件和 Samba 客户端二进制文件就可以了。为了方便起见,这些文件可为两个 RPM 文件:samba-client-3.0.31-0.i386.rpm 和 samba-common-3.0.31-0.i386.rpm。使用 rpm --install 命令安装 RPM 文件,请看下面的示例:rpm --install samba-common-3.0.31-0.i386.rpm。(请注意,您需要先安装 –common RPM 文件。)
安装了 Samba 客户端二进制文件后,您必须修改默认 Samba 配置,以确保 Winbind 使用 Active Directory 适当处理身份验证。所有 Samba 配置信息(包括客户端和服务器)都可以在 smb.conf 文本文件中找到,该文件在默认情况下位于 /etc/samba 目录中。Smb.conf 可能包含大量配置选项,本文只会对其内容进行简要介绍。samba.org 网站和 Linux 主页简要讨论了 smb.conf。

第一步是将 Winbind 配置为使用 Active Directory 进行身份验证。您必须将 smb.conf 中的安全模式设置为“ads”。system-config-authentication 实用工具应该已经帮您设置好了,但检查一下总是比较保险。编辑 smb.conf 文件,并搜索标有“域成员选项”的部分。找出以“security”开头的那一行,并确定它的内容是“security = ads”。下一个配置步骤是确定 Winbind 如何将 Windows 安全主体(如用户和组)映射到 Linux 标识符,这需要进行进一步的说明。
ID 映射问题
通过 Active Directory 对 Linux 用户进行身份验证时有个大问题我还没有提到,那就是用户和组的 UID 问题。Linux 和 Windows 在内部都不是根据用户名来引用用户的,而是使用唯一的内部标识符。Windows 使用安全标识符(即 SID),它能够唯一标识 Windows 域中的每个用户,其结构长度可以变化。SID 也包含唯一域标识符,以便 Windows 区别不同域中的用户。

Linux 的方案则简单得多,Linux 计算机上的每个用户都有一个 UID,而此 UID 只是一个 32 位的整数。但是 UID 的范围受限于计算机本身。在某台 Linux 计算机上具有 UID 436 的用户,不一定与另一台 Linux 计算机上具有 UID 436 的用户相同。因此,用户必须登录他需要访问的每台计算机,这显然不是理想的情况。

Linux 网络管理员解决此问题的常用方法是,使用 Network Information System (NIS) 或共享 LDAP 目录来提供网络身份验证。网络身份验证系统提供用户的 UID,而使用该身份验证系统的所有 Linux 计算机都将共享相同的用户和组标识符。在这种情况下,我将使用 Active Directory 来提供唯一的用户和组标识符。

要解决此问题,我可以采用两种策略。第一个(也是最明显的)策略是,为每个用户和组创建 UID,并将该标识符与各自的对象一起存储到 Active Directory 中。这样一来,当 Winbind 对用户进行身份验证时,它就可以查询该用户的 UID,然后将它提供给 Linux 作为该用户的内部标识符。Winbind 将此方案称为 Active Directory ID 映射,或 idmap_ad。图 17 介绍了 Active Directory ID 映射的过程。

使用 Active Directory 对 Linux 客户端进行身份验证

图 17 Active Directory ID 映射
Active Directory ID 映射的唯一缺点是,我们必须提供一种机制来确保每个用户和组都拥有标识符,而且这些标识符在林中都是唯一的。有关详细信息,请参阅“针对 Active Directory ID 映射配置 Active Directory”边栏。

幸好,还有另外一种 ID 映射策略,这种策略的管理负荷要少得多。回想一下,我们在前面曾提到过 Windows SID 可以唯一标识域中的用户和域本身。SID 中能唯一标识域中用户的部分称为相对标识符(或 RID),而且这部分事实上是一个 32 位的整数。因此,Winbind 可在用户登录时直接从 SID 中提取 RID,然后将该 RID 用作唯一的内部 UID。Winbind 将此策略称为 RID 映射,或 idmap_rid。图 18 描述了 RID 映射的实际工作方式。

图 18 RID 映射
RID 映射具有零管理负荷的优点,但是您不能将它用在多域的环境中,因为不同域中的用户可能拥有相同的 RID 值。但是,如果您拥有单个 Active Directory 域,则可以使用 RID 映射。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyxzyf.html