微信
手机版
网站地图

黄政民,荆轲刺秦王-卢本伟的奇幻漂流25年|主播故事

2019-05-08 10:26:30 投稿人 : admin 围观 : 190 次 0 评论

KDC 基本概念

KDC 是秘钥分发中心(Key Distribution Center)的简称,是暗码体系中重要的组成部分,意图是下降交流秘钥时固有的危险。KDC 完成 Kerberos 帐号的认证和授权。KDC 是独立于 Client 和 Server 端的第三方认证中心,能够在敞开网络环境下进行 Client 和 Server 端的彼此认证。



图 1 KD黄政民,荆轲刺秦王-卢本伟的奇幻漂流25年|主播故事C 安排结构图

KDC 首要组成部分:

AS:认证服务,首要是发放 TGT 给 Client 端

TGS:收据授权服务,发放 ST 给 Client 端

DATABASE:数据库,送别翁立友寄存 kerberos 账号信息

Kerberos 是一种运用对称加密算法的计算机网络授权协议,用于在非安全网络环境中,对个人通讯以安全的办法进行身份认证。一起它也是 MIT 开发的一种 C/S 架构的秘钥办理体系,能够完成客户端和服务端的彼此认证。现在被广泛运用的 V5 版别。首要概念如下:

1)TGT:ticket-granting ticket,收据授权收据,由 AS 发放。

2)ST:服务收据,由 TGS 发放。

3)Principal:Kerberos 主体,如服务或帐号。

4)Realm:Kerberos 在办理上的区分,在 KDC 中所担任的一个域数据库。这个数据库寄存该网络范围内的一切 Principal 和它们的密钥。

5)SS:服务供给端。

Kerber肥壮的女性os 处理的问题

1)避免秘钥在网络中传输;

2)避免用户的暗码存储在客户端机器上;

3)完成了客户端和服务端的彼此认证;

4)认证信息办理是会集的,驻留在认证服务器上。应用程序服务器不得包含其用户的身份验证信息。这关于取得以下成果是至关重要的:办理员能够经过在一个方位上进行操作来禁用任何用户的帐户,而不用在供给各种服务的多个应用服务器上进行操作。

在 Hadoop1.0.0 后引进了 Kerberos 认证机制,处理了 Hadoop 生态的安全问题

1)避免了用户伪装成 Datanode,Tasktracker,去承受 JobTracker,Namenode 的使命指使;

2)Kerberos 对可信赖的客户端供给认证,保证他们能够履行作业的相关操作。避免用户歹意假充 Client 提交作业的状况。

认证原理

1

Client 认证进程



图 2 Client 认证进程示意图

1)Client 将 TGT 和要恳求的服务信息发送给 KDC,KDC 中的 TGS 会生成一个 Session Key 用于 Service 和 Client 端的认证。然陈鲁起后 KDC 将这个 Session Key 和用户名、用户地址(IP)等信息生成 Ticket(这些信息用于后续 Service 和 Client 的身份认证)发送给 Client 端,由 Client 转发给 Service。KDC 运用它和 Service 端同享密钥加密方才的 Ticket,然后发送给 Client。为了使 Client 和 Service 同享之前的 Session Key(KDC 为 Client 和 Service 创立的),KDC 会运用 Client 和 KDC 之间的同享密钥加密 Session Key 和 Ticket 回来给 Client;

2)Client 将收到的 Session Key 解密出来,然后将自己的用户名,用户地址(IP)打包成 Authenticator 用 Session Key 加密和 Ti陈长芹cket 一块发送给 Service。

3)Service 收到 Ticket 后运用它与 KDC 之间的密钥将 Ticket 中的信息解密出来,然后取得 Session Key 和用户名,用户地址(IP)等信息。然后再用 Session Key 将 Authenticator 解密然后取得用户名,用户地址(IP)将其与之前 Ticket 中解密出来的用户名,用户地址(IP)做比较然后验证 Client 的身份。

4)假设 Service 认证成功,将成果会回来给 Client。

2

常用认证办法

1)kinit Principal@EXAMPLE.COM

2)kinit –k –t /path/to/Principal.keytab Principal@EXAMPLE.COM

3

Ticket 生命周期

