34.9. 对设置跨林信任进行故障排除
了解更多有关对在身份管理(IdM)环境和活动目录(AD)林之间配置跨林信任的过程进行故障排除的信息。
34.9.1. 建立与 AD 的跨林信任时的事件序列
当您使用 ipa trust-add
命令建立与活动目录(AD)域控制器(DC)的跨林信任时,命令会代表运行此命令的用户进行操作,并在 IdM 服务器上执行以下操作。如果在建立跨林信任时遇到问题,您可以使用此列表来帮助缩小并排除您的问题。
第 1 部分:命令验证设置和输入
- 验证 IdM 服务器是否具有 Trust Controller 角色。
-
验证传递给
ipa trust-add
命令的选项。 -
验证与可信林根域关联的 ID range。如果您没有将 ID range 类型和属性指定为
ipa trust-add
命令的选项,则会从活动目录发现它们。
第 2 部分:命令尝试建立到活动目录域的信任
- 为每个信任方向创建单独的信任对象。在两端(IdM 和 AD)都会创建每个对象。如果您要建立单向信任,只在每一端上创建一个对象。
IdM 服务器使用 Samba 套件为活动目录处理域控制器功能,并在目标 AD PDC 上创建信任对象:
-
IdM 服务器建立到目标 DC 上
IPC$
共享的安全连接。从 RHEL 8.4 开始,连接至少需要 Windows Server 2012 及以上版本的 SMB3 协议,以确保会话使用的基于AES 加密的连接足够安全。 -
IdM 服务器使用
LSA QueryTrustedDomainInfoByName
调用来查询是否存在可信域对象(TDO)。 如果 TDO 已存在,则使用
LSA DeleteTrustedDomain
调用删除它。注意如果用来建立信任的 AD 用户帐户没有林根的全部 Enterprise Admin(EA) 或 Domain Admin(DA) 权限,如 Incoming Forest Trust Builders 组的成员,这个调用会失败。如果旧的 TDO 没有被自动删除,则 AD 管理员必须手动将其从 AD 中删除。
-
IdM 服务器使用
LSA CreateTrustedDomainEx2
调用创建一个新的 TDO。TDO 凭证是使用 Samba 提供的密码生成器随机生成的,具有 128 个字符。 然后,使用
LSA SetInformationTrustedDomain
调用修改新的 TDO,以确保信任所支持的加密类型被正确设置:-
RC4_HMAC_MD5
加密类型被启用,即使由于活动目录的设计方式导致 RC4 密钥没有在使用。 -
AES128_CTS_HMAC_SHA1_96
和AES256_CTS_HMAC_SHA1_96
加密类型被启用。
-
-
IdM 服务器建立到目标 DC 上
-
对于林信任,请验证是否可通过
LSA SetInformationTrustedDomain
调用来到达林中域。 使用
LSA RSetForestTrustInformation
调用,添加有关其他林(与 AD 通信时的 IdM,与 IdM 通信时的 AD)的信任拓扑信息。注意此步骤可能会由于以下 3 个原因之一导致冲突:
-
SID 命名空间冲突,报告为
LSA_SID_DISABLED_CONFLICT
错误。无法解决此冲突。 -
NetBIOS 命名空间冲突,报告为
LSA_NB_DISABLED_CONFLICT
错误。无法解决此冲突。 -
DNS 命名空间与顶级名称(TLN)的冲突,报告为
LSA_TLN_DISABLED_CONFLICT
错误。如果 TLN 是因另一个林造成的,则 IdM 服务器可以自动解决它。
要解决 TLN 冲突,IdM 服务器需要执行以下步骤:
- 检索冲突林的林信任信息。
- 将 IdM DNS 命名空间的排除条目添加到 AD 林中。
- 为冲突的林设置林信任信息。
- 重新尝试建立对原始林的信任。
只有通过带有可以更改林信任的 AD 管理员特权的
ipa trust-add
命令进行身份验证,IdM 服务器才能解决这些冲突。如果您没有这些特权的访问权限,则原始林的管理员必须手动执行 Windows UI 的 活动目录域和信任 部分中提到的步骤。-
SID 命名空间冲突,报告为
- 如果不存在,为可信域创建 ID 范围。
- 对于林信任,请查询林根的活动目录域控制器以获取有关林拓扑的详细信息。IdM 服务器使用此信息为可信林中的任何其他域创建额外的 ID 范围。
其他资源
- 信任控制器和信任代理
- 概述文档 (微软)
- 技术文件 (微软)
- Active Directory 中的特权帐户和组 (Microsoft)
34.9.2. 建立 AD 信任的先决条件清单
您可以使用以下清单来查看创建 AD 域信任的先决条件。
组件 | 配置 | 其它详情 |
---|---|---|
产品版本 | 您的活动目录域使用受支持的 Windows 服务器版本。 | |
AD 管理员特权 | 活动目录管理帐户必须是以下组之一的成员:
| |
网络 | 所有 IdM 服务器的 Linux 内核中都启用了 IPv6 支持。 | |
日期和时间 | 验证两个服务器上的日期和时间设置是否匹配。 | |
加密类型 | 以下 AD 帐户有 AES 加密密钥:
如果您最近在 AD 中启用了 AES 加密,请使用以下步骤生成新的 AES 密钥:
| |
firewall | 您已在 IdM 服务器和 AD 域控制器上为双向通信开放了所有必要的端口。 | |
DNS |
| |
Topology | 确保试图与您配置为信任控制器的 IdM 服务器建立信任。 |
34.9.3. 收集尝试建立 AD 信任的调试日志
如果您在 IdM 环境和 AD 域间建立信任时遇到问题,请使用以下步骤启用详细的错误记录,以便您可以收集尝试建立信任的日志。您可以查看这些日志来帮助进行故障排除,或者您可以在红帽技术支持问题单中提供这些信息。
先决条件
- 您需要 root 权限来重启 IdM 服务。
流程
要为 IdM 服务器启用调试,请创建具有以下内容的文件
/etc/ipa/server.conf
。[global] debug=True
重启
httpd
服务以载入调试配置。[root@trust_controller ~]# systemctl restart httpd
停止
smb
和winbind
服务。[root@trust_controller ~]# systemctl stop smb winbind
为
smb
和winbind
服务设置调试日志级别。[root@trust_controller ~]# net conf setparm global 'log level' 100
要为 IdM 框架使用的 Samba 客户端代码启用调试日志记录,请编辑
/usr/share/ipa/smb.conf.empty
配置文件使其包含以下内容。[global] log level = 100
删除以前的 Samba 日志。
[root@trust_controller ~]# rm /var/log/samba/log.*
启动
smb
和winbind
服务。[root@trust_controller ~]# systemctl start smb winbind
在您试图建立启用了详细模式的信任时,请打印时间戳,。
[root@trust_controller ~]# date; ipa -vvv trust-add --type=ad ad.example.com
查看以下错误日志文件,以了解有关失败请求的信息:
-
/var/log/httpd/error_log
-
/var/log/samba/log.*
-
禁用调试。
[root@trust_controller ~]# mv /etc/ipa/server.conf /etc/ipa/server.conf.backup [root@trust_controller ~]# systemctl restart httpd [root@trust_controller ~]# systemctl stop smb winbind [root@trust_controller ~]# net conf setparm global 'log level' 0 [root@trust_controller ~]# mv /usr/share/ipa/smb.conf.empty /usr/share/ipa/smb.conf.empty.backup [root@trust_controller ~]# systemctl start smb winbind
可选:如果您无法确定身份验证问题的原因:
收集和归档您最近生成的日志文件。
[root@trust_controller ~]# tar -cvf debugging-trust.tar /var/log/httpd/error_log /var/log/samba/log.*
- 创建一个红帽技术支持问题单,并提供尝试的时间戳和调试日志。
其他资源