Red Hat Training

A Red Hat training course is available for RHEL 8

34.9. 对设置跨林信任进行故障排除

了解更多有关对在身份管理(IdM)环境和活动目录(AD)林之间配置跨林信任的过程进行故障排除的信息。

34.9.1. 建立与 AD 的跨林信任时的事件序列

当您使用 ipa trust-add 命令建立与活动目录(AD)域控制器(DC)的跨林信任时,命令会代表运行此命令的用户进行操作,并在 IdM 服务器上执行以下操作。如果在建立跨林信任时遇到问题,您可以使用此列表来帮助缩小并排除您的问题。

第 1 部分:命令验证设置和输入

  1. 验证 IdM 服务器是否具有 Trust Controller 角色。
  2. 验证传递给 ipa trust-add 命令的选项。
  3. 验证与可信林根域关联的 ID range。如果您没有将 ID range 类型和属性指定为 ipa trust-add 命令的选项,则会从活动目录发现它们。

第 2 部分:命令尝试建立到活动目录域的信任

  1. 为每个信任方向创建单独的信任对象。在两端(IdM 和 AD)都会创建每个对象。如果您要建立单向信任,只在每一端上创建一个对象。
  2. IdM 服务器使用 Samba 套件为活动目录处理域控制器功能,并在目标 AD PDC 上创建信任对象:

    1. IdM 服务器建立到目标 DC 上 IPC$ 共享的安全连接。从 RHEL 8.4 开始,连接至少需要 Windows Server 2012 及以上版本的 SMB3 协议,以确保会话使用的基于AES 加密的连接足够安全。
    2. IdM 服务器使用 LSA QueryTrustedDomainInfoByName 调用来查询是否存在可信域对象(TDO)。
    3. 如果 TDO 已存在,则使用 LSA DeleteTrustedDomain 调用删除它。

      注意

      如果用来建立信任的 AD 用户帐户没有林根的全部 Enterprise Admin(EA)Domain Admin(DA) 权限,如 Incoming Forest Trust Builders 组的成员,这个调用会失败。如果旧的 TDO 没有被自动删除,则 AD 管理员必须手动将其从 AD 中删除。

    4. IdM 服务器使用 LSA CreateTrustedDomainEx2 调用创建一个新的 TDO。TDO 凭证是使用 Samba 提供的密码生成器随机生成的,具有 128 个字符。
    5. 然后,使用 LSA SetInformationTrustedDomain 调用修改新的 TDO,以确保信任所支持的加密类型被正确设置:

      1. RC4_HMAC_MD5 加密类型被启用,即使由于活动目录的设计方式导致 RC4 密钥没有在使用。
      2. AES128_CTS_HMAC_SHA1_96AES256_CTS_HMAC_SHA1_96 加密类型被启用。
  3. 对于林信任,请验证是否可通过 LSA SetInformationTrustedDomain 调用来到达林中域。
  4. 使用 LSA RSetForestTrustInformation 调用,添加有关其他林(与 AD 通信时的 IdM,与 IdM 通信时的 AD)的信任拓扑信息。

    注意

    此步骤可能会由于以下 3 个原因之一导致冲突:

    1. SID 命名空间冲突,报告为 LSA_SID_DISABLED_CONFLICT 错误。无法解决此冲突。
    2. NetBIOS 命名空间冲突,报告为 LSA_NB_DISABLED_CONFLICT 错误。无法解决此冲突。
    3. DNS 命名空间与顶级名称(TLN)的冲突,报告为 LSA_TLN_DISABLED_CONFLICT 错误。如果 TLN 是因另一个林造成的,则 IdM 服务器可以自动解决它。

    要解决 TLN 冲突,IdM 服务器需要执行以下步骤:

    1. 检索冲突林的林信任信息。
    2. 将 IdM DNS 命名空间的排除条目添加到 AD 林中。
    3. 为冲突的林设置林信任信息。
    4. 重新尝试建立对原始林的信任。

    只有通过带有可以更改林信任的 AD 管理员特权的 ipa trust-add 命令进行身份验证,IdM 服务器才能解决这些冲突。如果您没有这些特权的访问权限,则原始林的管理员必须手动执行 Windows UI 的 活动目录域和信任 部分中提到的步骤。

  5. 如果不存在,为可信域创建 ID 范围。
  6. 对于林信任,请查询林根的活动目录域控制器以获取有关林拓扑的详细信息。IdM 服务器使用此信息为可信林中的任何其他域创建额外的 ID 范围。

