Estou tentando configurar um arquivo keytab para usar com meu principal de serviço para autenticação Kerberos entre meu servidor Linux (RHEL9) e meu Microsoft Windows 2022 Server. O principal de serviço é MSSQLSvc/ [email protected] . Quando eu gero o arquivo keytab no meu host AD (controlador) e então o carrego para meu host RHEL e tento gerar um tíquete.
kinit -V -t /etc/test.keytab MSSQLSvc/[email protected]
Eu sempre recebo:
Using keytab: /etc/test.keytab
kinit: Invalid integer value while getting initial credentials
Também tentei:
kinit MSSQLSvc/[email protected]
kinit: Invalid integer value while getting initial credentials
Aqui está o contexto de como configurei meu ambiente. Primeiro, configurei meu serviço do SQL Server para rodar com meu usuário de domínio [email protected] . Então, gerei um princípio de serviço para meu usuário:
PS C:\Users\Administrator> setSPN EvolvenDBUser
Registered ServicePrincipalNames for CN=EvolvenDBUser,CN=Users,DC=evolven,DC=corp:
MSSQLSvc/MSSQL-G1CFTVE.evolven.corp
MSSQLSvc/MSSQL-G1CFTVE.evolven.corp:1433
Em seguida, gerei um arquivo keytab no meu host AD por meio deste comando:
ktpass -princ MSSQLSvc/[email protected] -mapuser [email protected] -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass <password> -out test.keytab -SetPass
Ele retorna isto:
Targeting domain controller: EC2AMAZ-AEHRC46.evolven.corp
Using legacy password setting method
Successfully mapped MSSQLSvc/MSSQL-G1CFTVE.evolven.corp to EvolvenDBUser.
Key created.
Output keytab to evolven.keytab:
Keytab version: 0x502
keysize 99 MSSQLSvc/[email protected] ptype 1 (KRB5_NT_PRINCIPAL) vno 20 etype 0x12 (AES256-SHA1) keylength 32 (0x0a32866cd2364109a006b483cedd8f6eee418f87b2b460d6be75e6763b1b0aef)
Quando examino o arquivo keytab no meu host RHEL:
klist -k /etc/test.keytab
Keytab name: FILE:/etc/test.keytab
KVNO Principal
---- --------------------------------------------------------------------------
18 MSSQLSvc/[email protected]
No meu host RHEL, meu krb5.conf não é muito sofisticado, mas posso confirmar que ele suporta as configurações de criptografia que desejo usar.
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = EVOLVEN.CORP
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 30d
renew_lifetime = 30d
forwardable = true
udp_preference_limit = 1 # Forces TCP if UDP fails
default_tgs_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96
default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96
permitted_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96
[realms]
EVOLVEN.CORP = {
kdc = EC2AMAZ-AEHRC46.evolven.corp
admin_server = EC2AMAZ-AEHRC46.evolven.corp
}
[domain_realm]
.evolven.corp = EVOLVEN.CORP
evolven.corp = EVOLVEN.CORP
Eu tentei muitas coisas:
- Habilitei o suporte de usuário AES-128 e AES-256 no AD.
- Alterei a senha do usuário do AD e então regenerei o arquivo keytab. Também removi caracteres especiais na senha pensando que isso poderia estar causando um problema. Ainda o mesmo.
- Fiz um kdestroy para remover todos os tickets antigos.
- Vi uma postagem aqui: kinit: Falha na pré-autenticação ao obter credenciais iniciais .
- Não sei por que, mas não vejo nenhum registro, mesmo tendo habilitado o registro.
Eu tentei fazer:ktutil: add_entry -password -p MSSQLSvc/[email protected] -k 18 -e aes256-cts-hmac-sha1-96 -f
e eu volto
add_entry: Invalid integer value while adding new entry
Então, algo está claramente errado aqui com a autenticação do meu princípio de serviço. O que eu faço para resolver para poder gerar tickets?