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. 불행히도이 정확한 오류가 발생한 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

이 오류를 어떻게 해결할 수 있습니까? 내가 얻을 수있는 모든 도움에 크게 감사드립니다!

답변:


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.COMkrb5.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


headdesk 저기, 분명한 것처럼 나를 쳐다 보았습니다. COURSE의 ad.domain.com = AD.DOMAIN.COM이 있어야합니다. 가아
sysadmin1138

@sysadmin : 걱정할 필요가 없습니다 ... AD 통합 SMB 서버를 적극적으로 구축하고 있으며 kamba5.conf에서 Samba 3.0의 버그로 인한 문제를 파악하려고 노력하고 있습니다. :-D
Zypher

나는 이것을 시도해야 할 것이다. 그러나 도메인 이름 : DS.DOMAIN.COM은 내 Windows Server's Hostname+DOMAIN.COM
Phanto

@ 판토 다음 내 제안을 사용해야합니다. 호스트 이름을 도메인으로 지정하면 오류가 발생합니다. kdc 및 / 또는 관리 서버는 호스트 이름을 입력 할 위치입니다.
Zypher

3

소스 코드를 살펴보면 협상 프로세스가 다른 도메인에 대한 참조를 수신하고 해당 도메인이 '로컬'이 아니거나 krb5.conf 구성에있을 때 오류가 발생하는 것처럼 보입니다.

00219 / *
00220 * 백엔드가 로컬에없는 프린시 펄을 리턴 한 경우
00221 * 영역, 클라이언트를 해당 영역을 참조해야합니다.
00222 * /
00223 if (! is_local_principal (client.princ)) {
00224 / * 다른 영역에 대한 추천입니다. * /
00225 상태 = "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가 있으며, 하나는 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

내가 방금 동일한 오류로 여기에서 종료했지만 또 다른 문제에 대한 다른 수정 사항을 발견했기 때문에 이것을 추가하십시오 ... 도메인이 모든 CAPS에 있는지 확인하십시오 : my.user@DOMAIN.LOCAL and 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.