Kinit无法连接到域服务器:获取初始凭据时,KDC不在KDC本地


13

我正在建立一个测试平台环境,其中Linux(Ubuntu 10.04)客户端将向Windows Server 2008 R2域服务器进行身份验证。

我正在遵循官方的Ubuntu指南在此处设置Kerberos客户端:https : //help.ubuntu.com/community/Samba/Kerberos,但是在运行kinit用于连接到域服务器的命令时遇到了问题。

我正在运行的命令是:kinit Administrator@DS.DOMAIN.COM。此命令返回以下错误:

Realm not local to KDC while getting initial credentials。不幸的是,我无法通过Google搜索找到其他遇到此确切错误的人,因此我不知道这意味着什么。

客户端能够ping服务器的主机名,因此DNS服务器指向域服务器。

以下是我的krb5.conf文件:

[libdefaults]
default = DS.DOMAIN.COM
dns_lookup_realm = true
dns_lookup_kdc true

[realms]
    DS.DOMAIN.COM = {
        kdc = ds.domain.com:88
        admin_server = ds.domain.com
        default_domain = domain.com
    }

[domain_realm]
    .domain.com = DS.DOMAIN.COM
    domain.com = DS.DOMAIN.COM

我该如何纠正这些错误?我将不胜感激能获得的所有帮助!

Answers:


12

是您的域名DS.DOMAIN.COM还是DOMAIN.COM

在您的领域中,您需要使它们匹配,因此,假设DS.DOMAIN.COM是您的域,则需要更改:

[domain_realm]
    .domain.com = DS.DOMAIN.COM
    domain.com = DS.DOMAIN.COM

[domain_realm]
    .ds.domain.com = DS.DOMAIN.COM
    ds.domain.com = DS.DOMAIN.COM

但是,如果您确实是域名,则DOMAIN.COM需要将krb5.conf更改为以下形式:

[libdefaults]
default = DOMAIN.COM
dns_lookup_realm = true
dns_lookup_kdc = true

[realms]
    DOMAIN.COM = {
        kdc = ds.domain.com:88
        #You can have more than one kds, just keep adding more kdc =
        #entries
        #kdc = dsN.domain.com:88
        #Uncomment if you have a krb admin server
        #admin_server = ds.domain.com:749
        default_domain = domain.com
    }

[domain_realm]
    .domain.com = DOMAIN.COM
    domain.com = DOMAIN.COM

然后您想kinit这样:kinit Administrator@DOMAIN.COM


总部,就好像明显的东西一样盯着我。课程的ad.domain.com = AD.DOMAIN.COM应该在其中。嘎
sysadmin1138

@ sysadmin:不用担心...我只是碰巧正在积极构建一个AD集成的SMB服务器,并且一直盯着我的krb5.conf试图找出最终成为Samba 3.0中的错误的问题。:-D
Zypher

我将需要尝试一下。但是,域名:DS.DOMAIN.COM是我的Windows Server's Hostname+DOMAIN.COM
Phanto 2010年

@Phanto,那么您需要使用我的较低建议。您正在将主机名指定为域,这就是给您带来错误的原因。kdc和/或管理服务器是放置主机名的位置。
Zypher

3

深入研究源代码,当协商过程收到对另一个域的引用并且该域不是“本地”或在您的krb5.conf配置中时,似乎会引发该错误。

00219 / *
00220 *如果后端返回了不在本地的委托人
00221 *领域,那么我们需要将客户端引向该领域。
00222 * /
00223如果(!is_local_principal(client.princ)){
00224 / *条目是对另一个领域的引用* /
00225 status =“ REFERRAL”;
00226错误代码= KRB5KDC_ERR_WRONG_REALM;
00227转到errout;
00228}

那可能是什么,我不能告诉你。这可能取决于您的Active Directory环境以及树中是否存在多个域。您可能需要更多的domain_realm别名,但是确切的说我们不能从这里得知。


2

我使用与Zypher提供的相同的krb5.conf收到相同的消息:

[libdefaults]
   default = MYDOMAIN.COM
   dns_lookup_realm = true
   dns_lookup_kdc = true
   ticket_lifetime = 24h
   renew_lifetime = 7d
   forwardable = true

[realms]
MYDOMAIN.COM = {
   kdc = mydc.mydomain.com:88
   admin_server = mydc.mydomain.com:749
   default_domain = mydomain.com
}

[domain_realm]
   .mydomain.com = MYDOMAIN.COM
   mydomain.com = MYDOMAIN.COM

(抱歉,我似乎无法获得正确的格式:/)

就我而言,我需要初始化为MYDOMAIN.LOCAL而不是MYDOMAIN.COM。不知道这是由于一般而言是AD中的身份验证设置还是仅针对我的AD域。我的域有2个DC,一个是W2k3 R2,另一个(在krb5.conf中指定为mydc.mydomain.com)是W2k8 R2。但这是“获取初始凭据时,KDC不在本地的领域”消息的另一个可能原因


2

我也是如此,发现修复固定配置后答案很简单,我仍然有这个。感谢linuxqustions.org上的logicalfuzz。

kinit -V myname@domain.net
kinit: KDC reply did not match expectations while getting initial credentials

kinit -V myname@DOMAIN.NET
Authenticated to Kerberos v5

首都在这里发挥了所有作用。我知道示例中已显示了这一点,但我想强调一下。


有完全相同的问题,因为我的环境将域名转换为大写字母!
Samir Ouldsaadi

0

尝试将计算机从一个域连接到另一个域时遇到此错误。编辑/etc/krb5.conf也不起作用。然后,我尝试使用以下命令为不同的域重新配置内容

# sudo dpkg-reconfigure -plow krb5-config

具有所需的选项和设置,从而停止在kinit命令中给出上述错误。解决。


0

病态的添加只是因为我刚刚在这里结束了同样的错误,但又找到了另一个问题的解决方法...请确保该域位于所有大写:my.user@DOMAIN.LOCAL而不是my.user@domain.local ...由于这个,我刚刚失去了2个小时的生命...


0

我知道这是一个古老的问题,但是我想为以后的疑难解答添加一点,我对这个问题的解决方案是所有建议答案的结合,以及将我的主域控制器添加到我的 /etc/hosts


-1
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = DOMAIN.LOCAL
dns_lookup_kdc = true
dns_lookup_realm = true
ticket_lifetime = 24h
#default_keytab_name = /etc/squid3/PROXY.keytab

; for Windows 2003
; default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
; default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
; permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
; for Windows 2008 with AES
default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5

[realms]
DOMAIN.LOCAL = {
kdc = dc.domain.local
admin_server = dc.domain.local
default_domain = domain.local
kpasswd_server = dc.domain.local
}

[domain_realm]
.DOMAIN.LOCAL = DOMAIN.LOCAL
DOMAIN.LOCAL = DOMAIN.LOCAL

备案


2
请添加相关文本,以说明这将如何解决问题。
Diamant 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.