如何更改 Kerberos 默认票证有效期

如何更改 Kerberos 默认票证有效期

我们的 KDC 服务器运行的是 Ubuntu Dapper (2.6.15-28) 或 Hardy (2.6.24-19)。Kerberos 软件是 Kerberos 5 的 MIT 实现。默认情况下,Kerberos 票证的有效期为 10 小时。但是,我们希望将其延长一点(例如 14 小时)以更好地满足我们的需求。我做了以下操作,但票证有效期仍然保持在 10 小时:

  1. 在所有 KDC 服务器上,在“[realms]”下设置以下参数,/etc/krb5kdc/kdc.conf然后重新启动 KDC 守护进程:

    max_life = 14h 0m 0s
    
  2. 通过“kadmin”,通过“modprinc -maxlife 14hours”更改测试主体的“maxlife”。

    “getprinc ”显示最大票证寿命确实是14小时:最大票证寿命:0天14:00:00

  3. 在 Kerberos 客户端计算机上,在 /etc/krb5.conf 中的 [libdefaults]、[realms]、[domain_realm] 和 [login] 下设置以下参数(基本上在所有地方,因为我尝试过的任何方法都没有效果):

    ticket_lifetime = 13hrs
    default_lifetime = 13hrs
    

使用上述设置,我假设票证的有效期上限为 13 小时。当我这样做时k5start -l 14h -t <principal>,我看到“续订至”行的结束时间现在是从开始时间开始的 14 小时:

Valid starting     Expires            Service principal
04/13/10 16:42:05  04/14/10 02:42:05  krbtgt/<realm>@<realm>
 renew until 04/14/10 06:42:03

“-l 13h” 将使“更新至”行中的结束时间成为开始时间之后的 13 小时。

但是,该票仍将在 10 小时后过期 (04/13 16:42:05 - 014/14 02:42:05)。

我是否没有更改正确的配置文件/参数,在获取 Kerberos 票证时没有指定正确的选项,或者其他什么原因?

答案1

事实证明,我还必须更改服务主体的“maxlife”参数。具体来说,我必须执行“modprinc -maxlife 14hours krbtgt/[REALM_in_CAPS]”才能将生命周期增加到 14 小时。

综上所述,票的有效期是最低限度下列值:

  • max_lifekdc.confKDC 服务器上。

  • ticket_lifetimekrb5.conf客户端机器上。

  • 用户主体的 maxlife。

  • 服务主体“krbtgt/[REALM_in_CAPS]”的 maxlife => 我错过了什么!

  • 票证请求中所请求的生命周期。例如:

    • k5start -l 14h
    • kinit -l 14h
  • maxlife对于 AFS 服务主体“afs/[realm_in_lower_case]”,如果您想延长 AFS 令牌的有效期。

谜团已揭开!

相关内容