Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

29.2. 重新打包 Kerberos 主体

重新打包 Kerberos 主体会将带有更高密钥版本号(KVNO)的新 keytab 条目添加到主体的 keytab。原始条目保留在 keytab 中,但不再用于发出票据。
  1. 查找所需时间段内发布的所有 keytab。例如,以下命令使用 ldapsearch 工具显示 2016 年 1 月 1 日 1 日和 11:59 PM 在 2016 年 12 月 31 日创建的所有主机和服务主体:
    # ldapsearch -x -b "cn=computers,cn=accounts,dc=example,dc=com" "(&(krblastpwdchange>=20160101000000)(krblastpwdchange<=20161231235959))" dn krbprincipalname
    # ldapsearch -x -b "cn=services,cn=accounts,dc=example,dc=com" "(&(krblastpwdchange>=20160101000000)(krblastpwdchange<=20161231235959))" dn krbprincipalname
    • searchbase (-b)定义 ldapsearch 查找主体的子树:
      • 主机主体存储在 cn=computers,cn=accounts,dc=example,dc=com 子树下。
      • 服务主体存储在 cn=services,cn=accounts,dc=example,dc=com 子树下。
    • krblastpwdchange 参数按上次更改日期过滤搜索结果。参数接受 GMT 中日期和 HHMMSS 格式的 YYYYMMDD 格式。
    • 指定 dnkrbprincipalname 属性将搜索结果限制为条目名称和主体。
  2. 对于需要重新密钥主体的每个服务和主机,请使用 ipa-getkeytab 工具来检索新的 keytab 条目。传递以下选项:
    • 用于指定主体的 --principal (-p)
      用于指定原始 keytab 位置的 --key tab(-k)
      用于指定身份管理服务器主机名的 --server (-s)
    例如:
    • /etc/krb5.keytab 的默认位置中使用 keytab 重新密钥主机主体:
      # ipa-getkeytab -p host/client.example.com@EXAMPLE.COM -s server.example.com -k /etc/krb5.keytab
    • /etc/httpd/conf/ipa.keytab 的默认位置重新密钥 Apache 服务的 keytab:
      # ipa-getkeytab -p HTTP/client.example.com@EXAMPLE.COM -s server.example.com -k /etc/httpd/conf/ipa.keytab
      重要
      某些服务(如 NFS 版本 4)只支持一组有限的加密类型。将适当的参数传递给 ipa-getkeytab 命令,以正确配置 keytab。
  3. 可选。验证您是否成功更新了主体。使用 klist 实用程序列出所有 Kerberos 票据。例如,要列出 /etc/krb5.keytab 中的所有 keytab 条目:
    # klist -kt /etc/krb5.keytab
    Keytab: WRFILE:/etc/krb5.keytab
    KVNO Timestamp         Principal
    ---- ----------------- --------------------------------------------------------
       1 06/09/16 05:58:47 host/client.example.com@EXAMPLE.COM(aes256-cts-hmac-sha1-96)
       2 06/09/16 11:23:01 host/client.example.com@EXAMPLE.COM(aes256-cts-hmac-sha1-96)
       1 03/09/16 13:57:16 krbtgt/EXAMPLE.COM@EXAMPLE.COM(aes256-cts-hmac-sha1-96)
       1 03/09/16 13:57:16 HTTP/server.example.com@EXAMPLE.COM(aes256-cts-hmac-sha1-96)
       1 03/09/16 13:57:16 ldap/server.example.com@EXAMPLE.COM(aes256-cts-hmac-sha1-96)
    
    输出显示 client.example.com 的 keytab 条目使用更高的 KVNO 重新密钥。原始 keytab 仍存在于数据库中,与之前的 KVNO 一起。
    针对之前的 keytab 发出的票据继续起作用,而使用 KVNO 最高的密钥签发新的票据。这可以避免对系统操作造成任何干扰。