Kinit Won't Connect ke Server Domain: Realm tidak lokal ke KDC sambil mendapatkan kredensial awal

13

Saya menyiapkan lingkungan yang diuji di mana klien Linux (Ubuntu 10.04) akan mengautentikasi ke Server Domain Windows Server 2008 R2.

Saya mengikuti panduan resmi Ubuntu untuk menyiapkan klien Kerberos di sini: https://help.ubuntu.com/community/Samba/Kerberos , tetapi saya mengalami masalah saat menjalankan kinitperintah untuk menyambung ke server domain.

Perintah saya menjalankan adalah: kinit [email protected]. Perintah ini mengembalikan kesalahan berikut:

Realm not local to KDC while getting initial credentials. Sayangnya, saya tidak dapat menemukan orang lain melalui pencarian Google yang telah mengalami kesalahan ini, jadi saya tidak tahu apa artinya.

Klien dapat melakukan ping nama host server, sehingga server DNS menunjuk ke server domain.

Di bawah ini adalah file krb5.conf saya:

[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

Bagaimana saya bisa memperbaiki kesalahan ini? Saya akan sangat menghargai semua bantuan yang bisa saya dapatkan!

Phanto
sumber

Jawaban:

12

Apakah nama domain Anda DS.DOMAIN.COMatau adil DOMAIN.COM?

Di ranah Anda, Anda harus mencocokkannya, jadi dengan anggapan bahwa DS.DOMAIN.COM adalah domain Anda, Anda perlu mengubah:

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

untuk

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

Namun, jika domain Anda benar-benar DOMAIN.COMAnda perlu mengubah krb5.conf Anda agar terlihat seperti:

[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

Dan kemudian Anda menginginkannya kinit:kinit [email protected]

Zypher
sumber
headdesk Itu dia, menatapku seperti hal yang jelas. COURSE ad.domain.com = AD.DOMAIN.COM harus ada di sana. Gaah.
sysadmin1138
@sysadmin: Jangan khawatir ... saya kebetulan aktif membangun server SMB terintegrasi AD dan telah menatap krb5.conf saya mencoba mencari tahu masalah yang akhirnya menjadi bug di Samba 3.0. :-D
Zypher
Saya perlu mencoba ini. Namun, nama domain: DS.DOMAIN.COM adalah Windows Server's Hostname+DOMAIN.COM
Phanto
@Phanto maka Anda perlu menggunakan saran saya yang lebih rendah. Anda menentukan nama host sebagai domain yang memberi Anda kesalahan. kdc dan / atau server admin adalah tempat Anda meletakkan nama host.
Zypher
3

Memuncak ke kode sumber, sepertinya kesalahan dilemparkan ketika proses negosiasi menerima rujukan ke domain lain dan domain itu bukan 'lokal', atau dalam konfigurasi krb5.conf Anda.

00219 / *
00220 * Jika backend mengembalikan prinsipal yang tidak ada di lokal
00221 * ranah, maka kita perlu merujuk klien ke ranah itu.
00222 * /
00223 if (! Is_local_principal (client.princ)) {
00224 / * Entri adalah rujukan ke ranah lain * /
00225 status = "REFERRAL";
00226 errcode = KRB5KDC_ERR_WRONG_REALM;
00227 goto errout;
00228}

Apa itu, aku tidak bisa memberitahumu. Itu mungkin tergantung pada lingkungan Active Directory Anda, dan apakah ada beberapa domain di pohon atau tidak. Anda mungkin perlu lebih banyak alias domain_realm, tetapi apa yang kita tidak bisa katakan dari sini.

sysadmin1138
sumber
2

Saya memiliki pesan yang sama menggunakan krb5.conf yang sama seperti yang disediakan oleh Zypher:

[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

(maaf sepertinya saya tidak bisa memformat dengan benar: /)

Dalam kasus saya, saya perlu melakukan kinit ke MYDOMAIN.LOCAL daripada MYDOMAIN.COM. Tidak yakin apakah ini karena pengaturan otentikasi pada AD secara umum atau hanya untuk domain AD saya. Domain saya memiliki 2 DC, satu adalah W2k3 R2 dan yang lainnya (yang ditentukan sebagai mydc.mydomain.com di krb5.conf) adalah W2k8 R2. Tapi ini kemungkinan penyebab lain untuk pesan "Realm tidak lokal ke KDC saat mendapatkan kredensial awal"

zsispeo
sumber
2

Saya memiliki ini sama dan menemukan jawabannya sangat sederhana setelah memperbaiki konfigurasi saya, saya masih punya ini. Berkat logisfuzz di linuxqustions.org.

kinit -V [email protected]
kinit: KDC reply did not match expectations while getting initial credentials

kinit -V [email protected]
Authenticated to Kerberos v5

Ibukota membuat semua perbedaan di sini. Saya tahu ini ditunjukkan dalam contoh tetapi saya ingin menekankannya.

pengguna375207
sumber
punya masalah yang sama persis, karena ENV saya mengubah domain menjadi huruf besar bekerja !!
Samir Ouldsaadi
0

Saya mendapatkan kesalahan ini ketika mencoba menghubungkan mesin itu dari satu domain ke domain lain. Mengedit /etc/krb5.conf juga tidak berfungsi. Kemudian saya mencoba perintah berikut untuk mengkonfigurasi ulang barang untuk domain yang berbeda

# sudo dpkg-reconfigure -plow krb5-config

dengan opsi dan pengaturan yang diinginkan yang berhenti memberikan kesalahan di atas dalam perintah kinit. Terselesaikan.

vallabh
sumber
0

sakit tambahkan ini hanya karena saya baru saja berakhir di sini untuk kesalahan yang sama tetapi menemukan perbaikan lain untuk masalah lain ... pastikan bahwa domain di SEMUA CAPS: [email protected] dan bukan [email protected] ... saya baru saja kehilangan 2 jam hidup saya karena yang ini ...

boiss007
sumber
0

Saya tahu ini adalah pertanyaan lama, tetapi saya ingin menambahkan untuk pemecah masalah di masa depan bahwa resolusi saya untuk masalah ini adalah kombinasi dari semua jawaban yang disarankan, serta menambahkan pengontrol domain utama saya ke /etc/hosts

Norr
sumber
-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

simpan register

Alex Real
sumber
2
Harap tambahkan teks yang relevan untuk menjelaskan bagaimana ini akan menyelesaikan masalah.
Diamant