Linux 上的 Kerberos 身份验证故障排除
与许多其他身份验证协议一样,您可能经常会遇到配置 Linux 使用 Kerberos 进行身份验证的问题。当然,问题总是因您的身份验证阶段而异。
本文解决了您可能会发现的一些问题。我们在此列出的一些问题是:
系统设置引起的问题
因客户端实用程序以及无法使用或管理 Kerberos 环境而产生的问题
KDC加密问题
密钥表问题
Linux Kerberos 系统设置和监控问题故障排除
值得注意的是,您在使用 Linux Kerberos 时可能遇到的问题通常从设置阶段就开始了。最大限度地减少设置和监控问题的唯一方法是执行以下步骤:
步骤 1:确保两台计算机上都正确安装了可用的 Kerberos 协议。
步骤 2:同步两台计算机上的时间,以确保它们在相似的时间范围内运行。值得注意的是,使用网络时间同步(NTS)来确保机器之间的时间间隔在 5 分钟以内。
步骤 3:检查域网络服务 (DNS) 中的所有主机是否具有正确的条目。同时,确保主机文件中的每个条目都有相关的 IP 地址、主机名和完全限定域名 (FQDN)。一个好的条目应该是这样的:
Linux Kerberos 客户端实用程序问题故障排除
如果您发现管理客户端实用程序有困难,您可以随时使用以下三种方法来解决问题:
方法一:使用Klist命令
Klist 命令将帮助您可视化任何凭据缓存中的所有票证或密钥选项卡文件中的密钥。获得门票后,您可以转发详细信息以完成身份验证过程。用于对客户端实用程序进行故障排除的 Klist 输出如下所示:
方法二:使用Kinit命令检查KDC客户端问题
您还可以使用 Kinit 命令确认 KDC 主机和 KDC 客户端是否有任何问题。 Kinit 实用程序将帮助您获取并缓存服务主体和用户的票证授予票证。客户端实用程序问题总是可能由错误的主体名称或错误的用户名引起。
以下是用户主体的 Kinit 语法:
上面的命令在创建用户主体时将提示输入密码。运行该命令时,请确保将用户名替换为目录中的有效条目。
另一方面,服务主体的 Kinit 语法类似于以下屏幕截图中的详细信息。请注意,这可能因一台主机而异:
有趣的是,服务主体的 Kinit 命令不会提示任何密码,因为它使用括号内的密钥选项卡文件来验证服务主体。
方法三:使用kinit命令检查SMP问题
无论上述套件命令是否有效,您都可以运行以下命令。它有助于确定 SMP 主机是否存在任何问题。值得注意的是,在 mail.company.com 上测试您的服务器时,这更有用。
您的 kinit 命令将采用以下结构:
方法4:使用ktpass命令
有时问题可能是您的密码问题。要确定这不是 Linux Kerberos 问题的原因,您可以验证 ktpass 实用程序版本。
对 KDC 支持问题进行故障排除
Kerberos 经常会由于一系列问题而失败。但有时,问题可能是由 KDC 加密支持引起的。值得注意的是,这样的问题会带来以下消息:
如果您收到上述消息,请执行以下操作:
验证您的 KDC 设置是否阻止或限制任何加密类型
确认您的服务器帐户是否已检查所有加密类型。
排除密钥表问题
如果您遇到任何按键选项卡问题,可以采取以下步骤:
步骤 1:验证主机密钥选项卡文件的位置和名称是否与 krb5.conf 文件中的详细信息相似。
步骤 2:验证主机和客户端服务器是否有主体名称。
步骤 3:创建密钥选项卡文件之前确认加密类型。
步骤 4:通过运行以下 kinit 命令验证密钥选项卡文件的有效性;
如果您有有效的密钥选项卡文件,上述命令应该不会返回错误。但如果出现错误,您可以使用以下命令验证 SPN 的有效性:
上述实用程序将提示您输入密码。未能要求提供密码意味着您的 SPN 无效或无法识别。输入有效密码后,该命令将不会返回任何错误。
以上是使用 Linux Kerberos 配置或身份验证时可能遇到的一些常见问题。本文还包含您可能遇到的每个问题的可能解决方案。