Kerberos - TCP 客户端需要 1195725856 字节,上限为 1048572

Kerberos - TCP 客户端需要 1195725856 字节,上限为 1048572

我在调试此错误时遇到了一些困难。我正在运行 nginx 作为 api 网关,每当使用 SPNEGO 方法调用端点时,都会向 kerberos 发出子请求。但每当我尝试在标头中使用 TGS 票证发出请求时,我都会收到错误,TCP client 192.168.112.4.51658 wants 1195725856 bytes, cap is 1048572然后连接就会关闭。

我尝试过printf "\xff\xff\xff\xff" | netcat krb_address 88并且它会触发上述错误,如果删除 \xff 的一个实例则不会出现错误。

我正在努力弄清楚的是:

  1. 发送给 Kerberos 并打破上限约束的消息到底是什么?
  2. 需要进行什么样的配置更改才能满足上限要求?

我之前从未使用过 nginx 和 kerberos,因此不确定除了基本问题之外我还能问什么更好的问题。

非常感谢您对之前遇到此错误的经验的一些见解,或者我可以使用的一些其他技术来发现更多导致错误的原因!

答案1

这是协议不匹配;有时,当 Kerberos 服务器正在等待其他东西时,您却发送了 HTTP 请求。

此处的漏洞是错误中显示的数字 1195725856。转换为十六进制,即 47 45 54 20。转换为 ASCII,即GET、 空格或 HTTP GET 请求的前四个字符。这不太可能是巧合。

我不太熟悉 Kerberos,但经过一番研究,我发现一个可能的原因是你可能遗漏--enable-httpkdc服务?

相关内容