从管理服务器初始化 kadmin 接口时出现 Kerberos 错误

从管理服务器初始化 kadmin 接口时出现 Kerberos 错误

我更新了 Kerberos 5 服务器的主密钥遵循 MIT Kerberos 5 说明。我重新启动了 kdc 和 kadmind 服务并使用 krb5-prop 将更改推送到其他服务器。

现在我无法从任何服务器(包括管理服务器)连接 kadmin:

$kadmin
Authenticating as principal jacob/[email protected] with password.
Password for jacob/[email protected]:
kadmin: GSS-API (or Kerberos) error while initializing kadmin interface

通过搜索,我发现这种情况的一个常见原因是时间同步问题,但机器在一秒钟内匹配,即使是运行 kadmind 的服务器也会失败。

我不知道如何解决此问题。我的 kadmind 版本没有我发现的任何调试参数或详细日志记录级别。我尝试使用 -nofork 从命令行运行它,结果非常安静。

密码被接受了。我可以将 kinit 作为目标原则,如果我输入密码错误,它会告诉我。

kadmin: Incorrect password while initializing kadmin interface

如果 kadmind 服务没有运行,它也会出现不同的错误。

kadmin: Communication failure with server while initializing kadmin interface

在更新主密码之前我没有测试 kadmin,但我最近使用过它,没有进行其他配置更改。我尝试检查我的密钥版本号 (kvno),它们似乎是正确的。

还有什么原因可能导致这种情况?我还可以在哪里检查?我该如何调试 kadmind?

Debian 8,krb5-admin-server 1.12.1。

答案1

我遇到了同样的问题(相同的 Debian 和 krb5-admin-server 版本)。

和你一样,当我从 kerberos 管理服务器本身运行 kadmin 时它不起作用,这排除了时间差异(我甚至安装了 NTP 以确保 - 它对问题没有影响)。

就我而言,问题出在熵上。Kadmin 非常安全,需要大量熵来生成会话密钥。

我的设置(测试设置)正在虚拟机上运行。我发现根本无法使用 kadmin,但大约半小时后,kadmin 就会“神秘地”开始工作。

您可以在以下位置检查系统熵:

/proc/sys/内核/随机/entropy_avail

为了解决这个问题,我利用了主机的熵(/dev/random),并使用 rng-tools 将其提供给 kadmin。

另外,对于常规的 Kerberos 故障排除,您可以查看:

https://web.mit.edu/kerberos/krb5-latest/doc/admin/troubleshoot.html

诸如下列操作将把跟踪日志发送到标准输出,让您可以详细了解正在发生的事情:

env KRB5_TRACE=/dev/stdout kadmin -p johndoe/[email protected]

答案2

检查服务器上是否已打开 kdc 端口(749默认情况下,tcpudp),并且客户端可以连接到它。这对我来说是导致错误的问题kadmin: Communication failure with server while initializing kadmin interface

答案3

supported_enctypes从 krb5 1.17 升级到 1.18 后,我遇到了这个错误,对我来说,答案最终是我需要在我的 中注释掉kdc.confhttps://forum.ubuntuusers.de/topic/krb5-admin-server-startet-nicht-mehr/#post-9160670(德语)。

我认为这与在 krb5 1.18 中删除单 DES 有关。我的配置来自以前的默认设置,并且一直适用于 1.17,如下所示:

supported_enctypes = aes256-cts:normal arcfour-hmac:normal des3-hmac-sha1:normal des-cbc-crc:normal des:normal des:v4 des:norealm des:onlyrealm des:afs3

https://web.mit.edu/kerberos/krb5-latest/doc/admin/advanced/retiring-des.html

我敢打赌,我可能只是从该列表中删除了单 DES 条目,但在这种情况下,最好只使用使用更强的 AES 加密的较新的默认值。

所以在某些情况下,这个错误实际上可能意味着kdc.conf参数过多而不是缺少参数。如果它能告诉你哪些参数有问题而不是让你猜测,那就太好了。

相关内容