Atualmente, estou configurando um ambiente no qual tenho um conjunto de máquinas Solaris e Linux, usando um domínio dedicado do Krberos 5 (MIT, no Solaris 11, krb5-config --version
returns: Solaris Kerberos (based on MIT Kerberos 5 release 1.6.3)
). Também temos um servidor do Active Directory (Windows 2003) para um domínio separado.
Meu objetivo é ter todos os usuários no servidor do AD e os principais hosts / nnn, nfs / nnn e cifs / nnn no território baseado em MIT. Estou tentando configurar a confiança entre domínios entre esses dois domínios.
Suponha o seguinte:
- Domínio Unix: EXAMPLE.COM
- Domínio do AD: AD.EXAMPLE.COM
Configurei a confiança entre domínios do AD de acordo com o Documentação da Microsoft , com confiança bidirecional.
O que acontece é que a autenticação entre domínios apenas funciona em uma direção. Do AD ao Unix funciona:
# kinit [email protected]
Password for [email protected]:
root@clienttest2:~# kvno [email protected]
[email protected]: kvno = 1
Mas, o contrário não acontece, e me dá uma mensagem de erro: O KDC não tem suporte para o tipo de criptografia enquanto obtém credenciais para [email protected]
# kinit [email protected]
Password for [email protected]:
root@clienttest2:~# kvno [email protected]
kvno: KDC has no support for encryption type while getting credentials for [email protected]
Note que tentei todo tipo de coisas diferentes. Alguns desses são:
- Configurou as chaves de região cruzada no lado do Unix para usar
rc4-hmac
apenas, com o efeito de que a chamada para kvno
nem mesmo conseguirá encontrar o KDC no lado da Microsoft.
- Adicionadas entradas
default_tkt_enctypes
e default_tgs_enctypes
para forçar o uso de rc4-hmac
. Isso foi necessário apenas para fazer a autenticação de login no AD funcionar.
Qual poderia ser a causa disso e como posso descobrir o que está realmente acontecendo? Em particular, seria muito útil saber exatamente qual tipo de criptografia ele está tentando usar, para o qual o KDC não tem suporte. Também seria útil saber qual KDC enviou o erro.
Para completar, aqui está o conteúdo do arquivo krb5.conf
:
[libdefaults]
default_realm = EXAMPLE.COM
allow_weak_crypto = true
verify_ap_req_nofail = false
default_tkt_enctypes = rc4-hmac
default_tgs_enctypes = rc4-hmac
[realms]
EXAMPLE.COM = {
kdc = unix-server.example.com
admin_server = unix-server.example.com
}
AD.EXAMPLE.COM = {
kdc = ad-server.ad.example.com
admin_server = ad-server.ad.example.com
}
[domain_realm]
.example.com = EXAMPLE.COM
.ad.example.com = AD.EXAMPLE.COM
[capaths]
EXAMPLE.COM = {
AD.EXAMPLE.COM = .
}
AD.EXAMPLE.COM = {
EXAMPLE.COM = .
}
[logging]
default = FILE:/var/krb5/kdc.log
kdc = FILE:/var/krb5/kdc.log
kdc_rotate = {
period = 1d
versions = 10
}
[appdefaults]
kinit = {
renewable = true
forwardable = true
}