文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>针对 UNIX 的 Microsoft Windows 安全和目录服务..

针对 UNIX 的 Microsoft Windows 安全和目录服务..

时间:2006-04-20  来源:飞天二狭

第 8 章——开发 LDAP 安全和目录基础结构

发布日期: 2005年01月31日
本页内容
简介
配置 Active?Directory、UNIX 和 Linux 以支持 LDAP 安全和目录服务
构建 LDAP 身份验证和授权基础结构
构建 Active?Directory 标识存储区
总结

简介

本章提供了有关使用 Windows?Server?2003 Active?Directory 轻型目录访问协议 (LDAP) 服务对 UNIX 和 Linux 客户端实施安全和目录基础结构的指导。同时还提供了配置 Windows?Server?2003 域控制器、UNIX 与 Linux 客户端的指导。

组织可使用本指导创建一个基于 Windows?Server?2003 平台的统一的安全和目录基础结构。本解决方案通过将用户帐户集中到一个位置来加强对用户和密码的管理:Active?Directory。本解决方案通过要求用户只需记住 Windows、UNIX 以及 Linux 客户端间的一个用户名和密码而简化了身份验证过程。

本章中的指导将叙述两种主要的解决方案:

使用 Active?Directory 提供 UNIX 和 Linux 身份验证和授权

使用 Active?Directory 作为 UNIX 和 Linux 客户端的标识存储区

本章由三个部分构成:第一部分为使用 LDAP 的安全和目录解决方案所通用。后两部分分别适用于具体的安全和目录解决方案。这三个部分的标题为:

“配置 Active?Directory、UNIX 和 Linux 以支持 LDAP 安全和目录服务”

“构建 LDAP 身份验证和授权基础结构”

“构建 Active?Directory 标识存储区”

图 8.1 中的图表为本章介绍的解决方案的高级概观。图 8.1 中显示的关键组件为 PADL LDAP 可插入式身份验证模块 (PAM)、名称服务交换 (NSS) 模块以及 Active?Directory 架构的扩展。本章叙述了这些组件的配置及其各自的基础结构要求。“先决条件”一节中提供了有关 PAM 和 NSS 的详细信息的参考资料。


图 8.1 LDAP 安全和目录解决方案基础结构概览
查看大图

先决条件

在使用 Windows?Server?2003 实施 LDAP 安全和目录服务前完成构想和规划阶段。在实施本章中的解决方案前,应当:

作出第 5 章“规划异类安全和目录解决方案”中概括的设计决定,并制订一个开发计划。

阅读并执行第 6 章“开发面向异类安全和目录解决方案的基础结构”中的相应部分。本章中的指导需要一个已配置的 Windows?Server?2003 Active?Directory 基础结构和一个正确配置的域名系统 (DNS) 基础结构。

回顾第 2 章“UNIX 和 Windows 环境中的身份验证和授权”以及第 3 章“作为 UNIX 和 Windows 环境中的标识存储区的 Active Directory 和 LDAP”中有关的 PAM 和 NSS 的描述。

返回页首

配置 Active?Directory、UNIX 和 Linux 以支持 LDAP 安全和目录服务

Windows?Server?2003 Active?Directory 的标准安装专为同类 Windows 环境而设计。出于该目的,Windows?Server?2003 Active?Directory 的标准安装包括一套全面的工具。当在异类环境中使用 Windows?Server?2003 Active?Directory 提供 LDAP 服务时,就需要附加功能和新工具。本节提供了使用 Active?Directory 安装并配置这些工具以向 UNIX 和 Linux 客户端提供 LDAP 服务的指导。

本节还提供了安装和配置 UNIX 和 Linux 客户端所需的 LDAP 工具的指导。

安装工具和实用程序

本节将向您介绍实施基于 Active?Directory 的 LDAP 安全和目录基础结构时所需的安装工具和实用程序。表 8.1 显示了所应安装的主要的 Active?Directory 工具。其中两种工具为 Microsoft 管理控制台 (MMC) 的标准管理单元。

表 8.1:管理 LDAP 服务的 Active?Directory 工具

工具/实用程序 描述 类型

架构 MMC 管理单元

查看和编辑架构的最简单的方式。

MMC 管理单元

Ldifde

在生产环境中部署 Active?Directory 架构扩展的首选工具。

