使域用户的所有 Kerberos 票证无效

使域用户的所有 Kerberos 票证无效

我停用了 Active Directory 域用户并注销了他的计算机。我不确定,也许他登录了其他地方(某些交换机、路由器等),所以我很好奇是否可以使他的 Kerberos 票证无效,这样所有会话都会立即中断。我阅读了相关内容,发现一些帖子说可以使用

klist purge -li 0x3e7 -s <server> -c <domain-user>

在域中的任何计算机(/w 特权权限)上。但这是否也会影响交换机和路由器(使用 AAA 身份验证)立即关闭所有会话?

答案1

Kerberos 票证在其有效期内保持有效。

使用 Kerberos 的服务“离线”验证收到的票证,无需联系 KDC或任何其他中央机构——只要票证能使用该服务的密钥 (keytab) 解密,它就是有效的。因此,除了在服务处之外,没有其他方法可以撤销票证。

这意味着如果用户仅有的拥有“krbtgt”票证,可以通过禁用用户帐户在 KDC 处“撤销”(即让 KDC 拒绝签发更多票证);但是,如果用户已经拥有其他服务(例如 HTTP webapp)的票证,这些票证将保持有效,并且每个服务都可以根据需要自行验证帐户。

当然,服务本身可以做额外的检查,比如查询 LDAP 帐户是否存在且未被锁定——例如,您的路由器将接受 Kerberos 票证进行身份验证,但随后可能会检查 AAA 服务器进行授权(例如从 LDAP 获取特权),并且用户将被拒绝为未经授权(尽管已经成功通过身份验证)。

但对于不使用任何额外授权服务器的服务(例如只需要票证的 Web 应用程序或 SSH 主机),您就没那么幸运了——无论票证的有效期有多长,它都会保持有效。幸运的是,在几乎所有情况下,这都只是“到今天结束为止”,即最多 24 小时。

最后,即使门票变为无效,这不会导致会话立即中断。经过 Kerberos 身份验证的 RDP 或 SSH 会话可以无限期地保持活动状态(除非它们将 gss-keyex 与 SSH 结合使用,在这种情况下它们将保持活动状态直到下一个 SSH 重新密钥间隔)。只要 SSO cookie 有效(取决于系统),经过 Kerberos 身份验证的 Web SSO 就可以保持活动状态。

(这通常适用于任何身份验证机制,而不仅仅是 Kerberos。例如,如果您使用公钥通过 SSH 连接到服务器,即使该密钥后来从 authorized_keys 中删除,您的会话仍保持打开状态。

声明可以klist purge -li 0x3e7 -s <server> -c <domain-user>在域中的任何计算机(/w 特权权限)上使用

这听起来完全不对。是的,确实klist purge存在,但它会清除票证从客户端机器运行该程序的计算机 – 而不是某种中央域范围的数据库。只有在包含要销毁的票据的计算机上执行此操作才有用,而不是在“任何计算机”上执行此操作。(例如,用户可以清除自己的票据,通过使用新的 PAC 获取新票据来刷新其 AD 组成员身份。)

此外,该选项-li 0x3e7告诉 klist 访问计算机的“机器”票证缓存,而不是任何用户的票证缓存。您可以使用它来清除机器本身获得的票证(例如,在不重新启动的情况下刷新计算机的组成员身份),但您可以不是如果您想从系统中删除您自己的“用户”票证,请使用此选项 - 至少不是这个特定的 LUID。

但这是否也会影响交换机和路由器(使用 AAA 身份验证)立即关闭所有会话?

不,出于上述所有原因。

对于交换机和路由器来说,如果他们使用 RADIUS 或 TACACS AAA 服务器进行授权此外Kerberos 身份验证,并且如果设置了每个命令通过 AAA 进行授权(而不是仅在登录时检查),那么他们可能会在发出下一个命令并且 AAA 服务器说“根据 LDAP,帐户似乎已被锁定”时立即关闭会话。但除此之外,会话仍保持打开状态。

相关内容