Kinitがドメインサーバーに接続しない:初期資格情報の取得中にKDCに対してローカルではないレルム


13

Linux(Ubuntu 10.04)クライアントがWindows Server 2008 R2ドメインサーバーに対して認証を行うテストベッド環境をセットアップしています。

ここではhttps://help.ubuntu.com/community/Samba/Kerberosの公式のUbuntuガイドに従ってKerberosクライアントを設定していますが、kinitコマンドを実行してドメインサーバーに接続するときに問題が発生しました。

私が実行しているコマンドは次のとおりkinit Administrator@DS.DOMAIN.COMです。このコマンドは次のエラーを返します。

Realm not local to KDC while getting initial credentials。残念ながら、この正確なエラーが発生したグーグル検索で他の人を見つけることができないので、その意味がわかりません。

クライアントはサーバーのホスト名を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

これらのエラーを修正するにはどうすればよいですか?私が得ることができるすべての助けに感謝します!

回答:


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

@Phantoその後、私の下の提案を使用する必要があります。ホスト名をドメインとして指定しているため、エラーが発生しています。kdcやadminサーバーは、ホスト名を置く場所です。
ザイファー

3

ソースコードを見ると、ネゴシエーションプロセスが別のドメインへの紹介を受信し、そのドメインが「ローカル」ではない場合、またはkrb5.conf構成にある場合、エラーがスローされるようです。

00219 / *
00220 *バックエンドがローカルにないプリンシパルを返した場合
00221 *レルム。その後、そのレルムをクライアントに参照する必要があります。
00222 * /
00223 if(!is_local_principal(client.princ)){
00224 / *エントリは別のレルムへの紹介* /
00225 status = "REFERRAL";
00226エラーコード= KRB5KDC_ERR_WRONG_REALM;
00227 goto 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.COMではなくMYDOMAIN.LOCALにkinitする必要がありました。これが一般的なADの認証設定によるものなのか、それともADドメインのみに対するものなのかわかりません。ドメインには2つのDCがあり、1つはW2k3 R2で、もう1つ(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

ここでは大文字がすべての違いを生みます。これが例に示されていることは知っていますが、強調したかったのです。


私のenvがドメインを大文字に変換したので、まったく同じ問題が発生しました!
サミールオウルサーディ

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
関連するテキストを追加して、これが問題を解決する方法を説明してください。
ディアマン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.