命令行工具

ADSI 编辑 MMC 管理单元

低级 Active?Directory 编辑器。可用于查看目录中的所有对象,包括架构信息。您可以使用该工具修改对象和设置对象上的访问控制列表。

MMC 管理单元

Ldp

基于 GUI 的 LDAP 支持工具。允许您针对任何兼容 LDAP 的目录执行 LDAP 操作(连接、绑定、搜索、修改、添加以及删除)。

Windows GUI 工具

除了基于 Windows?Server?2003 的工具以外,还需要安装 UNIX 和 Linux LDAP 工具。表 8.2 显示了您需要安装的主要工具和实用程序。

表 8.2:管理 LDAP 服务 的 UNIX 和 Linux 工具

工具/实用程序 描述 类型

LDAP 库

UNIX 和 Linux 上应用程序和模块使用的共享库。

二进制数据包或源代码。

编程接口。

ldapsearch、ldapadd、ldapmodify、ldapdelete

搜索和修改 LDAP 目录的工具。

命令行工具

pam_ldap

来自 PADL 的 PAM 可为 UNIX 和 Linux 客户端提供身份验证和授权服务

PAM 模块

nss_ldap

来自 PADL 的 NSS 模块,允许将 UNIX 和 Linux 配置数据保存在 LDAP 目录中。

NSS 模块

名称服务缓存 守护程序

缓存通过 nss_ldap 提供的 NSS 配置数据以提高 UNIX 和 Linux 客户端的性能。

二进制数据包或源代码。

UNIX 或 Linux 系统服务(守护程序)

安装 Active?Directory 架构 MMC 管理单元

Active?Directory 架构 MMC 管理单元允许您查看和配置 Active?Directory 架构。安装 Windows?Server?2003 过程中不默认安装 Active?Directory 架构 MMC 管理单元。在将 Windows?Server?2003 Active?Directory 安装配置为 LDAP 目录存储区时需要该功能。应当在 Windows?2003?Server 域控制器上安装 Active?Directory 架构 MMC 管理单元。

要想安装 Active?Directory 架构 MMC 管理单元,请遵循以下步骤:

1.

打开命令提示符,单击“开始”,单击“运行...”,输入“cmd”,然后单击“确定”。

2.

在命令提示符处,键入:

“regsvr32 schmmgmt.dll”

该命令将在计算机上注册“schmmgmt.dll”。有关使用“regsvr32”的更多信息,请参见 Windows?Server?2003 文档。

3.

单击“开始”,单击“运行”,键入“mmc /a”,然后单击“确定”。

4.

在“文件”菜单上,单击“添加/删除管理单元”,然后单击“添加”。

5.

在“管理单元”下,双击“Active?Directory 架构”,单击“关闭”,然后单击“确定”。

6.

要想保存该控制台,在“文件”菜单上,单击“保存”。

7.

在“保存到”中,指向“%SystemRoot%\system32”目录。

8.

在“文件名”中,键入“schmmgmt.msc”,然后单击“保存”。

要想在您的“开始”菜单中创建一个 Active?Directory 架构 MMC 管理单元的快捷方式,请遵循以下步骤:

1.

右键单击“开始”,单击“打开所有用户”,双击“程序”文件夹,然后双击“管理工具”文件夹。

2.

在“文件”菜单上,指向“新建”,然后单击“快捷方式”。

3.

在“创建快捷方式向导”、“请键入项目的位置”中,键入“schmmgmt.msc”,然后单击“下一步”。

4.

在“选择程序标题”对话框、“键入该快捷方式的名称”中,键入“Active?Directory 架构”,然后单击“完成”。现在您将在“开始”菜单的“管理工具”中看到“Active?Diretory”。

警告 修改架构是一项高级操作,最好由经验丰富的程序员和系统管理员执行。有关修改架构的详细信息,请参见《Active?Directory 程序员指南》,位于 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ad/ad/active_directory.asp

要想打开 Active?Directory 架构 MMC 管理单元,请遵循以下步骤:

要想打开 Active?Directory 架构管理单元,单击“开始”,单击“控制面板”,双击“管理工具”,然后双击“Active?Directory 架构”。

注意

您也可以从运行 Windows?XP?Professional 的计算机上运行 Active?Directory 架构;以及在该计算机上安装 Windows?Server?2003 管理工具包。

