O Kinit não se conecta a um servidor de domínio: região não local ao KDC enquanto obtém credenciais iniciais

13

Estou configurando um ambiente de teste em que os clientes Linux (Ubuntu 10.04) serão autenticados em um servidor de domínio do Windows Server 2008 R2.

Estou seguindo o guia oficial do Ubuntu para configurar um cliente Kerberos aqui: https://help.ubuntu.com/community/Samba/Kerberos , mas encontrei um problema ao executar o kinitcomando para conectar ao servidor de domínio.

O comando que eu estou correndo é: kinit [email protected]. Este comando retorna o seguinte erro:

Realm not local to KDC while getting initial credentials. Infelizmente, não consigo encontrar mais ninguém nas pesquisas do Google que sofreram esse erro exato, por isso não faço ideia do que isso significa.

O cliente pode executar ping no nome do host do servidor, portanto, o servidor DNS está apontando para o servidor de domínio.

Abaixo está o meu arquivo 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

Como posso corrigir esses erros? Eu apreciaria muito toda a ajuda que puder obter!

Phanto
fonte

Respostas:

12

É o seu nome de domínio DS.DOMAIN.COMou apenas DOMAIN.COM?

Em seus domínios, você precisa que eles correspondam; portanto, assumindo que DS.DOMAIN.COM é o seu domínio, você precisa alterar:

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

para

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

No entanto, se o seu domínio é realmente, DOMAIN.COMvocê precisará alterar o seu krb5.conf para se parecer com:

[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

E então você gostaria kinitque:kinit [email protected]

Zypher
fonte
headdesk Lá estava, olhando para mim como uma coisa óbvia. Do CURSO ad.domain.com = AD.DOMAIN.COM deve estar lá. Gaah.
sysadmin1138
@ sysadmin: Não se preocupe ... acabo de criar ativamente um servidor SMB integrado ao AD e fiquei olhando meu krb5.conf tentando descobrir um problema que acabou sendo um bug no Samba 3.0. :-D
Zypher
Vou precisar tentar isso. No entanto, o nome de domínio: DS.DOMAIN.COM é meu Windows Server's Hostname+DOMAIN.COM
Phanto
@Phanto, então você precisa usar minha sugestão mais baixa. você está especificando um nome de host como um domínio, e é isso que está fornecendo seus erros. o servidor kdc e / ou admin é onde você colocaria o nome do host.
Zypher 03/08/10
3

Chegando ao código-fonte, parece que esse erro é gerado quando o processo de negociação recebe uma referência para outro domínio e esse domínio não é 'local' ou na sua configuração do krb5.conf.

00219 / *
00220 * Se o back-end retornou um principal que não está no local
00221 * região, precisamos indicar o cliente para essa região.
00222 * /
00223 if (! Is_local_principal (client.princ)) {
00224 / * A entrada é uma referência a outro domínio * /
00225 status = "REFERRAL";
00226 errcode = KRB5KDC_ERR_WRONG_REALM;
00227 goto errout;
00228}

O que poderia ser, eu não poderia te dizer. Isso provavelmente depende do seu ambiente do Active Directory e da existência ou não de vários domínios na árvore. Você provavelmente precisa de mais aliases domain_realm, mas exatamente o que é que não podemos dizer daqui.

sysadmin1138
fonte
2

Eu tive a mesma mensagem usando o mesmo krb5.conf fornecido pelo 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

(desculpe, parece que não consigo obter a formatação correta: /)

No meu caso, eu precisava me conectar ao MYDOMAIN.LOCAL em vez do MYDOMAIN.COM. Não tenho certeza se isso se deve a uma configuração de autenticação no AD em geral ou apenas ao meu domínio do AD. Meu domínio possui 2 controladores de domínio, um é o W2k3 R2 e o outro (aquele especificado como mydc.mydomain.com no krb5.conf) é o W2k8 R2. Mas essa é outra causa possível para a mensagem "Região não local para o KDC ao obter credenciais iniciais"

zsispeo
fonte
2

Eu tinha isso mesmo e achei a resposta tão simples depois de corrigir minha configuração que eu ainda tinha isso. Obrigado ao logicfuzz em 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

As capitais fazem toda a diferença aqui. Eu sei que isso é mostrado em exemplos, mas eu queria enfatizar isso.

user375207
fonte
teve exatamente o mesmo problema, para o meu env transformando o domínio em maiúsculas funcionou !!
Samir Ouldsaadi
0

Eu recebi esse erro ao tentar conectar a máquina de um domínio a outro domínio. A edição do /etc/krb5.conf também não funcionou. Então tentei o seguinte comando para reconfigurar materiais para domínios diferentes

# sudo dpkg-reconfigure -plow krb5-config

com as opções e configurações desejadas que pararam de fornecer o erro acima no comando kinit. Resolvido.

vallabh
fonte
0

vou adicionar isso só porque acabei de terminar aqui pelo mesmo erro, mas encontrei outra correção para outro problema ... verifique se o domínio está em TODOS OS CAPS: [email protected] e não [email protected] ... acabei de perder 2 horas da minha vida por causa disso ...

boiss007
fonte
0

Sei que essa é uma pergunta antiga, mas quero acrescentar para futuras soluções de problemas que minha resolução para esse problema foi uma combinação de todas as respostas sugeridas, além de adicionar meu controlador de domínio primário ao meu /etc/hosts

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

mantenha um registro

Alex Real
fonte
2
Por favor, adicione textos relevantes para explicar como isso vai resolver o problema.
Diamantino15