每逢主体获取包含票证颁发票证 (TGT) 在内的票证时,都会将票证的生命周期设置为以下生命周期值中的最小值:

  • 经过 kinit 的 -l 选项指定的生命周期值,条件是运用 kinit 获取票证。缺省状况下,kinit 运用 krb5.conf 中设置的值。
  • kdc.conf 文件中指定的最长生命周期值 (max_life)。
  • Kerberos 数据库中为供给票证的服务主体指定的最长生命周期值。假设运用 kinit,则服务主体为 krbtgt/realm。
  • Kerberos 数据库中为恳求票证的用户主体指定的最长生命周期值。(addpol)

KDC 多机房架构演进进程

初期咱们运用 Hadoop 集群,因为其时公司规划较小且黄政民,荆轲刺秦王-卢本伟的奇幻漂流25年|主播故事单机房,所以考虑 Kerberos 规划的时分,只要能完成单机房 HA 就能够满意事务需求。所以调研选用 Keepalive 经过漂移 VIP 的办法到达高可用。KDC 主 Server 运用 kdb5_util dump 将数据库文件备份至一个目录,然后运用 Rsync 同步该目录到 KDC 备 Server 的 Domain 目录,再运用 kdb5_util load 加载数据库文件到 KDC 中。每次有新增帐号时,Rsync 会增量同步黄政民,荆轲刺秦王-卢本伟的奇幻漂流25年|主播故事至 KDC 备 Server。Hadoop 一切恳求都是经过恳求内网域名,解析到 Keepalive 的 VIP 办法拜访 KDC 服务(如图 3)。



图 3 KDC 单机房 HA 计划示意图

跟着公司的开展,集群规划不断扩大。短短两年国内外就新增了近 10 个机房清辞陆敬修,各机房之间都是经过专线相互拜访。因为 Hadoop 集群是对内部用户运用,不引荐跨机房拜访和布置。所以咱们在各个机房布置了 HDFS、HBase、Zookeeper 等服务,它们同享一套 Kerb返校攻略eros Principal。但何殷纯是这样的架构存在问题,一旦 Kerberos 服务器地点机房到其他机房的专线呈现毛病,Hadoop 相关的服务都会不可用。只能等专线康复,Hadoop 服务才会可用。假设专线毛病事情较长,那就需求紧迫在毛病机房布置 KDC Server。这在必定程度上增加了运维本钱。所以,咱们调研选用多机房战略,在每个机房都布置一套 KDC 体系,各个机房的 KDC 数据库运用 Rsync 同步。简略完成了 KDC Server 的多机黄之政房 HA(如图 4)。



图 4 KDC 多机房 HA 计划示意图

每个机房上线了一套 KDC Server,运用 Keepalive VIP 的办法进张思旋行拜访。运用 Rsync 每天同步主机房的 KDC 数据库到各个机房的 KDC Server。而且运用内网 DNS 解析,使得本机房的 Hadoec精英社op 服务拜访本机房的 KDC 服务。

跟着事务的不断增加,每中华精英联盟主论坛天都有很多的服务拜访 KDC,而且每天都有新增 Kerberos Principal 的需求,越来越多的操作需求手动满意。所以,2015 年年头,经过调研咱们上线了新版的 KDC 服务(如图 5),处理了之前版别存在的一些问题,而且上线了 Kerberos 的办理体系。新版 KDC 服务引进了 Mysql 主从 HA 计划、LVS LB 计划;海外 AWS 引进了 ELB 计划;Principal 恳求规范化、主动化;Principal 和 LDAP 帐号女奶结合;办理体系运用 HTTPS+CAS 办法以及运用 TCP 协议。

图 5 现 KDC 多机房 HA 计划黄政民,荆轲刺秦王-卢本伟的奇幻漂流25年|主播故事示意图

当时 KDC 多机房体系具有一下特色:

KDCServer 负载均衡

经过调研,咱们抛弃了 Hadoop Service 直接拜访 kerberos vip 的办法,而是挑选同机房走同机房 LVS 或 LB(或国外 ELB)进行内网域名解析。当 LVS 或 LB(或国外 ELB)后端一台 kerberos Server 呈现毛病时,LVS 会将一切的流量切到别的一台 kerberos server,保证同机房内运用 kerberos 服务正常,到达高可用。现在国内外上线的机房近 10 个机房上线。