不能在运行 Windows?2000?Professional 或 Windows 2000 Server 的计算机上安装 Windows Server?2003 管理工具包。

安装 Windows?Server?2003 支持工具

除了 Windows?Server?2003 操作系统内置的工具外,Windows Server?2003 操作系统光盘中还包含一组附加的支持工具。您必须使用支持工具安装程序单独安装这些支持工具。应当将这些工具安装在 Windows?Server?2003 域控制器上。这些支持工具旨在帮助 Microsoft 支持人员和网络管理员诊断和解决计算机问题。

支持工具包含了使您能够扩展和管理 Active Directory 架构的实用程序。对于本章中有些任务来说这些工具是必要的。

两种 Windows Server 2003 支持工具对本指南特别有用:ADSI 编辑 MMC 管理单元和 Ldp 工具。

重要 支持工具和支持工具帮助 (Suptools.chm) 只有英文版。如果您将它们安装到非英文的操作系统或带有多语言用户界面 (MUI) 程序包的操作系统上,将会在“帮助和支持中心”里看到混有非英文内容的英文支持工具。如果在“帮助和支持中心”的“工具中心”中的“按类别排列工具”列表中浏览工具文档、或者按工具名在“帮助和支持中心”内进行全局搜索时,就会出现这种情况。

您必须以管理员或管理员组成员身份登录,以便安装 Windows?Server?2003 操作系统光盘中的支持工具。支持工具安装程序将把所有支持工具文件和文档安装到 Windows?2003?Server 的硬盘上。安装程序将在“开始”菜单上的程序文件夹中创建一个“Windows 支持工具”文件夹。有关各个工具的详细信息,请单击“工具帮助”。

要想安装 Windows?Server?2003 支持工具,请遵循以下步骤:

1.

将 Windows?Server?2003 光盘插入 CD-ROM 驱动器。

2.

如果提示您重新安装 Windows,单击“否”。

3.

当出现“欢迎”页面时,单击“执行其他任务”,然后单击“浏览光盘”。

4.

转到 \Support\Tools 文件夹。有关完整的安装程序信息,请参阅该文件夹中的 Readme.htm 文件。

5.

双击“Suptools.msi”。

6.

遵循屏幕上出现的指示。

警告:如果不正确地使用某些支持工具将导致您的计算机停止运行。建议只有经验丰富的用户才能安装和使用这些工具。

安装 Windows?Server?2003 资源工具包

Windows?Server?2003 资源工具包 包含用于管理 Active?Directory LDAP 数据库的实用程序。您应当在开始扩展和使用 Active?Directory 架构前,在每个 Windows?Server?2003 域控制器上安装 Windows?Server?2003 资源工具包。

要想安装 Windows?Server?2003 资源工具包,请遵循以下步骤:

注意 如果已安装了 Beta 版的资源工具包,必须先将其删除。

1.

使用 Internet Explorer 浏览 Windows Server 2003 资源工具包工具 位于 http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en。

2.

单击“下载”链接开始下载。执行以下操作之一:

要想立即开始安装,单击“在当前位置打开或运行该程序”。

要想将下载复制到您的 Windows?2003?Server 域控制器以供日后安装,单击“保存”或“将该程序保存到磁盘”。

3.

要想安装资源工具包工具,运行 rktools.exe 程序包。使用“资源管理器”定位到您下载的 rktools.exe 的位置并双击文件。这将启动“Windows 资源工具包安装向导”。

4.

单击“下一步”。

5.

在“最终用户许可协议”对话框中,选择“我同意”,然后单击“下一步”。

6.

在“用户信息”对话框中,输入您的名称和组织,然后单击“下一步”。

7.

单击“立即安装”,然后单击“完成”。

8.

所有必要文件均被安装到“%Program Files%\Windows Resource Kits\Tools”文件夹。

9.

在启动和使用资源工具包工具前,请确保阅读了 Readme.htm 文件,其位于“%Program Files%\Windows Resource Kits\Tools”文件夹。也可以从“开始”菜单访问 readme.htm。

安装和配置 UNIX 和 Linux LDAP 客户端库和工具

