关于kdc 支持TCP/UDP协议的问题
kdc原生支持tcp/udp协议,客户端访问kdc服务时,默认先使用udp协议发起请求,如果数据包过大或者请求失败,然后再换用tcp协议请求。
kdc默认支持tcp/udp协议,当然ipv4/ipv6都兼容
kadmin只支持tcp协议,ipv4/ipv6都兼容
如果某些场景客户端只支持tcp,那么也可以修改配置使客户端访问kdc时总是使用tcp协议。
该配置项如下:
udp_preference_limit = 1
资料:
https://docs.oracle.com/cd/E37459_01/E37463/html/ad-auth.html#ad-auth-kerberos-protocols
https://docs.oracle.com/cd/E19253-01/819-7061/seamov-62/index.html
https://www.oreilly.com/library/view/kerberos-the-definitive/0596004036/ch06s05s01.html
关于kdc票据的有效期问题
/etc/krb5.conf客户端配置文件
ticket_lifetime :票据的有效期,默认为1d;
时间单位一般有d/h/m/s等
renew_lifetime :票据的可再生期限可延长至指定时间;
要求延长有效期的操作需要在ticket_lifetime 到达前完成,否则后续将不能再延长有效期,且有效期只能验证一次;
默认为0;
时间单位一般有d/h/m/s等
kdc.conf配置文件
max_life :票据默认的有效期,默认值是1d
max_renewable_life :票据默认的最大可再生时间,默认是0
默认创建的principal的票据有效期及最大可再生时间是由kdc.conf配置文件确定的:
kinit命令参数确定票据有效期
kinit --help
-l lifetime 通过命令行修改票据的有效期
-s start time 默认票据生效的时间是获取到票据的时刻,可通过命令行修改票据开始生效的时间
-r renewable lifetime 通过命令行参数修改票据的可再生时间
创建了一个principal后,如果想要改变票据的有效期,一般来说kdc.conf文件不轻易变化,因为它是服务端配置文件,需要重启生效,所以可改变的就是krb5.conf文件以及通过命令行参数的方式了,做验证时,生成的票据的有效期由krb5.conf、kdc.conf和命令行参数这3者中的最小值决定:
如:
有效期是1天,可再生时间是7天,即最大有效期可延长至7天。
现在修改一下有效期:
1)通过krb5.conf
票据有效期改为5min:
有效期变为5分钟了:
2)通过命令行参数
通过命令行参数将有效期改为1min:
资料:
//www.greatytc.com/p/54cd2a659698
解决ip多域名映射问题
方案1
通过/etc/hosts文件指定ip与域名的唯一映射关系,由此可以解决多域名映射导致kdc验证失败的问题
方案2
在/etc/krb5.conf配置文件的[libdefaults]模块下加上配置项rdns=false,这样也可以解决ip多域名映射问题导致的kdc验证失败
kdc票据缓存路径修改,替换默认存储路径
修改/etc/krb5.conf配置文件
在libdefaults模块下添加配置项default_ccache_name,并指定cache type为DIR,然后指定票据的缓存路径。