kinit & pam_sss: Não é possível localizar o KDC para o domínio solicitado ao obter as credenciais iniciais

5

Eu tenho um problema muito semelhante ao descrito neste encadeamento no CentOS 6.3 autenticando em um DC AD 2008R2.

Aqui está o meu krb5.conf, eu sei que XXXXXXX.LOCAL é o verdadeiro nome de domínio:

[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

Quando faço:

kinit [email protected]

Tudo funciona como pretendido, klist -e retorna os detalhes que deve, no entanto, quando tento:

su username

O sssd krb5_child.log mostra o seguinte:

[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

Eu também sei que XXXXXXX.COM é um apelido para XXXXXXX.LOCAL na árvore do AD e que está em execução:

kinit [email protected]

produz exatamente o mesmo erro que no krb5_child.log

kinit: Cannot find KDC for requested realm while getting initial credentials

Eu tenho batido minha cabeça contra a parede por vários dias sobre este problema e gostaria de receber quaisquer dicas. :)

    
por Sauraus 19.11.2013 / 01:24

4 respostas

5

O que você lida é chamado de princípios da empresa. Você tem um único domínio do AD, mas os usuários podem ter associados a nomes principais de usuários (UPN) adicionais. Portanto, além de XXXX.LOCAL, eles podem ter XXXX.COM e usar [email protected] no lugar de [email protected].

O SSSD suporta os principais da empresa, começando com 1.10. Houve poucos bugs na implementação que afetaram 1.10 versões beta, mas eles foram resolvidos antes do lançamento final, que está disponível no Fedora 19 +.

No entanto, essa alteração não está disponível no RHEL 6.x (ou no CentOS 6.x), já que o suporte a objetos principais da empresa é relativamente invasivo e não foi retornado para a versão 1.9.x.

Você pode estar interessado em procurar detalhes no link e link

    
por 01.12.2013 / 21:09
3

Se você não especificar o domínio em krb5.conf e desativar as pesquisas de DNS, seu host não terá como saber que XXXXXX.COM é um alias para XXXXXX.LOCAL.

Adicione uma seção de região no seu krb5.conf assim e veja o que acontece.

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

}

Ativar as pesquisas de DNS para a região e o kdc também realizará a mesma coisa.

dig -t srv _kerberos._udp.XXXXXX.com 

devem ser os servidores reais usados acima.

No entanto, não tenho certeza se isso é realmente a coisa certa. O krb5.conf acima deve colocá-lo no reino XXXXXX.LOCAL, tentando descobrir por que o sssd está ignorando isso pode levá-lo mais na direção correta.

    
por 19.11.2013 / 21:48
1

Eu tive um problema muito semelhante no RHEL 6. Eu já estava conectado ao domínio, mas continuei vendo o erro kinit-succeeded-but-ads_sasl_spnego_krb5_bind-failed nos meus logs.

Esta foi a resolução para mim, e eu pensei que poderia ser benéfico para você também.

Quando eu estava procurando em / var / log / samba, notei dois arquivos log.wb-* . No meu ambiente, temos dois reinos diferentes. Eu verifiquei os dois arquivos de log. O log.wb-Correctrealm estava vazio. O log.wb-Incorrectrealm foi o arquivo de log produzindo a mensagem de erro listada acima.

Eu verifiquei minha configuração do samba ( /etc/samba/smb.conf ) e encontrei o problema.

Essas linhas tinham a ordem incorreta listada.

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

Eu mudei as linhas para refletir o reino correto

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

e reiniciado o serviço smb. Em seguida, voltei aos meus arquivos de log e a região com log.wb-Correctrealm agora estava sendo preenchida.

Isso resolveu o erro acima.

Eu não encontrei esta resolução em nenhum outro lugar e só queria passar adiante.

    
por 06.01.2015 / 21:06
0

Você deve configurar corretamente não apenas o krb5.conf, mas também o sssd.conf - codificar seus nomes de hosts do servidor com krb5_server / ldap_server / whatnot ou apontar o resolv.conf para um servidor que possa resolver os registros SRV apropriados para você .

Veja também link para uma visão geral de como o sssd interage com o kinit / libkrb5.

    
por 07.01.2015 / 05:25