您需要在 LDAP 客户端库和工具能够连接到和使用 Active?Directory LDAP 服务前,在 UNIX 和 Linux 主机上安装 LDAP 客户端库和工具。LDAP 库提供了 LDAP 工具、PADL nss_ldap 以及 pam_ldap 模块使用的 LDAP 应用程序编程接口 (API)。LDAP 工具包含用于管理 LDAP、调试 LDAP 以及在 LDAP 目录上执行搜索和绑定操作的命令行实用程序。

本指南中的步骤使用 Red Hat Linux 9 上的 OpenLDAP 库和本地 Solaris 9 LDAP 库;建议使用这些库来执行 PADL LDAP 模块。

重要 在 Active?Directory 中处理大量项目(比如:大量用户或组)时,当前版本的 OpenLDAP 无法执行某些必要的 LDAP 控件。这些 LDAP 控件为 Paged Results 控件和 Ranged Results 控件。Active?Directory 设置可返回到客户端的结果限制,同时这两种控件允许客户端检索大于这些限制的结果集。

有关更改 Active?Directory 设置的限制的更多信息,请参见知识库文章 HOW TO:使用 Windows?2000 中的 Ntdsutil.exe 来查看和设置轻型目录访问协议,位于 http://support.microsoft.com/default.aspx?scid=kb;en-us;315071。

本指南不涉及有关更改这些参数的内容。

在 Red Hat Linux 9 上安装和配置 LDAP 客户端库和工具

Red Hat Linux 9 的标准安装包含以下与 LDAP 相关的 Red Hat Package Manager (RPM) 程序包:

php-ldap-4.2.2-17

openldap-2.0.27-8

nss_ldap-202-5

openldap-devel-2.0.27-8

可键入以下命令核实该列表:

rpm –qa | grep ldap

Red Hat Linux 9 的标准安装不包含 LDAP 客户端工具。

注意??当使用 UNIX 和 Linux 作为 Active?Directory 客户端时,您无需安装 OpenLDAP 服务器 RPM。

要想在 Red Hat 9 上安装和配置 OpenLDAP LDAP 客户端工具,请遵循以下步骤:

1.

将 Red Hat Linux 9 安装光盘(共 3 张)中的第 2 张插入 CD-ROM 驱动器。

2.

键入以下命令:

mount /mnt/cdrom
cd /mnt/cdrom/RedHat/RPMS
rpm –ivh openldap-clients-2.0.27-8.i386.rpm
cd /
umount /mnt/cdrom

3.

编辑 /etc/openldap/ldap.conf 文件并添加两行(在随后的再版配置文件中显示为粗体)。

重要 Red Hat 9 上存在两种 ldap.conf 文件:

配置客户端库和工具的 /etc/openldap/ldap.conf 文件。

只配置 pam_ldap 和 nss_ldap 的 /etc/ldap.conf 文件。

总是确保更新正确的 ldap.conf 文件。

更改“HOST”行,以包含 Active?Directory 域控制器的域名。

# $OpenLDAP:pkg/ldap/libraries/libldap/ldap.conf,v 1.4.8.6 2000/09/05 17:54:38 kurt Exp $
#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

#BASE dc=example, dc=com
#URI????ldap://ldap.example.com ldap://ldap-master.example.com:666

#SIZELIMIT????12
#TIMELIMIT????15
#DEREF????????never
HOST win2003ent.example.com
BASE cn=Users,dc=example,dc=com

注意 使用 Red Hat authconfig 工具可自动添加这些行。

4.

使用 ldapsearch 工具确定 Active?Directory LDAP 功能来测试 LDAP 客户端工具的配置。输入以下命令:

ldapsearch -x -s base -b "" "(objectclass=*)"

命令得出的输出信息应当类似以下显示的信息:

version:2

#
# filter:(objectclass=*)
# requesting:ALL
#

