Estou tentando migrar um KDC heimdal com um back-end OpenLDAP de um servidor Debian 5.x (heimdal 1.2.dfsg.1-2.1) para um servidor Ubuntu 14.04 (heimdal 1.6 ~ git20131207 + dfsg-1ubuntu1.1) e estou tendo problemas com o kadmind no sistema 14.04.
Algumas funcionalidades do kerberos funcionam bem - eu posso rodar o kinit, pegar um ticket e usar a autenticação GSSAPI com o sshd com sucesso. Eu posso até usar o kadmin com a opção -l com sucesso. No entanto, quando deixo de fora a opção -l e tento falar com o kadmind, recebo erros. Por exemplo, se eu exportar o keytab kadmin / admin para o arquivo /tmp/kadmin.keytab e executar:
kadmin -p kadmin/admin -K /tmp/kadmin.keytab get kadmin/admin
Eu recebo o erro:
kadmind[38823]: krb5_recvauth: start_seq_get is not supported in the HDBGET keytab type
Esse mesmo comando, exatamente com o mesmo arquivo kadmin.keytab, funciona muito bem no sistema debian 5.x.
A situação em que recebo o erro acima é onde eu copiei o arquivo /var/lib/heimdal-kdc/heimdal.db do servidor Debian 5.x para o servidor Ubuntu 14.04 ou o heimdal. arquivo db é inexistente. Se eu usar o arquivo heimdal.db padrão que é criado junto com a instalação do pacote heimdal, vejo um erro diferente do kadmind:
kadmind[38853]: krb5_recvauth: Decrypt integrity check failed for checksum type hmac-sha1-96-aes256, key type aes256-cts-hmac-sha1-96
Eu não entendo porque o conteúdo do heimdal.db é importante, já que estou usando um backend OpenLDAP. Parece estranho que um arquivo db está sendo consultado quando os principais estão no diretório LDAP. Eu verifiquei que copiei o diretório LDAP intacto do sistema Debian 5.x para o sistema Ubuntu 14.04, e não há nenhuma chave mestra sendo usada (não há uma diretiva mkey_file, e mesmo se eu copiar sobre a chave m padrão arquivo que foi gerado automaticamente no Debian 5.x não faz nenhuma diferença). Não tenho certeza do que mais eu poderia fazer para garantir que as configurações sejam as mais semelhantes possíveis.
Eu também tentei backportar o pacote mais recente do heimdal 1.6rc2 para o 14.04, mas recebi os mesmos erros. Eu tentei traçar o comportamento do kadmind com o gdb, mas nada se passou como um problema óbvio.
Alguém sabe o que pode estar acontecendo aqui? Aqui estão os arquivos /etc/krb5.conf e /etc/heimdal-kdc/kdc.conf para ilustrar a configuração:
# /etc/krb5.conf
[libdefaults]
default_realm = EXAMPLE.COM
forwardable = true
proxiable = true
renewable = true
scan_interfaces = true
[realms]
EXAMPLE.COM = {
admin_server = localhost
kdc = localhost
}
[domain_realm]
example.com = EXAMPLE.COM
.example.com = EXAMPLE.COM
[logging]
default = SYSLOG:INFO
# /etc/heimdal-kdc/kdc.conf
[logging]
kdc = FILE:/var/log/heimdal-kdc.log
kdc = SYSLOG:INFO
[kdc]
database = {
dbname = ldap:dc=example,dc=com
hdb-ldap-create-base = ou=Kerberos,dc=example,dc=com
acl_file = /etc/heimdal-kdc/kadmind.acl
}