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

实施计划
由于与 Active Directory 的集成的增强,我选择在 Red Hat Enterprise Linux 5 (RHEL5) 上使用 Winbind 来进行我的 Linux 与 Active Directory 集成项目。RHEL5 是最新的商用 Red Hat Linux 发布版本,而且它在企业数据中心中相当受欢迎。
使 RHEL5 对 Active Directory 进行身份验证基本上需要下列五个不同的步骤:
查找并下载适当的 Samba 以及其他依存组件。 构建 Samba。 安装并配置 Samba。 配置 Linux,特别是 PAM 和 NSS。 配置 Active Directory。


本文的下面几节将详细介绍这些步骤。
查找适当的软件
Linux 与 Windows 之间最大的区别之一是,Linux 由一个小型操作系统内核和大型的可单独下载和安装的组件集构成。这虽然可以创建为某些任务而进行优化的特定 Linux 配置,但也会使服务器的配置和管理变得极为复杂。不同的发布版本处理这种情况的方式也不一样。Red Hat(及其非商用版 Fedora)使用 Red Hat Package Manager (RPM) 来安装和管理这些组件。

适用于 Red Hat 的 Linux 组件包含两种形式。RPM 文件包含针对组件版本、Linux 发布版本和 CPU 体系结构的特定组合而预先编译和构建的二进制文件。因此,您可以下载和安装二进制文件,例如,针对在 Intel x86 体系结构 CPU 上运行的 Fedora 版本 10 构建的通用 UNIX 打印系统 (Common UNIX Printing System, CUPS) 的 1.3.8-5 版本。假如有十多种不同的 CPU 体系结构、100 多个 Linux 发布版本,还有上千个程序包和版本,则要选择的二进制 RPM 的数量之多便可想而知。

另一方面,源 RPM 文件包含给定程序包的实际源代码。但您需要自己下载和安装源、配置构建选项,以及编译和链接二进制文件。构建您自己的操作系统组件这一想法使习惯于 Microsoft 在 Windows 安装 CD 上提供什么就安装什么的 Windows 用户十分畏怯,但是程序包管理器可使整个过程相当轻松,而且非常可靠。Samba 小组发布更新和安全修补程序的速度惊人,仅在 2008 年七、八月两个月内,就发布了四个版本的 Samba 3.2,总共包含 100 多个错误和安全修补程序。对于此项目,我下载了最新的 Samba 稳定版本 3.0.31 版的源。

为什么要下载 Samba 源,而不下载预先编译的二进制文件集呢?当然,我刚开始也尝试过这么做,但在调试器上花了数小时之后,我发现下载的二进制文件并不是使用支持 Active Directory 身份验证的正确选项构建而成的。具体来说,在 Active Directory 中支持 Linux ID 映射的代码在默认版本中被关闭了,因此我必须使用适当的构建选项重建 Samba。稍后,我将在本文中详细讨论 ID 映射。

虽然 Linux 原本是小型内核,但 Red Hat Enterprise 发布版本预先安装了许多程序包。这通常会使生活变得更轻松,因为您从完全正常运行的操作系统开始着手,但预先安装的程序包有时会与您以后想要安装的软件发生冲突。

我在安装 Red Hat 时,因为想要使用较新的版本,所以并没有包含 Samba(通常会默认安装 Samba)。但是,较新版本的 Samba 要求已安装的几个其他库和实用工具也要使用新版本。这类的依赖问题非常烦人,不过,使用 RPM 就可以轻松解决。
承载二进制 RPM 程序包的网站很多。我使用的网站(勿庸置疑,是我找到的第一个网站)称为 PBONE,网址为 rpm.pbone.net。该网站提供了搜索程序包的简便方法,并且具有我的 CPU 体系结构 (i386) 和操作系统发布版本 (Red Hat Enterprise Linux 5/Fedora 7&8) 所需的所有二进制文件。

我必须下载和更新图 4 中列出的程序包来构建和安装最新的 3.0 版 Samba(但我从未尝试过较新的 3.2 版)。请注意,这些程序包主要针对 Fedora Core (fc) 发布版本。Red Hat 以 Fedora 使用的相同源为基础,而且完全可与它交互。针对 Fedora Core 7 及更高版本构建的程序包,不需要任何修改即可在 RHEL5 上运行。请将下载的 RPM 文件放在 /usr/src/RedHat/RPMS 目录中。
图 4 构建和安装 Samba 3.0.31 所需的程序包
samba-3.031-0.fc8.src.rpm   Samba 3.0.31 源 RPM  
gnutls1.6.3-3.fc7.i386   GNU 传输层安全性 (TLS) 库  
gnutils-devel-1.6.3-3.fc7.i386   GNU TLS 开发文件  
popt-1.12-3.fc8.i386   命令行参数分析库  
popt-devel-1.12-3.fc8.i386   命令行参数分析开发文件  
cups-libs-1.2.12-11.fc7.i386   通用 UNIX 打印机系统库  
cups-devel-1.2.12-11.fc7.i386   通用 UNIX 打印机系统开发文件  
cups-1.2.12.11.fc7.i386   通用 UNIX 打印机系统二进制文件  

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

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