#
dn:
currentTime:20030924161851.0Z
subschemaSubentry:CN=Aggregate,CN=Schema,CN=Configuration,DC=example,DC=com
dsServiceName:CN=NTDS Settings,CN=WIN2003ENT,CN=Servers,CN=Default-First-Site
,CN=Sites,CN=Configuration,DC=example,DC=com
namingContexts:DC=example,DC=com
namingContexts:CN=Configuration,DC=example,DC=com
namingContexts:CN=Schema,CN=Configuration,DC=example,DC=com
namingContexts:DC=DomainDnsZones,DC=example,DC=com
namingContexts:DC=ForestDnsZones,DC=example,DC=com
namingContexts:DC=TAPI3Directory,DC=example,DC=com
defaultNamingContext:DC=example,DC=com
schemaNamingContext:CN=Schema,CN=Configuration,DC=example,DC=com
configurationNamingContext:CN=Configuration,DC=example,DC=com
rootDomainNamingContext:DC=example,DC=com
supportedControl:1.2.840.113556.1.4.319
supportedControl:1.2.840.113556.1.4.801
supportedControl:1.2.840.113556.1.4.473
supportedControl:1.2.840.113556.1.4.528
supportedControl:1.2.840.113556.1.4.417
supportedControl:1.2.840.113556.1.4.619
supportedControl:1.2.840.113556.1.4.841
supportedControl:1.2.840.113556.1.4.529
supportedControl:1.2.840.113556.1.4.805
supportedControl:1.2.840.113556.1.4.521
supportedControl:1.2.840.113556.1.4.970
supportedControl:1.2.840.113556.1.4.1338
supportedControl:1.2.840.113556.1.4.474
supportedControl:1.2.840.113556.1.4.1339
supportedControl:1.2.840.113556.1.4.1340
supportedControl:1.2.840.113556.1.4.1413
supportedControl:2.16.840.1.113730.3.4.9
supportedControl:2.16.840.1.113730.3.4.10
supportedControl:1.2.840.113556.1.4.1504
supportedControl:1.2.840.113556.1.4.1852
supportedControl:1.2.840.113556.1.4.802
supportedLDAPVersion:3
supportedLDAPVersion:2
supportedLDAPPolicies:MaxPoolThreads
supportedLDAPPolicies:MaxDatagramRecv
supportedLDAPPolicies:MaxReceiveBuffer
supportedLDAPPolicies:InitRecvTimeout
supportedLDAPPolicies:MaxConnections
supportedLDAPPolicies:MaxConnIdleTime
supportedLDAPPolicies:MaxPageSize
supportedLDAPPolicies:MaxQueryDuration
supportedLDAPPolicies:MaxTempTableSize
supportedLDAPPolicies:MaxResultSetSize
supportedLDAPPolicies:MaxNotificationPerConn
supportedLDAPPolicies:MaxValRange
highestCommittedUSN:16399
supportedSASLMechanisms:GSSAPI
supportedSASLMechanisms:GSS-SPNEGO
supportedSASLMechanisms:EXTERNAL
supportedSASLMechanisms:DIGEST-MD5
dnsHostName:win2003ent.example.com
ldapServiceName:example.com:[email protected]
serverName:CN=WIN2003ENT,CN=Servers,CN=Default-First-Site,CN=Sites,CN=Configu
ration,DC=example,DC=com
supportedCapabilities:1.2.840.113556.1.4.800
supportedCapabilities:1.2.840.113556.1.4.1670
supportedCapabilities:1.2.840.113556.1.4.1791
isSynchronized:TRUE
isGlobalCatalogReady:TRUE
domainFunctionality:0
forestFunctionality:0
domainControllerFunctionality:2

# search result
search:2
result:0 Success

# numResponses:2
# numEntries:1

您将在输出信息中看到的主要不同在于服务器的 NDS 名和域的可分辨名称(比如:dc=example、dc=com)。如果您无法看到以上所有内容,那么可能是您的 LDAP 或网络配置出现了错误。要想确定具体问题,请参见第 9 章“测试基于 Windows 的安全和目录解决方案”中的测试指导。

注意 默认情况下,Windows?Server?2003 Active?Directory 不允许在 LDAP 目录上进行匿名操作。然而, ldapsearch –x –s base –b "" "(objectclass=*)" 命令可搜索 rootDSE,并且该匿名操作是被允许的。

在 Solaris 9 上配置 LDAP 客户端库和工具

Solaris 9 包含 LDAP 库。在构建 PADL pam_ldap 和 nss_ldap 模块时应当使用这些库。必须在构建 PADL 模块前,配置和测试 Solaris 9 LDAP 库。这里概括了所需执行的步骤:

确保网络配置正确。

配置 DNS 解析程序。

配置 LDAP 客户端库。

接下来的步骤详细说明了应当如何执行这些步骤。

