web-dev-qa-db-ja.com

kinit&pam_sss:初期認証情報の取得中に、要求されたレルムのKDCが見つかりません

記述されているように非常に似た問題があります このスレッドで 2008R2 AD DCに対して認証するCentOS 6.3で。

これが私のkrb5.confです、XXXXXXX.LOCALが真のドメイン名であることを知っています:

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

[libdefaults]
 default_realm = XXXXXXX.LOCAL
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 verify_ap_req_nofail = false

[realms]
 XXXXXXX.LOCAL = {
 kdc = ad1.XXXXXXX.local
 kdc = ad2.XXXXXXX.local
 admin_server = ad1.XXXXXXX.local
 default_domain = XXXXXXX.LOCAL
}

[domain_realm]
 .XXXXXXX.local = XXXXXXX.LOCAL
 XXXXXXX.local = XXXXXXX.LOCAL
 .XXXXXXX.com = XXXXXXX.LOCAL
 XXXXXXX.com = XXXXXXX.LOCAL

私がするとき:

kinitユーザー名@ XXXXXXX.LOCAL

すべてが意図したとおりに機能しますが、klist -eは詳細を返しますが、私がしようとすると:

suユーザー名

Sssd krb5_child.logは以下を示します:

[unpack_buffer] (0x0100): cmd [241] uid [10002] gid [10002] validate [false] offline [false] UPN [[email protected]]
[unpack_buffer] (0x0100): ccname: [FILE:/tmp/krb5cc_10002_XXXXXX] keytab: [/etc/krb5.keytab]
[krb5_child_setup] (0x0400): Will perform online auth
[krb5_child_setup] (0x0100): Cannot read [SSSD_KRB5_RENEWABLE_LIFETIME] from environment.
[krb5_child_setup] (0x0100): Cannot read [SSSD_KRB5_LIFETIME] from environment.
[krb5_set_canonicalize] (0x0100): SSSD_KRB5_CANONICALIZE is set to [false]
[krb5_child_setup] (0x0100): Not using FAST.
[get_and_save_tgt] (0x0400): Attempting kinit for realm [XXXXXXX.COM]
[get_and_save_tgt] (0x0020): 977: [-1765328230][Cannot find KDC for requested realm]
[kerr_handle_error] (0x0020): 1030: [-1765328230][Cannot find KDC for requested realm]
[prepare_response_message] (0x0400): Building response for result [-1765328230]
[main] (0x0400): krb5_child completed successfully

また、XXXXXXX.COMがADツリーのXXXXXXX.LOCALのエイリアスであり、実行されていることも知っています。

kinitユーザー名@ XXXXXXX.COM

krb5_child.logとまったく同じエラーを生成します

kinit:初期認証情報の取得中に、要求されたレルムのKDCが見つかりません

私はこの問題について数日間壁に頭をぶつけてきました。どんな指針にも感謝します。 :)

6
Sauraus

扱うのはエンタープライズプリンシパルと呼ばれます。単一のADドメインがありますが、ユーザーには追加のユーザープリンシパル名(UPN)を関連付けることができるため、XXXX.LOCALに加えて、XXXX.COMを持ち、user @ XXXX.LOCALの代わりに[email protected]を使用できます。

SSSDは1.10以降のエンタープライズプリンシパルをサポートしています。 1.10ベータリリースに影響を及ぼした実装のバグはほとんどありませんでしたが、Fedora 19以降で利用可能な最終リリースの前に解決されています。

ただし、エンタープライズプリンシパルのサポートは比較的侵襲的であり、1.9.xにバックポートされていなかったため、RHEL 6.x(さらに言えばCentOS 6.x)ではこの変更は利用できません。

https://bugzilla.redhat.com/show_bug.cgi?id=972357 および https://bugzilla.redhat.com/show_bug。 cgi?id = 924404

6
abbra

krb5.confでレルムを指定せずにDNSルックアップをオフにすると、ホストはXXXXXX.COMがXXXXXX.LOCALのエイリアスであることを知ることができません。

このようにkrb5.confにレルムセクションを追加し、何が起こるかを確認します。

XXXXXXX.COM = {
 kdc = ad1.XXXXXXX.local
 kdc = ad2.XXXXXXX.local
 admin_server = ad1.XXXXXXX.local

}

レルムとkdcのDNSルックアップをオンにしても、同じことが行われます。

Dig -t srv _kerberos._udp.XXXXXX.com 

上記で使用されている実サーバーでなければなりません。

しかし、これが本当に正しいことかどうかはわかりません。上記のkrb5.confを使用すると、XXXXXX.LOCALレルムに移動し、sssdが無視している理由を理解しようとしているため、正しい方向に進む可能性があります。

RHEL 6でも非常によく似た問題が発生しました。すでにドメインに接続していますが、ログにkinit-succeeded-but-ads_sasl_spnego_krb5_bind-failedというエラーが表示され続けました。

これは私にとっての決議であり、あなたにも有益だと思いました。

/ var/log/sambaを見ていたときに、2つのlog.wb-*ファイルに気づきました。私の環境には2つの異なる領域があります。両方のログファイルを確認しました。 log.wb-Correctrealmは空でした。 log.wb-Incorrectrealmは、上記のエラーメッセージを生成するログファイルです。

私のsamba構成(/etc/samba/smb.conf)をチェックアウトしたところ、問題が見つかりました。

これらの行には、誤ったレルムがリストされていました。

idmap config Incorrectrealm:backend = rid
idmap config Incorrectrealm:range = 10000000-19999999

正しい領域を反映するように行を変更しました

idmap config Correctrealm:backend = rid
idmap config Correctrealm:range = 10000000-19999999

smbサービスを再起動しました。次に、ログファイルに戻り、log.wb-Correctrealmのレルムにデータが入力されました。

これは上記のエラーを解決しました。

私はこの解決策を他に見つけたことがなく、そのまま伝えたかっただけです。

2
sjustice

Krb5.confだけでなくsssd.confも適切に構成する必要があります。サーバーのホスト名をkrb5_server/ldap_server/whatnotでハードコーディングするか、適切なSRVレコードを解決できるサーバーでresolv.confをポイントします。

も参照してください http://jhrozek.wordpress.com/2014/11/04/how-does-sssd-interact-with-tools-like-kinit/ sssdがkinitと相互作用する方法の概要について/ libkrb5。

1
jhrozek