5.2. 为 RHEL 主机配置受管服务帐户

此流程从 lab.example.com Active Directory(AD)域为主机创建一个受管服务帐户(MSA),并配置 SSSD,以便您可以访问并验证 production.example.com AD 域。

注意

如果您需要从 RHEL 主机访问 AD 资源,红帽建议您使用 realm 命令将 RHEL 主机加入到 AD 域中。请参阅使用 SSSD 将 RHEL 系统直接连接到 AD

只有满足以下条件之一时,才执行这个步骤:

  • 您不能将 RHEL 主机加入到 AD 域中,而您想要在 AD 中为该主机创建帐户。
  • 您已将 RHEL 主机加入到 AD 域中,您需要访问另一个 AD 域,其中来自您加入的域的主机凭证无效,比如使用单向信任。

先决条件

  • 确保 RHEL 主机上的以下端口已为 AD 域控制器打开并可以被访问。

    服务端口协议

    DNS

    53

    TCP, UDP

    LDAP

    389

    TCP, UDP

    LDAPS(可选)

    636

    TCP, UDP

    Kerberos

    88

    TCP, UDP

  • 您有 AD Administrator 的密码,它有权在 production.example.com 域中创建 MSA。
  • 您有运行 adcli 命令所需的 root 权限,并修改 /etc/sssd/sssd.conf 配置文件。
  • (可选) 您安装了 krb5-workstation 软件包,其中包含 klist 诊断实用程序。

流程

  1. production.example.com AD 域中为主机创建一个 MSA。

    [root@client ~]# adcli create-msa --domain=production.example.com
  2. 显示创建的 Kerberos keytab 中的 MSA 信息。记录 MSA 名称:

    [root@client ~]# klist -k /etc/krb5.keytab.production.example.com
    Keytab name: FILE:/etc/krb5.keytab.production.example.com
    KVNO Principal
    ---- ------------------------------------------------------------
       2 CLIENT!S3A$@PRODUCTION.EXAMPLE.COM (aes256-cts-hmac-sha1-96)
       2 CLIENT!S3A$@PRODUCTION.EXAMPLE.COM (aes128-cts-hmac-sha1-96)
  3. 打开 /etc/sssd/sssd.conf 文件并选择要添加的相应 SSSD 域配置:

    • 如果 MSA 对应于 来自不同林的 AD 域, 请创建一个名为 [domain/<name_of_domain>] 的新域部分,并输入 MSA 和 keytab 的信息。最重要的选项为 ldap_sasl_authid、LDAP_krb5_keytab, 和 krb5_keytab:

      [domain/production.example.com]
      ldap_sasl_authid = CLIENT!S3A$@PRODUCTION.EXAMPLE.COM
      ldap_krb5_keytab = /etc/krb5.keytab.production.example.com
      krb5_keytab = /etc/krb5.keytab.production.example.com
      ad_domain = production.example.com
      krb5_realm = PRODUCTION.EXAMPLE.COM
      access_provider = ad
      ...
    • 如果 MSA 对应于 本地林的 AD 域, 则以 [domain/root.example.com/sub-domain.example.com] 格式创建新子域部分,并输入关于 MSA 和 keytab 的信息。最重要的选项为 ldap_sasl_authid、LDAP_krb5_keytab, 和 krb5_keytab:

      [domain/ad.example.com/production.example.com]
      ldap_sasl_authid = CLIENT!S3A$@PRODUCTION.EXAMPLE.COM
      ldap_krb5_keytab = /etc/krb5.keytab.production.example.com
      krb5_keytab = /etc/krb5.keytab.production.example.com
      ad_domain = production.example.com
      krb5_realm = PRODUCTION.EXAMPLE.COM
      access_provider = ad
      ...

验证步骤

  • 验证您可以检索 Kerberos ticket-granting ticket(TGT)作为 MSA:

    [root@client ~]# kinit -k -t /etc/krb5.keytab.production.example.com 'CLIENT!S3A$'
    [root@client ~]# klist
    Ticket cache: KCM:0:54655
    Default principal: CLIENT!S3A$@PRODUCTION.EXAMPLE.COM
    
    Valid starting       Expires              Service principal
    11/22/2021 15:48:03  11/23/2021 15:48:03  krbtgt/PRODUCTION.EXAMPLE.COM@PRODUCTION.EXAMPLE.COM
  • 在 AD 中,验证您在 Managed Service Accounts Organizational units(OU)中是否有适用于主机的 MSA。