要想在 Solaris 9 上安装和配置 LDAP 客户端库和工具,请遵循以下步骤:

1.

在 Solaris 9 计算机上的外壳命令提示符下键入以下命令,测试从 Solaris 9 计算机到 Active?Directory 域控制器的网络连接:

ping 192.168.1.49

应当使用 Active?Directory 域控制器的 IP 地址替换 192.168.1.49。

2.

使用文本编辑器(比如:vi 或 emacs)来编辑 /etc/resolv.conf 文件以配置 DNS 解析程序。应使用 DNS 服务器或服务器和域名的 IP 地址更新以下两行:

nameserver 192.168.1.49
domainname example.com.

3.

输入以下命令来检查是否已经安装了 Solaris 9 LDAP 库:

pkginfo | grep ldap

您会看到列出的 SUNWlldap 程序包。

1.

如果未列出 SUNWlldap 程序包,那么输入以下命令从包含该程序包的 Solaris 9 安装盘安装它:

pkgadd –d /cdrom/cdrom0/s2/Solaris_9/Product SUNWlldap

注意 取决于所用的安装盘,路径名可能有所不同。

2.

在以下提示处:

Do you want to continue with the installation of <SUNWlldap> [y,n,?]

键入 y 并按 Enter 键。

4.

测试 Solaris 计算机能够解析 Active?Directory 域控制器(比如:win2003ent.example.com)的域名。通过在外壳提示符下输入以下命令来进行测试:

nslookup win2003ent.example.com

该命令得到输出信息应当包含 Active?Directory 域控制器的 IP 地址。输出信息应当类似如下示例:

Server:???????? 192.168.1.49
Address:????????192.168.1.49#53

Name:?? win2003ent.example.com
Address:192.168.1.49

5.

输入以下几行命令,使用 Solaris ldapclient 命令配置 LDAP 客户端工具和库。

ldapclient -v manual \
-a objectClassMap=passwd:posixAccount=User \
-a attributeMap=passwd:uid=sAMAccountName \
-a attributeMap=passwd:uidNumber=msSFU30UidNumber \
-a attributeMap=passwd:gidNumber=msSFU30GidNumber \
-a attributeMap=passwd:uniquemember=member \
-a attributeMap=passwd:homeDirectory=msSFU30HomeDirectory \
-a attributeMap=passwd:loginShell=msSFU30LoginShell \
-a attributeMap=passwd:gecos=msSFU30Gecos \
-a attributeMap=passwd:posixGroup=Group \
-a defaultSearchBase=cn=Users,dc=example,dc=com \
-a serviceSearchDescriptor=passwd:cn=Users,dc=example,dc=com \
-a defaultServerList=192.168.1.49 \
-a domainName=example.com.\
-a credentialLevel=anonymous \
-a authenticationMethod=none

注意 PADL NSS 和 PAM 模块不使用 ldapclient 命令中先前的 attributeMap 参数。只有 Solaris pam_ldap 和 nss_ldap 模块使用这类参数。该示例将 Solaris pam_ldap 和 nss_ldap 模块所需的架构属性映射到本指南中所用的 Microsoft Services for UNIX (SFU) 3.5 架构属性上。这里包含这些参数是出于完整性方面的考虑,并不是必不可少的。

必须将 IP 地址更改为 Active?Directory 域控制器或控制器的 IP 地址,并分别更改 defaultSearchBase 和 serviceSearchDescriptor 参数,以反映域名和存储了 Active?Directory 用户帐户的组织单位。其他参数可配置 Solaris 9 pam_ldap 和 nss_ldap 模块。这些模块与 Windows?Server?2003 Active?Directory 并不完全兼容。

注意 UNIX 和 Linux 外壳使用反斜杠字符 (\) 来表示正被扩展到下一行的命令行。它必须是行中的最后一个字符。

6.

ldapclient 命令可修改 /etc/nsswitch.conf 以只使用 LDAP 和文件来提供主机名信息。必须修改该文件,以添加 DNS 查找。使用文本编辑器(比如:vi 或 emacs)来编辑 /etc/nsswitch.conf 并将 hosts:行更改为为:

hosts: dns files

7.

使用 ldapsearch 工具确定 Active?Directory LDAP 功能,来测试 LDAP 客户端工具的配置。输入以下命令:

ldapsearch -h win2003ent.example.com.\
-s base -b "" "(objectclass=*)"

在这里 win2003ent.example.com. 是您 Active?Directory 域控制器的域名。

源自命令行的输出信息应当类似以下显示的信息:

currentTime=20031217100255.0Z
subschemaSubentry=CN=Aggregate,CN=Schema,CN=Configuration,DC=example,DC=com
dsServiceName=CN=NTDS Settings,CN=WIN2003ENT,CN=Servers,CN=Default-First-Site,CN=Sites,CN=Configuration,DC=example,DC=com
namingContexts=DC=example,DC=com
namingContexts=CN=Configuration,DC=example,DC=com
namingContexts=CN=Schema,CN=Configuration,DC=example,DC=com
namingContexts=DC=DomainDnsZones,DC=example,DC=com
namingContexts=DC=ForestDnsZones,DC=example,DC=com
namingContexts=DC=TAPI3Directory,DC=example,DC=com
defaultNamingContext=DC=example,DC=com
schemaNamingContext=CN=Schema,CN=Configuration,DC=example,DC=com
configurationNamingContext=CN=Configuration,DC=example,DC=com
rootDomainNamingContext=DC=example,DC=com
supportedControl=1.2.840.113556.1.4.319
supportedControl=1.2.840.113556.1.4.801
supportedControl=1.2.840.113556.1.4.473
supportedControl=1.2.840.113556.1.4.528
supportedControl=1.2.840.113556.1.4.417
supportedControl=1.2.840.113556.1.4.619
supportedControl=1.2.840.113556.1.4.841
supportedControl=1.2.840.113556.1.4.529
supportedControl=1.2.840.113556.1.4.805
supportedControl=1.2.840.113556.1.4.521
supportedControl=1.2.840.113556.1.4.970
supportedControl=1.2.840.113556.1.4.1338
supportedControl=1.2.840.113556.1.4.474
supportedControl=1.2.840.113556.1.4.1339
supportedControl=1.2.840.113556.1.4.1340
supportedControl=1.2.840.113556.1.4.1413
supportedControl=2.16.840.1.113730.3.4.9
supportedControl=2.16.840.1.113730.3.4.10
supportedControl=1.2.840.113556.1.4.1504
supportedControl=1.2.840.113556.1.4.1852
supportedControl=1.2.840.113556.1.4.802
supportedLDAPVersion=3
supportedLDAPVersion=2
supportedLDAPPolicies=MaxPoolThreads
supportedLDAPPolicies=MaxDatagramRecv
supportedLDAPPolicies=MaxReceiveBuffer
supportedLDAPPolicies=InitRecvTimeout
supportedLDAPPolicies=MaxConnections
supportedLDAPPolicies=MaxConnIdleTime
supportedLDAPPolicies=MaxPageSize
supportedLDAPPolicies=MaxQueryDuration
supportedLDAPPolicies=MaxTempTableSize
supportedLDAPPolicies=MaxResultSetSize
supportedLDAPPolicies=MaxNotificationPerConn
supportedLDAPPolicies=MaxValRange
highestCommittedUSN=94227
supportedSASLMechanisms=GSSAPI
supportedSASLMechanisms=GSS-SPNEGO
supportedSASLMechanisms=EXTERNAL
supportedSASLMechanisms=DIGEST-MD5
dnsHostName=win2003ent.example.com
ldapServiceName=example.com:[email protected]
serverName=CN=WIN2003ENT,CN=Servers,CN=Default-First-Site,CN=Sites,CN=Configuration,DC=example,DC=com
supportedCapabilities=1.2.840.113556.1.4.800
supportedCapabilities=1.2.840.113556.1.4.1670
supportedCapabilities=1.2.840.113556.1.4.1791
isSynchronized=TRUE
isGlobalCatalogReady=TRUE
domainFunctionality=0
forestFunctionality=0
domainControllerFunctionality=2

您将在输出信息中看到的主要不同在于服务器的 NDS 名和域的可分辨名(比如:dc=example、dc=com)。如果您无法看到以上所有内容,那么可能是您的 LDAP 或网络配置出现了错误。要想确定具体问题,请参见第 9 章“测试基于 Windows 的安全和目录解决方案”中的测试指导。