34.9.2. 建立 AD 信任的先决条件清单

您可以使用以下清单来查看创建 AD 域信任的先决条件。

表 34.4. 表

组件配置其它详情

产品版本

您的活动目录域使用受支持的 Windows 服务器版本。

Windows 服务器支持的版本

AD 管理员特权

活动目录管理帐户必须是以下组之一的成员:

  • AD 林中的 Enterprise Admin (EA)
  • AD 林的林根域中的 Domain Admins (DA)
 

网络

所有 IdM 服务器的 Linux 内核中都启用了 IPv6 支持。

IdM 中的 IPv6 要求

日期和时间

验证两个服务器上的日期和时间设置是否匹配。

IdM 的时间服务要求

加密类型

以下 AD 帐户有 AES 加密密钥:

  • AD 管理员
  • AD 用户帐户
  • AD 服务

如果您最近在 AD 中启用了 AES 加密,请使用以下步骤生成新的 AES 密钥:

  1. 在林中重新建立任何 AD 域间的信任关系。
  2. 更改 AD 管理员、用户帐户和服务的密码。

firewall

您已在 IdM 服务器和 AD 域控制器上为双向通信开放了所有必要的端口。

IdM 和 AD 间的通信所需的端口

DNS

  • IdM 和 AD 各自都有唯一的主 DNS 域。
  • IdM 和 AD DNS 域不能重叠。
  • LDAP 和 Kerberos 服务的正确的 DNS 服务(SRV)记录。
  • 您可以解析信任中所有 DNS 域的 DNS 记录。
  • Kerberos 域名称是主 DNS 域名的大写版本。例如,DNS 域 example.com 具有对应的 Kerberos 域 EXAMPLE.COM

为信任配置 DNS 和域设置

Topology

确保试图与您配置为信任控制器的 IdM 服务器建立信任。

信任控制器和信任代理

34.9.3. 收集尝试建立 AD 信任的调试日志

如果您在 IdM 环境和 AD 域间建立信任时遇到问题,请使用以下步骤启用详细的错误记录,以便您可以收集尝试建立信任的日志。您可以查看这些日志来帮助进行故障排除,或者您可以在红帽技术支持问题单中提供这些信息。

先决条件

  • 您需要 root 权限来重启 IdM 服务。

流程

  1. 要为 IdM 服务器启用调试,请创建具有以下内容的文件 /etc/ipa/server.conf

    [global]
    debug=True
  2. 重启 httpd 服务以载入调试配置。

    [root@trust_controller ~]# systemctl restart httpd
  3. 停止 smbwinbind 服务。

    [root@trust_controller ~]# systemctl stop smb winbind
  4. smbwinbind 服务设置调试日志级别。

    [root@trust_controller ~]# net conf setparm global 'log level' 100
  5. 要为 IdM 框架使用的 Samba 客户端代码启用调试日志记录,请编辑 /usr/share/ipa/smb.conf.empty 配置文件使其包含以下内容。

        [global]
        log level = 100
  6. 删除以前的 Samba 日志。

    [root@trust_controller ~]# rm /var/log/samba/log.*
  7. 启动 smbwinbind 服务。

    [root@trust_controller ~]# systemctl start smb winbind
  8. 在您试图建立启用了详细模式的信任时,请打印时间戳,。

    [root@trust_controller ~]# date; ipa -vvv trust-add --type=ad ad.example.com
  9. 查看以下错误日志文件,以了解有关失败请求的信息:

    1. /var/log/httpd/error_log
    2. /var/log/samba/log.*
  10. 禁用调试。

    [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
  11. (可选) 如果无法确定身份验证问题的原因:

    1. 收集和归档您最近生成的日志文件。

      [root@trust_controller ~]# tar -cvf debugging-trust.tar /var/log/httpd/error_log /var/log/samba/log.*
    2. 创建一个红帽技术支持问题单,并提供尝试的时间戳和调试日志。