数据同步

数据同步从两方面来说:

1)KDC 主机房数据库,运用 mysql 双主的办法同步,将生成的记载保存到 MySQL 中。MySQL 选用双主的同步办法,KDC 渠道操作生成的新数据会写进 MySQL 数据库,当 Webserver 检测到 MySQL 中有新数据生成,运用 Kadmin 创立对应的 Principal;

2)为了保证各个机房的 KDC 数据库同步,咱们运用 Rsync 同步主机房的 Kerberos 数据库到各个机房。一旦有新增数据,Rsync 捕捉到就会同步到各个机房数据库。另医本正锦外每个机房布置两台 KDC Server,Rsync Server 运用了 Keepalive VIP 的办法,当 KDC 主王霸之气最强者龙傲天机器宕机后,VIP 就会漂移到别的一台 KDC Server 上,Rsync Client 会以 VIP 地点的 KDC 主机器为 Rsync Server 进行数据同步,保证 KDC 服务的高可用。

Principal 规范化、流程化

前期一切的 Principal 的增、删、改、查都是运维工程师手动操作,因为事务的不断增加,每天都有很多的这种需求,占用了运维工程师很多时刻。所以,咱们开发并上线了 Kerberos 办理体系,完成了 Principal 的规范化、主动化,将运维工程师抽离出来了。用户第一次登陆体系时,会创立对应的个人 Kerberos 帐号。假设要恳求新的 Principal,只需求在渠道上提交恳求,物托帮后台就会发送邮件给黄政民,荆轲刺秦王-卢本伟的奇幻漂流25年|主播故事办理员,办理员批阅不经过被吃奶会被打回,用户从头提交即可;办理员经往后,WebServer 就会提交恳求恳求,后台经过调用 KDC Admin 生成对应的 Kerberos Principa 和所需的暗码和 keytab 文件。一起,用户自己也能够便利的办理自己具有的 Kerberos Principal,修正暗码、导出 keytab 文件和检查自己具有权限的 Kerber黄政民,荆轲刺秦王-卢本伟的奇幻漂流25年|主播故事os Principal。

Kerberos Principal 和 LDAP 帐号结合

因为服务的 Kerberos Principal 并不是某个人独占,一般都是同项目组的人共有少女暑假就医回忆录。可是不同的人对 Principal 的权限不同,所以咱们引进了公司的 LDAP 帐号,与 Kerberos Principal 结合。一般恳求某个 Principal 的人便是该 Principal欧缇薇 的 Owner,一起他也能够对这个 Principal 增、删 Owner 和更改权限。别的,也能够转让 Principal 的办理权限给其他人。假设某个 Principal 的 Owner USER1 要离任了,USER1 能够授权 USER 为该 Principal 的办理员。这些都极大地便利了 Kerberos Pr末世之妖花绚烂incipal 的办理。

监控全掩盖

咱们从三个层面临 KDC 服务做了全方位监控:

1)运用进程监控东西对 KDC 服务、MySQL 和 WebServer 进程监控,一旦进程反常退出,进程办理东西就会主动拉起服务;

2)模仿 Kerberos 用户实在环境,创立了测验帐号,在各个机房拜访 KDC 服务,并将对回来值监控;

3) 根底监控:运用监控体系对服务端口、内存和黄政民,荆轲刺秦王-卢本伟的奇幻漂流25年|主播故事磁盘等进行监控。

日志记载

对 Kerberos Principal 的一切操作都有日志记载,日志中包含检查有权限帐号、导出 keytab 文件、重置暗码以及帐号的增、删、改、查其具有人权限等,这样咱们能够便利的定位问题。别的,咱们对 MySQL 到 KDC 的 Replicate 的操作也进行了记载,来获取帐号的增、删方面的信息。

总结

Hadoop 集群引进 Kerberos 服务,使得集群内部的节点之前是相互信赖的,避免了歹意的运用和篡改 Hadoop 集群信息,保证了 Hadoop 集群的安全性。可是,运用 Kerberos 关于集群内节点时刻同步要求比较高,一旦时刻相差太大就会形成认证失利。

相关文章

标签列表