解析:kerberos主从双kdc如何做到可靠性保障

举报
luxuyu 发表于 2017/11/17 10:34:26 2017/11/17
【摘要】 Kerberos作为认证系统,其在交互速度上要优于密钥认证,复杂度上又要低于开发、搭建一整套的认证系统,被一些看中性能且需要安全的集群系统所青睐。例如旧版本的hadoop的并没有安全保障,但随着业务场景增多,hadoop中存在的用户信息变成了攻击的目标,hadoop便增加kerberos及ssl等安全配置项。搭建、配置kerberos的过程比较繁琐,主要涉及到krb5.conf、kdc.conf配

Kerberos作为认证系统,其在交互速度上要优于密钥认证,复杂度上又要低于开发、搭建一整套的认证系统,被一些看中性能且需要安全的集群系统所青睐。例如旧版本的hadoop的并没有安全保障,但随着业务场景增多,hadoop中存在的用户信息变成了攻击的目标,hadoop便增加kerberosssl等安全配置项。

搭建、配置kerberos的过程比较繁琐,主要涉及到krb5.confkdc.conf配置文件及一些命令操作,如创建目标realm对应数据库、添加认证用户等等,但是这些了解了kerberos的一些基本概念后还是比较容易完成的,网上也可以搜到不少类似的指导文档。

Image 28.png

在业务集群运行时交互涉及的信息,需要初始配置阶段就需要完成的,也就是说业务运行过程中实际没kadmind多少事,即使down掉也不影响到系统运行。但是业务集群中的节点在运行时需要通过KDC获取TGT认证,此时KDCdown掉集群就over了,完全无法提供服务。

Kerberos实际上是支持多KDC配置的,从可靠性角度看两个KDC足以保证。但是配置中涉及到数据同步问题还是比较蛋疼的,在实际配置中确实就遇到过kpropd无法同步KDC中数据的问题。

krb5.confrealms配置双KDC

[realms]

 XXXXX.COM = {

  kdc= kerberos.xxxxx.com

  kdc= kerberos2. xxxxx.com

 admin_server = kerberos. xxxxx.com

 default_domain = xxxxx.com

 }

Image 29.png

Kerberos由主KDC中同步到从KDC主要两个步骤:

1. dumpKDC中的数据 

 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

限于只是条咸鱼,经验有限,还请多多交流。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。