Red Hat Training

A Red Hat training course is available for RHEL 8

52.2. 验证 Kerberos keytab 文件是否与 IdM 数据库同步

当您更改 Kerberos 密码时,IdM 会自动生成新的对应的 Kerberos 密钥并增加其密钥版本号(KVNO)。如果没有使用新密钥和 KVNO 更新 Kerberos keytab,则任何依赖于 keytab 获取有效密钥的服务可能无法验证 Kerberos 密钥分发中心(KDC)。

如果您的 IdM 服务无法与其他服务通信,请使用以下步骤验证您的 Kerberos keytab 文件与存储在 IdM 数据库中的密钥同步。如果它们没有同步,请使用更新的密钥和 KVNO 来检索 Kerberos keytab。这个示例比较,并检索 IdM 服务器更新的 DNS 主体。

先决条件

  • 您必须作为 IdM admin 帐户进行身份验证才能检索 keytab 文件
  • 您必须以 root 帐户的身份进行身份验证,才能修改其他用户所拥有的 keytab 文件

流程

  1. 在您要验证的 keytab 中显示主体的 KVNO。在以下示例中,/etc/named.keytab 文件具有 KVNO 为 2 的 DNS/server1.idm.example.com@EXAMPLE.COM 主体的密钥。

    [root@server1 ~]# klist -ekt /etc/named.keytab
    Keytab name: FILE:/etc/named.keytab
    KVNO Timestamp           Principal
    ---- ------------------- ------------------------------------------------------
       2 11/26/2021 13:51:11 DNS/server1.idm.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
       2 11/26/2021 13:51:11 DNS/server1.idm.example.com@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
       2 11/26/2021 13:51:11 DNS/server1.idm.example.com@EXAMPLE.COM (camellia128-cts-cmac)
       2 11/26/2021 13:51:11 DNS/server1.idm.example.com@EXAMPLE.COM (camellia256-cts-cmac)
  2. 显示存储在 IdM 数据库中的主体的 KVNO。在这个示例中,IdM 数据库中密钥的 KVNO 与 keytab 中的 KVNO 不匹配。

    [root@server1 ~]# kvno DNS/server1.idm.example.com@EXAMPLE.COM
    DNS/server1.idm.example.com@EXAMPLE.COM: kvno = 3
  3. 作为 IdM admin 帐户进行身份验证。

    [root@server1 ~]# kinit admin
    Password for admin@IDM.EXAMPLE.COM:
  4. 为主体检索更新的 Kerberos 密钥并将其存储在其 keytab 中。以 root 用户身份执行此步骤,以便您可以修改 /etc/named.keytab 文件,该文件归 named 用户所有。

    [root@server1 ~]# ipa-getkeytab -s server1.idm.example.com -p DNS/server1.idm.example.com -k /etc/named.keytab

验证

  1. 在 keytab 中显示主体的更新 KVNO。

    [root@server1 ~]# klist -ekt /etc/named.keytab
    Keytab name: FILE:/etc/named.keytab
    KVNO Timestamp           Principal
    ---- ------------------- ------------------------------------------------------
       4 08/17/2022 14:42:11 DNS/server1.idm.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96)
       4 08/17/2022 14:42:11 DNS/server1.idm.example.com@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
       4 08/17/2022 14:42:11 DNS/server1.idm.example.com@EXAMPLE.COM (camellia128-cts-cmac)
       4 08/17/2022 14:42:11 DNS/server1.idm.example.com@EXAMPLE.COM (camellia256-cts-cmac)
  2. 显示 IdM 数据库中存储的主体的 KVNO,并确保它与 keytab 中的 KVNO 匹配。

    [root@server1 ~]# kvno DNS/server1.idm.example.com@EXAMPLE.COM
    DNS/server1.idm.example.com@EXAMPLE.COM: kvno = 4