前段时间折腾了点大数据安全(Security)方面的东西,主要应用是大数据集群中安全方面的配置和使用。本文简单介绍下Kerberos认证方面的知识,记录一下通过Ambari搭建的Hadoop集群,Kerberos安装过程中涉及到Kerberos KDC的安装和配置,以及一些常用的命令介绍。
Kerberos简介
Kerberos这个名字来源于希腊神话,是冥界守护神兽的名字。Kerberos是一个三头怪兽,之所以用它来命名一种认证协议,是因为在整个认证过程涉及到三方:客户端、服务端和KDC(Key Distribution Center),在Windows域环境中,KDC的角色由DC(Domain Controller)来担当。
Kerberos实际上是一种基于票据(Ticket)的认证方式。客户端要访问服务器的资源,需要首先购买服务端认可的票据。也就是说,客户端在访问服务器之前需要预先买好票,等待服务验票之后才能入场。在这之前,客户端需要先买票,但是这张票不能直接购买,需要一张认购权证。客户端在买票之前需要预先获得一张认购权证。这张认购权证和进入服务器的入场券均由KDC发售。如图所示:
Ambari Kerberos安装
基于操作系统是Centos6.7版本,Ambari版本2.2.2+,KDC安装节点主机名:server.bigdata
KDC安装
1.安装KDC Server
|
|
2.修改配置文件:/etc/krb5.conf
|
|
3.修改文件:/var/kerberos/krb5kdc
|
|
4.创建KDC数据库
|
|
5.启动KDC数据库并设置开机启动
|
|
6.创建远程管理员
|
|
7.修改其它配置文件
如果以上设置的票据是:admin/admin@BIGDATA 把/var/kerberos/krb5kdc/kadm5.acl文件内容就应该改为:
|
|
8.重启后KDC安装完成
|
|
安装JCE
Ambari搭建集群过程中,如说是手动指定的JDK路径,一般需要在JDK中安装JCE,默认使用Ambari提供的JDK自带JCE。
JDK1.7-JCE 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
JDK1.8-JCE 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
解压安装到${JAVA_HOME}/jre/lib/security目录下
|
|
Kerberos Client安装
在Ambari菜单【Admin】-【Kerberos】-【Enable Kerberos】安装Kerberos Client,如下图:
常用命令
1.关于kadmin.local和kadmin
kadmin.local和kadmin至于用哪个,取决于账户和访问权限:
kadmin.local(on the KDC machine)or kadmin (on others machine)
如果有访问kdc服务器的root权限,但是没有kerberos admin账户,使用kadmin.local
如果没有访问kdc服务器的root权限,但是有kerberos admin账户,使用kadmin
2.添加票据
|
|
3.获取票据信息
|
|
4.列出KDC中所有票据
|
|
5.删除票据
|
|
6.修改principal属性
|
|
7.缓存票据
|
|
8.更新票据
|
|
9.查看或删除用户缓存的票据
|
|
10.合并票据
|
|
参考链接:
http://gost.isi.edu/publications/kerberos-neuman-tso.html
http://www.cnblogs.com/artech/archive/2011/01/24/kerberos.html