Eu instalei o Kerberos com êxito no debian wheezy e posso executar autenticação de serviço (Apache, ssh) com tickets Kerberos do kinit.
Eu gostaria de usar certificados para kinit (pkinit) em vez de senhas.
Eu segui as etapas descritas aqui .
Estou tentando autenticar com este comando:
kinit -C FILE:client.pem,client.key [email protected]
que retorna a senha incorreta.
Tenho certeza de que o problema vem do servidor e não do cliente. De wireshark, o cliente envia seu certificado ao usar o pkinit. Como nenhum AS-REP é fornecido pelo kdc, talvez o cliente acabe com uma mensagem de erro genérica "senha incorreta", o que significa que não é possível decifrar seu ticket (como nenhum é ent).
Acabei com essa configuração do servidor /etc/krb5.conf:
[realms]
MAYTACAPAC.INC = {
kdc = kerberos.maytacapac.inc
admin_server = kerberos.maytacapac.inc
default_domain = maytacapac.inc
detabase_module = openldap_ldapconf
kdc_tcp_ports = 88
allow_pkinit = yes
pkinit_identity = FILE:/root/pkinit/kdc.pem,/root/pkinit_wiki/kdc.key
pkinit_anchors = FILE:/root/pkinit/ca.pem
module = pkinit:/usr/lib/x86_64-linux-gnu/krb5/plugins/preauth/pkinit.so
}
Então eu inicio o serviço krb5-kdc, e há esta mensagem no arquivo de log:
# systemctl -l status krb5-kdc
● krb5-kdc.service - Kerberos 5 Key Distribution Center
Loaded: loaded (/lib/systemd/system/krb5-kdc.service; enabled)
Drop-In: /lib/systemd/system/krb5-kdc.service.d
└─slapd-before-kdc.conf
Active: active (running) since Fri 2016-04-29 14:59:57 CEST; 1min 3s ago
Process: 1042 ExecStart=/usr/sbin/krb5kdc -P /var/run/krb5-kdc.pid $DAEMON_ARGS (code=exited, status=0/SUCCESS)
Main PID: 1043 (krb5kdc)
CGroup: /system.slice/krb5-kdc.service
└─1043 /usr/sbin/krb5kdc -P /var/run/krb5-kdc.pid
Apr 29 14:59:57 kerberos krb5kdc[1042]: preauth pkinit failed to initialize: No realms configured correctly for pkinit support
Apr 29 14:59:57 kerberos krb5kdc[1042]: setting up network...
Apr 29 14:59:57 kerberos krb5kdc[1042]: listening on fd 8: udp 0.0.0.0.88 (pktinfo)
Apr 29 14:59:57 kerberos krb5kdc[1043]: commencing operation
Que mostram que há um problema deste lado.
Eu pesquisei esse erro por algum tempo sem sucesso algum. Kinin funciona ainda bem para autenticação de senha.
UPDATE
Eu coloquei certificados no diretório padrão / var / lib / krb5kdc. O erro descrito desaparece dos logs quando eu reinicio o servidor.
No entanto, agora, há um erro quando tento obter o TGT do servidor no lado do cliente. Eu entro nos logs do servidor:
preauth (pkinit) verify failure: Key parameter not accepted
Eu recebo esta mensagem de erro no lado do cliente:
kinit: krb5_get_init_creds: PREAUTH_FAILED
Wireshark mostra-me este erro como resposta do as-req:
KDC_ERR_KEY_TOO_WEAK
Eu configurei pkinit_dh_min_bits = 1024 no cliente /etc/krb5.conf. Isso está funcionando agora e eu recebo meu ticket \ o /
No entanto, eu preferiria usar uma chave de pelo menos 2048 bits para troca de dh, o que eu não posso agora (mesmo último erro aparece).
Parece que o cliente quer usar parâmetros de 1024 bits dh e, em seguida, os servidores recusam e fecham a conexão. Eu não sei como forçar o cliente a fornecer > = 2048 bits parâmetros dh, como pkinit_dh_min_bits = 2048 no cliente /etc/krb5.conf não tem nenhum efeito.