解析:kerberos主从双kdc如何做到可靠性保障
Kerberos作为认证系统,其在交互速度上要优于密钥认证,复杂度上又要低于开发、搭建一整套的认证系统,被一些看中性能且需要安全的集群系统所青睐。例如旧版本的hadoop的并没有安全保障,但随着业务场景增多,hadoop中存在的用户信息变成了攻击的目标,hadoop便增加kerberos及ssl等安全配置项。
搭建、配置kerberos的过程比较繁琐,主要涉及到krb5.conf、kdc.conf配置文件及一些命令操作,如创建目标realm对应数据库、添加认证用户等等,但是这些了解了kerberos的一些基本概念后还是比较容易完成的,网上也可以搜到不少类似的指导文档。
在业务集群运行时交互涉及的信息,需要初始配置阶段就需要完成的,也就是说业务运行过程中实际没kadmind多少事,即使down掉也不影响到系统运行。但是业务集群中的节点在运行时需要通过KDC获取TGT认证,此时KDCdown掉集群就over了,完全无法提供服务。
Kerberos实际上是支持多KDC配置的,从可靠性角度看两个KDC足以保证。但是配置中涉及到数据同步问题还是比较蛋疼的,在实际配置中确实就遇到过kpropd无法同步KDC中数据的问题。
krb5.conf中realms配置双KDC
[realms]
XXXXX.COM = {
kdc= kerberos.xxxxx.com
kdc= kerberos2. xxxxx.com
admin_server = kerberos. xxxxx.com
default_domain = xxxxx.com
}
Kerberos由主KDC中同步到从KDC主要两个步骤:
1. dump主KDC中的数据
kdb5_util dump /your_path/kdc.dump
2. 借助kprop命令通知从节点kpropd进程同步数据:
kprop -f /your_path/kdc.dump kerberos2.xxxxx.com
一般情况下主节点上新增用户信息后,需要进行上述步骤同步数据,在管理集群时,新增服务或者节点实际是可控的,因此操作是可控的。
在操作中遇到kprop命令无法通知从节点kpropd的情况(通道?认证?配置?待解决)。实际上kprop命令只干了一件大事:通知从节点kpropd进程“你有份.dump快递请接收”。从节点kpropd进程收到.dump后调用load命令加载到KDC中,完成数据同步。
两台kerberos节点间也是需要交互认证的(添加kerberos配置)。
搞Kprop同步时,小编是搞了一身一嘴毛,没办法搞了替代方案:
1. dump master数据信息
2. 传输.dump文件到kerberos从节点
3. 从节点上调用kdb5_util load命令加载数据到KDC中
OK,解决了,但是复杂度高了。。。
同步OK后,主从KDC进程只要OK一个,业务系统的认证就不存在可靠性问题了。当然涉及到的kerberos进程都是需要监控告警的,任何一个进程出问题都是要立马解决的O。
限于只是条咸鱼,经验有限,还请多多交流。
- 点赞
- 收藏
- 关注作者
评论(0)