注意 默认情况下,Windows?Server?2003 Active?Directory 不允许在 LDAP 目录上进行匿名操作。然而, ldapsearch -x -s base -b "" "(objectclass=*)" 命令将搜索 rootDSE,并且该匿名操作是被允许的。

安装并配置名称服务缓存守护程序

名称服务缓存守护程序 (NSCD) 位于使用名称服务的应用程序和提供这些名称服务的机制之间。它缓存名称服务数据并缩短响应时间。

如果没有 NSCD,应用程序将调用以下标准 libc 函数之一:getxxnam()、getxxuid()、getxxent() 以及 getxbyy()。接着 NSS 会动态加载 /etc/nsswitch.conf 中指定的名称服务机制的正确模块。在 NSCD 存在的情况下,应用程序仍将进行相同的调用,但是现在相应的 libc 函数实际上通过进程间通信 (IPC) 调用来调用 NSCD。如何 NSCD 缓存了应用程序所需的数据,它将返回数据;否则,它将以常规方式调用 NSS 模块。

您在使用 NSCD 时应当牢记的三点是:

NSCD 不直接在支持 PAM 的系统上的身份验证中起作用。

PAM 身份验证完全与 NSS 请求无关。因此,NSCD(在任何配置中)将不提供可伸缩性或断开模式的身份验证功能。

NSCD 使用基于时间的缓存老化。

NSCD 只在模块上缓存进出 NSS 功能接口的信息。这意味着 NSCD 使用一个基于时间的缓存算法,该算法可能要求完全更新缓存(即使不必要)。

考虑以下示例:假设有人决定在带有 10,000 个用户对象的 LDAP 服务器上使用 PADL nss_ldap 模块。应用程序第一次调用 getpwent() 来枚举用户时,所有 10,000 个用户对象都被通过网络拉过来响应 nss_ldap 模块对 nss_getpwent() 调用的处理。NSCD 缓存该信息,以便从缓存来解析所有对 getpwent() 的后续调用,实际上根本不调用 nss_ldap 模块。

随着 NSCD 使缓存老化,问题也出现了。从首次缓存条目起,在固定的时间间隔内(5 分钟),所有条目均在缓存中刷新,而对 getpwent() 的下一次调用将生成包含 10,000 个用户对象的 LDAP 流量。

NSCD 缓存失败。

NSCD 缓存失败的请求,以降低持续调用 NSS 函数将引发故障的可能性。缓存失败的原因是要在一般失败情况中不持续使用特定于模块的资源(比如:网络)。

考虑以下示例:id 命令调用 NSS 接口 (getpwnam() 和其他接口)来显示某个用户的信息。假设某个黑客决定在带有 10,000 个用户对象的 LDAP 服务器上尝试使用 PADL nss_ldap 模块。将通过 LDAP 流量 使 LDAP 服务器负载沉重并使网络饱和的简单攻击将在外壳脚本循环中针对一个不存在的用户调用 id 命令。针对这种情况的解决方案是开启逆向缓存功能,以便到缓存老化时,所有针对 NSS 接口的失败调用(自首个失败的请求后)都将当为失败返回,而不调用 nss_ldap NSS 模块。

缓存失败的问题是使得快速解析合法失败变得困难。例如,如何您试图将文件的所有权更改为一个新员工的用户名,需执行以下命令:

chown newusername filename

但是将返回一个错误,因为管理员还没有创建这个新用户的帐户。当管理员创建了这个新用户的帐户时,再次尝试 chown 命令,但仍将失败。这次,chown 失败是因为 NSCD 从其缓存返回了失败响应。

在 Red Hat 9 上安装和配置 NSCD

标准的 Red Hat 9 包含 NSCD RPM (nscd-2.3.2-11.9.i386.rpm)。它包含一个标准的被预配置为缓存密码、组和主机信息的配置文件 /etc/nscd.conf。

默认情况下,不在运行级脚本中激活 NSCD 守护程序 (nscd);也不将其配置为由 Red Hat chkconfig 运行级配置工具进行管理。您必须使用 chkconfig 针对管理而启用 nscd,并将 nscd 配置为在所%

排行榜 更多 +
终极街头格斗

终极街头格斗

休闲益智 下载
大炮轰飞机

大炮轰飞机

飞行射击 下载
像素打僵尸

像素打僵尸

飞行射击 下载