首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kerberos rdns=false中断从Linux到Windows的连接

Kerberos rdns=false中断从Linux到Windows的连接
EN

Server Fault用户
提问于 2020-12-18 15:59:53
回答 1查看 2.1K关注 0票数 0

最近,我将Linux客户端上的krb5.conf文件更改为:

代码语言:javascript
运行
复制
[libdefaults]
rdns = false

这些客户机仍然可以成功地使用kerberos auth连接到其他Linux can服务器。但是,现在它们与IIS IIS服务器的连接中断了。我看到的一个示例错误是:

代码语言:javascript
运行
复制
< HTTP/1.1 401 Unauthorized
< Content-Type: text/html
< Server: Microsoft-IIS/8.5
* gss_init_sec_context() failed: Server not found in Kerberos database.

但是,当我删除rdns=false时,Linux客户端可以在没有问题的情况下进行/连接。通过添加rdns=false并看到失败,然后删除它并看到成功,我能够始终如一地重新创建这种行为。为什么rdns=false中断从Linux客户端到IIS的连接?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2020-12-22 10:32:37

但是,这个错误不是来自IIS IIS服务器吗?

不,它来自curl使用的GSSAPI库(libkrb5)。

为什么客户端的配置设置会影响Why服务器的功能?ie-如果客户端进行反向查找,how服务器关心什么?它如何知道客户端是否进行反向查找?

Kerberos票证是为特定服务器FQDN颁发的,类似于TLS证书。当您想通过HTTP与app.example.com对话时,您的客户端必须为HTTP/app.example.com@EXAMPLE.COM服务主体请求一张票证。

但是,与TLS不同(TLS查看URL中的域而不查看其他内容),传统Kerberos实现使用服务器IP地址的反向DNS确定主名称,这可能导致客户端请求与URL中显示的SPN完全不同的票。

这在指向单个DNS服务器的多个域或使用DNS循环到多个DNS服务器的域中尤为常见。例如,如果您的"app.example.com“实际上指向一个AD连接为"web01.example.com”的服务器,那么以前curl成功地请求了"HTTP/web01.example.com“( AD知道)的票证,但现在它正在请求"HTTP/app.example.com”的票证,而您的AD域控制器不知道,因此不能为其颁发票证。

如果域只指向一个IIS服务器,setspn将通过为同一个Kerberos密钥添加别名来解决这一问题。

(这种MIT/Heimdal Kerberos的行为与Windows客户端不同,如果我没记错的话,Windows客户端的行为总是好像他们有rdns=off一样。)

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1046771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档