MIT Kerberos 故障排除

1. 日志记录

 

大多数使用MIT krb5 1.9或更高版本可以使用跟踪日志记录提供有关内部krb5库操作的信息。要启用此功能,可以在运行程序之前将KRB5_TRACE环境变量设置为文件名。在大多数操作系统上,文件名/ dev / stdout可用于将跟踪日志记录输出发送到标准输出上。

如下示例,显示了调用kvno命令的跟踪日志记录输出:

 

shell% env KRB5_TRACE=/dev/stdout kvno krbtgt/KRBTEST.COM
[9138] 1332348778.823276: Getting credentials user@KRBTEST.COM ->
    krbtgt/KRBTEST.COM@KRBTEST.COM using ccache
    FILE:/me/krb5/build/testdir/ccache
[9138] 1332348778.823381: Retrieving user@KRBTEST.COM ->
    krbtgt/KRBTEST.COM@KRBTEST.COM from
    FILE:/me/krb5/build/testdir/ccache with result: 0/Unknown code 0
krbtgt/KRBTEST.COM@KRBTEST.COM: kvno = 1

 

2. Java Kerberos / KRB5和SPNEGO调试系统属性

调试Kerberos的Java类,可以打开调试日志记录的系统属性。 这些属性可以进行有意义的调试。

第一个属性可以处理Kerberos错误,可以帮助解决配置错误的KDC服务器,krb5.conf问题以及其他问题。

-Dsun.security.krb5.debug=true

 

第二个属性专门用于Kerberos安全Web端点的SPNEGO调试。

-Dsun.security.spnego.debug=true

 

可以使用Apache Hadoop和相关组件的* _OPTS变量设置这些属性,如下例所示:

HADOOP_OPTS =“ - Dsun.security.krb5.debug = true”

 

当打开sun.security.krb5.debug=true时,示例debug 信息如下所示(只打印出一部分):

 

Debug is  true storeKey false useTicketCache false useKeyTab false doNotPrompt false ticketCache is null isInitiator true KeyTab is null refreshKrb5Config is false principal is null tryFirstPass is false useFirstPass is false storePass is false clearPass is false
[Krb5LoginModule] user entered username: xyang@DV.CN
Java config name: null
Native config name: C:\Windows\krb5.ini
Loaded from native config
>>> KdcAccessibility: reset
default etypes for default_tkt_enctypes: 23 16 3 1 23 3.
>>> KrbAsReq creating message
>>> KrbKdcReq send: kdc=10.97.219.8 TCP:88, timeout=30000, number of retries =3, #bytes=135
>>> KDCCommunication: kdc=10.97.219.8 TCP:88, timeout=30000,Attempt =1, #bytes=135
>>>DEBUG: TCPClient reading 627 bytes
>>> KrbKdcReq send: #bytes read=627
>>> KdcAccessibility: remove 10.97.219.8
>>> EType: sun.security.krb5.internal.crypto.ArcFourHmacEType
>>> KrbAsRep cons in KrbAsReq.getReply xyang

 

3. 常见Kerberos 错误

 

KDC has no support for encryption type while getting initial credentials
credential verification failed: KDC has no support for encryption type

 

这种情况通常发生在尝试使用仅具有DES密钥的Principal时,在默认情况下禁用DES的版本(MIT krb5 1.7或更高版本)中, DES加密被认为是弱加密的。 如果无法从其使用中移除,可以通过将allow_weak_crypto = true添加到krb5.conf的[libdefaults]部分来重新启用DES。

Cannot create cert chain: certificate has expired

 

此错误消息表示PKINIT身份验证失败,表明客户端证书,KDC证书或其上方签名链中的某个证书已过期。

如果KDC证书已过期,则此消息将显示在KDC日志文件中,并且客户端将收到“Preauthentication failed”错误。 (在1.11版之前,KDC日志文件消息错误地显示为“Out of memory”。在1.12版之前,客户端将收到“Generic error”。)

kprop: No route to host while connecting to server

 

确保Slave KDC的主机名(如kprop所示)是正确的,并且Master KDC和Slave KDC之间的任何防火墙都允许在端口754上建立连接。

kprop: Server rejected authentication (during sendauth exchange) while authenticating to server

 

确保如下:

主从KDC之间的时间是同步的;

Master KDC 的 Stash文件已从主服务器复制到从服务器上的指定位置;

Slave KDC的默认keytab文件中,包含slave的主机名的Host Principal。

 

如需了解更多的关于Kerberos 配置的信息,请访问  Kerberos 实践课程 和 调试课程系列(https://ke.qq.com/course/394424?tuin=9239b190)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值