Kerberos简介
Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。
本篇就介绍如何在CDH集群中开启Kerberos安全认证,让Kerberos为集群数据安全保驾护航。
Kerberos认证原理
1.基本概概念
KDC:KeyDistributeCenter,密钥分发中心,其中包含认证服务器,票证授权服务器,和数据库
AS:AuthenticationServer,认证服务器
TGS:TicketGrantingServer,票证授权服务器
TGT:TicketGrantingTicket1票证授予票证
Principal:主体,用于在kerberos加密系统中标记一个唯一的身份。主体可以是用户(如zhangsan)或服务(如namenode或hive)。
2.认证流程
(1)客户端执行kinit命令,输入Principal及Password,向AS证明身份,并请求获取TGT。
(2)AS检查Database中是否存有客户端输入的Principal,如有则向客户端返回TGT。
(3)客户端获取TGT后,向TGS请求ServerTicket。
(4)TGS收到请求,检查Database中是否存有客户端所请求服务的Principal,如有则向客户端返回ServerTicket。
(5)客户端收到ServerTicket,则向目标服务发起请求。
(6)目标服务收到请求,响应客户端。
Kerberos部署
1.安装Kerberos相关服务
选择集群中的一台主机(hadoop.example.