![]() | |
Sun Java System Identity Synchronization for Windows 1 2004Q3 安装和配置指南 |
第 11 章
配置安全性本章提供有关为部署配置安全性的重要信息。内容具体安排如下:
安全性概述密码是敏感信息;因此,Identity Synchronization for Windows 采取安全预防措施来确保用于访问要同步目录的用户和管理密码证书的安全。
本节涵盖了以下安全方法:
此安全方法旨在防止下列事件发生:
指定配置密码
为了在敏感信息存储在产品配置目录期间以及通过网络传输期间对其进行保护,Identity Synchronization for Windows 使用配置密码。管理员在安装“核心”时指定配置密码,而且在打开“控制台”或运行 Identity Synchronization for Windows 安装程序时必须提供此密码。
注意
系统管理器必须先访问配置密码,然后才能将其传递到连接器,这样系统管理器才会将此密码存储在其初始化文件中。
文件系统访问控制会防止无特权用户访问系统管理器的初始化文件。Identity Synchronization for Windows 安装程序不对此密码强制实施密码策略。
要在选择配置密码时提高安全性,请参阅加强安全性。
使用 SSL
可将 Identity Synchronization for Windows 配置为在组件使用 LDAP 的任何位置使用基于 SSL 的 LDAP。所有对 Message Queue 的访问均通过 SSL 进行保护。
从 Directory Server 同步到 Active Directory 时,必须在 Active Directory Connector 和 Active Directory 之间使用 SSL。
需要信任 SSL 证书
默认情况下,配置为使用 SSL 的连接器将接受服务器(即 Directory Server 或 Active Directory)返回的任何 SSL 证书 — 包括非信任证书、到期证书及无效证书。连接器和服务器之间的所有网络通信都将被加密,但是连接器检测不出模仿真实 Active Directory 或 Directory Server 的服务器。
要强制连接器只接受信任证书,请使用“控制台”在“目录源配置”向导的“指定高级安全选项”面板中启用“需要信任 SSL 证书”选项(请参阅(more...) )。启用此选项之后,必须将适当的 CA 证书添加到 idsync certinfo 报告的连接器证书数据库中。
已生成的 3DES 密钥
从配置密码生成的 3DES 密钥用于保护产品配置目录中的所有敏感信息。除日志消息外,传送至 Message Queue 的所有消息均采用了每主题 3DES 密钥加密方式。在连接器和子组件之间发送的消息会采用每会话 3DES 密钥加密方式。Directory Server 插件采用 3DES 密钥方式对所有用户密码更改进行加密。
SSL 和 3DES 密钥保护概要
表 11-1 概述了 Identity Synchronization for Windows 如何保护通过网络发送的敏感信息。
图 11-1 概括说明了本节中所讨论的安全功能。
图 11-1
Identity Synchronization for Windows 安全性概述
Message Queue 访问控制
Identity Synchronization for Windows 使用 Message Queue 的访问控制来防止在未经授权的情况下对消息订阅和消息发布进行访问,从而允许各连接器信任收到的消息。
访问 Message Queue 代理程序时,将提供只有 Message Queue 和连接器识别的唯一用户名和密码。经由 Message Queue 发送的每条消息均采用每主题 3DES 密钥方式加密,从而保护消息内容,以防止不知道主题密钥的外来者发送有实际意义的消息。这些措施可防止 (a) 攻击者将虚假密码同步消息发送到连接器,以及 (b) 攻击者假冒连接器接收真实的密码更新。
注意
默认情况下,Message Queue 的客户机(如连接器和系统管理器)将接受 Message Queue 代理程序返回的任何 SSL 证书。有关增强 Message Queue 证书验证功能及其它与 Message Queue 相关的安全问题的详细信息,请参阅加强安全性。
目录证书
连接器必须具有特权证书,才能更改 Active Directory 和要同步的 Directory Server 中的密码。在将这些特权证书存储到产品配置目录中之前会对其进行加密。
持久存储保护概要
表 11-2 概述了 Identity Synchronization for Windows 如何保护存储在磁盘上的敏感信息。
表 11-2 持久存储保护
持久存储
机密信息
保护
存储在配置目录服务器中的产品配置
在产品的配置目录中存储用于访问各目录的证书和每个 Message Queue 主题的 3DES 密钥。
存储在产品配置目录中的所有敏感信息均采用了从配置密码生成的 3DES 密钥进行加密。有关进一步保护产品配置目录的建议,请参阅加强安全性。
Directory Server
Retro ChangelogDirectory Server 插件捕获密码更改,并在写入 Directory Server Retro Changelog 之前对这些密码更改进行加密。
Directory Server 插件会采用每个部署所独有的 3DES 密钥对所有用户密码更改进行加密。
Message Queue 代理程序持久存储
Message Queue 代理程序将存储在所有连接器之间发送的密码同步消息。
除日志消息外,所有持久消息均以每主题 3DES 密钥方式加密。
Message Queue 代理程序目录证书
Message Queue 代理程序将根据产品的配置目录来验证用户。它使用在“核心”安装期间提供的目录管理用户名和密码连接到配置目录。
目录密码被存储在利用文件系统访问控制进行保护的 passfile 中。
系统管理器引导文件
系统管理器的引导文件包含访问该配置的信息。其中包括“核心”安装期间所提供的配置密码和目录管理用户名和密码。
该文件通过文件系统访问控制进行保护。
连接器和中心记录器引导文件
每个连接器及中心记录器均有一个初始配置文件,其中包含用于访问 Message Queue 的证书。
这些文件通过文件系统访问控制进行保护。
Directory Server 插件引导配置
该“插件”的配置(存储在 cn=config 中)包括用于连接到连接器的证书。
cn=config 子树通过 ACI 进行保护,而镜像此树的 dse.ldif 文件则通过文件系统访问控制进行保护。
NT Password Filter 和 NT Change Detector 引导配置
存储在 Windows 注册表中的 NT 子组件的配置包含了用于连接到相应连接器的证书。
如果对 PDC 注册表的访问未受到保护,则可通过访问控制保护这些注册表主键。
Windows Connector 的对象高速缓存
Windows 连接器将散列的用户密码存储在连接器的对象高速缓存中。
这些密码不以明文形式存储,而是采用 MD5 散列方法进行了加密。这些数据库文件通过文件系统访问控制进行保护。(请参阅加强安全性。)
加强安全性本节描述了本产品当前版本中存在的潜在安全缺陷以及有关如何在本产品默认配置之外扩展和加强安全性的建议。它包括以下内容:
配置密码
配置密码用于保护敏感的配置信息,但安装程序不会对此密码强制实施任何密码策略;请确保此密码遵循某些严格的指导方针,选择不易破解的复杂密码,并遵循重要密码的标准策略指导方针。
例如,其长度至少应为八个字符,其中包括大写字母、小写字母和非字母数字字符。它不应包括您的姓名、姓名首字母或日期。
创建配置目录证书
要访问产品配置目录所在的 Directory Server,您的证书必须处于“配置管理员”组中。但是,如果出于某种原因需要创建 admin 证书之外的证书,请考虑下列事项:
安装程序会要求您为存储在“控制台”管理子树中的用户提供证书。但是,“核心”安装程序不会将非 admin 用户扩展到“uid=admin,ou=Administrators, ou=TopologyManagement, o=NetscapeRoot”。因此,必须在“核心”安装期间指定整个 DN。
要创建新的非 admin 用户:
有关在 Directory Server 中管理访问控制的详细信息,请参阅《Sun Java System Directory Server 5 2004Q2 Administrator’s Guide》第 6 章:“管理访问控制”。
Message Queue 客户机证书验证
默认情况下,Message Queue 的客户机(如连接器和系统管理器)将接受 Message Queue 代理程序返回的任何 SSL 证书。
javax.net.ssl.trustStore 属性应指向信任代理程序证书的 JSEE keystore,例如,可在装有“核心”的机器上使用 /etc/imq/keystore,因为这与代理程序所用的 keystore 相同。
Message Queue 自签名 SSL 证书
默认情况下,Message Queue 代理程序使用自签名 SSL 证书。要安装不同的证书,请使用随 Java 提供的 keytool 实用程序来修改该代理程序的 keystore(在 Solaris 上为 /var/imq/instances/isw-broker/etc/keystore,而在 Windows 2000 上为 <mq_installation_root>/var/instances/isw-broker/etc/keystore)。该证书的别名必须是 imq。
访问 Message Queue 代理程序
默认情况下,Message Queue 使用除了它的端口映射器之外的动态端口进行所有服务。要通过防火墙访问该代理程序或对可连接到该代理程序的主机集进行限制,该代理程序应使用固定端口进行所有服务。
这可以通过设置 imq.<service_name>.<protocol_type>.port 代理程序配置属性来实现。有关详细信息,请参阅《Sun Java System Message Queue Administrator’s Guide》。
配置目录证书验证
在通过 SSL 连接到产品配置目录时,系统管理器将接受任何证书;在通过 SSL 连接到产品配置目录时,Message Queue 代理程序将接受任何证书。当前,没有任何方法可以使系统管理器或 Message Queue 代理程序验证产品的配置目录 SSL 证书。
限制对配置目录的访问
安装“核心”后,在将信息添加到存储产品的配置目录的 Directory Server 的过程中,不包括添加任何访问控制信息。要将访问权限仅限于配置管理员,可使用以下 ACI:
(targetattr = "*") (target = "ldap:///ou=IdentitySynchronization,ou=Services,dc=example,dc=com") (version 3.0;acl "Test";deny (all)(groupdn != "ldap:///cn=Configuration Administrators, ou=Groups, ou=TopologyManagement, o=NetscapeRoot");)
有关在 Directory Server 中管理访问控制的详细信息,请参阅《Sun Java System Directory Server 5 2004Q2 Administrator’s Guide》第 6 章:“管理访问控制”。
保护复制配置使用复制连接到 Directory Server 的部署将遵循在安全性概述中确定的相同规则。本节给出一个复制配置的示例,并说明如何在此配置中启用 SSL。
注意
有关规划、部署和保护复制配置的概述,请参阅Appendix E, "复制环境的安装注意事项."
表 11-3 列出需要 CA 证书的配置组件并确定何处需要何种证书。
图 11-2 显示在 MMR 配置中安装的 Identity Synchronization for Windows,其中有两台复制 Directory Server 主服务器和多个 Directory Server 只读集线器或用户服务器。每个 Directory Server 有一个“插件”,而且只有一个 Directory Server Connector、一个 Active Directory 系统和一个 Active Directory Connector。
图 11-2
复制配置
使用 idsync certinfo使用 idsync certinfo 实用程序根据当前的 Identity Synchronization for Windows SSL 设置确定需要什么证书。执行 idsync certinfo 以检索有关每个证书数据库需要哪些证书的信息。
参数
表 11-4 描述了可与 idsync certinfo 子命令一同使用的参数:
用法
以下示例使用 idsync certinfo 来搜索被指定在 SSL 通信下运行的系统组件。此示例的结果确定了两个连接器(CNN101 和 CNN100),并提供有关在何处导入相应 CA 证书的说明。
在 Directory Server 中启用 SSL请按照以下步骤使用自签名证书在 Directory Server 中启用 SSL。
- 通过输入以下内容为 Directory Server 创建新的密钥证书数据库:
C:\Program Files\Sun\MPS\shared\bin\certutil.exe -d . -P slapd-hostname-
In order to finish creating your database, you
must enter a password which will be used to
encrypt this key and any future keys.
The password must be at least 8 characters long,
and must contain at least one non-alphabetic character.
Enter new password:
Re-enter password:
- 生成一个自签名证书,它将是 Directory Server 使用的服务器证书。请确保根据当前运行 Directory Server 的服务器的主机名来选择主题 DN。
注意
默认情况下,自签名证书的有效期为三个月。如果您要延长或缩短该期限,请使用 -v <months-valid> 选项。例如,要将期限延长到 24 个月,请输入 -v 21;或者,要将期限缩短为一个月,请输入 -v -2。
C:\Program Files\Sun\MPS\shared\bin\certutil.exe -d . -P slapd-hostname- -S -n server-cert -s "cn=hostname.example.com,c=us" -x -t CTu,,
A random seed must be generated that will be used in the
creation of your key.One of the easiest ways to create a
random seed is to use the timing of keystrokes on a keyboard.
To begin, type keys on the keyboard until this progress meter
is full.DO NOT USE THE AUTOREPEAT FUNCTION ON YOUR KEYBOARD!
Continue typing until the progress meter is full:
|************************************************************|
Finished.Press enter to continue:
Enter Password or Pin for "NSS Certificate DB":
Generating key.This may take a few moments...
- 显示用于检查用途的证书。
C:\Program Files\Sun\MPS\shared\bin\certutil.exe -L -d . -P slapd-hostname-
Certificate Name Trust Attributes
server-cert CTu,,
p Valid peer
P Trusted peer (implies p)
c Valid CA
T Trusted CA to issue client certs (implies c)
C Trusted CA to certs(only server certs for ssl) (implies c)
u User cert
w Send warning
- 创建一个 PIN 文件,从而不必在每次重新启动 Directory Server 时输入证书数据库密码。
C:\Program Files\Sun\MPS\alias > echo Internal (Software) Token:<secret12> slapd-hostname-pin.txt
- 在 Directory Server 中启用 SSL,如下所述:
从“Directory Server 证书数据库”检索“CA 证书”
请确保已在 Directory Server 中启用了 SSL。要将 Directory Server 证书导出到临时文件,以便您可将其导入到 Directory Server Connector 的证书数据库,请发出以下命令:
C:\Program Files\Sun\MPS\shared\bin\certutil.exe -L -d . -P slapd-hostname- -n server-cert -a > C:\s-cert.txt
这些示例将在直接位于服务器根下面的 alias 目录中运行。否则,Directory Server 会找不到证书数据库。
在 Active Directory Connector 中启用 SSLIdentity Synchronization for Windows 自动通过 SSL 检索 Active Directory SSL 证书,并使用您为“连接器”提供的证书将它们导入到“连接器”的证书数据库中。
但是,如果出现错误(例如,找到的证书无效或者找不到 SSL 证书),则可检索出一个 Active Directory CA 证书并将其添加到“连接器”证书数据库。有关说明请参阅以下各节:
检索 Active Directory 证书
如果出错,可如下列各节所述使用 certutil(随 Windows 2000/2003 提供的一个程序)或 LDAP 检索 Active Directory 证书。
使用 Windows 的 certutil
要使用 certutil 程序检索“Active Directory 证书”:
使用 LDAP
要使用 LDAP 检索“Active Directory 证书”:
- 打开文本编辑器并剪切第一个 CA 证书属性的第一个值(它应是一个 base64 编码的文本块)。请将该值(文本块)粘贴到文本编辑器中(仅限该值)。编辑其内容,以使这些行不会以空白开始。
- 在第一行之前添加 -----BEGIN CERTIFICATE-----,在最后一行之后添加 -----END CERTIFICATE-----。请参阅下列示例:
-----BEGIN CERTIFICATE-----
MIIDvjCCA2igAwIBAgIQDgoyk+Tu14NGoQnxhmNHLjANBgkqhkiG9w0BAQUFA DCBjjEeMBwGCSqGSIb3DQEJARYPYmVydG9sZEBzdW4uY29tMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVFgxDzANBgNVBAcTBkF1c3RpbjEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEQMA4GA1UECxMHaVBsYW5ldDEUMBIGA1UEAxMLUmVzdGF1cmFudHMwHhcNMDIwMTExMDA1NDA5WhcNMTIwMTExMDA1OTQ2WjCBjjEeMBwGCSqGSIb3DQEJARYPYmVydG9sZEBzdW4uY29tMQswCQYDVQQGEwJVUELMAkGA1UECBMCVFgxDzANBgNVBAcTBkF1c3RpbjEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEQMA4GA1UECxMHaVBsYW5ldDEUMBIGA1UEAxMLUmVzdGF1cmFudHMwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAyekZa8gwwhw3rLK3eV/12St1DVUsg31LOu3CnB8cMHQZXlgiUgtQ0hm2kpZ4nEhwCAHhFLD3iIhIP4BGWQFjcwIDAQABo4IBnjCCAZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgFGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ5Bgt6Oypq7T8Oykw4LH6ws2d/IMIIBMgYDVR0fBIIBKTCCASUwgdOggdCggc2GgcpsZGFwOi8vL0NOPVJlc3RhdXJhbnRzLENOPWRvd2l0Y2hlcixDTj1DRFAsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1yZXN0YXVyYW50cyxEQz1jZW50cmFsLERDPXN1bixEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdGNsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50ME2gS6BJhkdodHRwOi8vZG93aXRjaGVyLnJlc3RhdXJhbnRzLmNlbnRyYWwuc3VuLmNvbS9DZXJ0RW5yb2xsL1Jlc3RhdXJhbnRzLmNybDAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0BAQUFAANBAL5R9R+ONDdVHWu/5Sd9Tn9dpxN8oegjS88ztv1HD6XSTDzGTuaaVebSZV3I+ghSInsgQbH0gW4fGRwaI BvePI4=
-----END CERTIFICATE-----
- 将该证书保存到文件(如 ad-cert.txt)中。
- 然后,便可将该文件(例如,ad-cert.txt)导入到证书数据库中。有关说明,请继续阅读下一节将 Active Directory 证书添加到连接器的证书数据库中。
将 Active Directory 证书添加到连接器的证书数据库中
只有在安装 Active Directory Connector 后为该“连接器”启用了 SSL,或者在安装过程中提供了无效证书时,才能使用此过程。
- 在安装 Active Directory Connector 的机器上,停止 Identity Synchronization for Windows 服务/守护进程。
- 使用下列方法之一检索 Active Directory CA 证书:
- 假设 Active Directory Connector 的连接器 ID 为 CNN101
(有关从连接器 ID 到其管理的目录源之间的映射,请参阅 logs/central/error.log),转至其证书数据库目录(在安装它的机器上),并导入证书文件:- 重新启动 Identity Synchronization for Windows 服务/守护进程。
注意
因为 Directory Server certutil.exe 在安装 Directory Server 5 2004Q2 时自动安装,您无法将 CA 证书添加到安装在无 Directory Server 的机器上的连接器中。
至少,您必须将 Directory Server 5 2004Q2 软件包的 Sun Java System Server Basic Libraries 和 Sun Java System Server Basic System Libraries 安装在安装了 Active Directory Connector 的服务器上。(您不必安装 Administration Server 或 Directory Server 组件。)
此外,请务必从“控制台”选择 JRE 子组件(以确保您能够进行卸载)。
将 Active Directory 证书添加到 Directory Server请按照以下步骤将 Active Directory CA 证书添加到 Directory Server 证书数据库中。
将 Directory Server 证书添加到 Directory Server Connector如果在 Directory Server 插件和 Active Directory 之间启用 SSL 通信,则必须将 Active Directory CA 证书添加到每个 Directory Server 主服务器的证书数据库中。请按下列步骤操作:
- 在安装了 Directory Server Connector 的机器上,停止 Identity Synchronization for Windows 服务/守护进程。
- 检索 Directory Server CA 证书。
- 假定该 Directory Server Connector 的连接器 ID 为 CNN100(有关从连接器 ID 到其管理的目录源之间的映射,请参阅 logs/example/error.log),转至其证书数据库目录(在安装它的机器上),并导入 cacert.bin 文件:
- 重新启动 Identity Synchronization for Windows 服务/守护进程。