我们的 KDC 服务器运行的是 Ubuntu Dapper (2.6.15-28) 或 Hardy (2.6.24-19)。Kerberos 软件是 Kerberos 5 的 MIT 实现。默认情况下,Kerberos 票证的有效期为 10 小时。但是,我们希望将其延长一点(例如 14 小时)以更好地满足我们的需求。我做了以下操作,但票证有效期仍然保持在 10 小时:
在所有 KDC 服务器上,在“[realms]”下设置以下参数,
/etc/krb5kdc/kdc.conf
然后重新启动 KDC 守护进程:max_life = 14h 0m 0s
通过“kadmin”,通过“modprinc -maxlife 14hours”更改测试主体的“maxlife”。
“getprinc ”显示最大票证寿命确实是14小时:最大票证寿命:0天14:00:00
在 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_life
在kdc.conf
KDC 服务器上。ticket_lifetime
在krb5.conf
客户端机器上。用户主体的 maxlife。
服务主体“krbtgt/[REALM_in_CAPS]”的 maxlife => 我错过了什么!
票证请求中所请求的生命周期。例如:
k5start -l 14h
kinit -l 14h
maxlife
对于 AFS 服务主体“afs/[realm_in_lower_case]”,如果您想延长 AFS 令牌的有效期。
谜团已揭开!