7.1 KDC server的 安装

1、安装最新版的KDC server

yum install krb5-server krb5-libs krb5-workstation
  • 注:KDC (Key Distribution Center)密匙分配中心, 其在kerberos中通常提供两种服务:
    1.Authentication Service (AS):认证服务   
    2.Ticket-Granting Service (TGS):授予票据服务

2、编辑配置文件

vi /etc/krb5.conf 

[libdefaults]
  renew_lifetime = 7d
  forwardable = true
  default_realm = DATAPLAT.COM.CN
  ticket_lifetime = 24h
  dns_lookup_realm = false
  dns_lookup_kdc = false
  default_ccache_name = /tmp/krb5cc_%{uid}
  #default_tgs_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5
  #default_tkt_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5

[logging]
  default = FILE:/var/log/krb5kdc.log
  admin_server = FILE:/var/log/kadmind.log
  kdc = FILE:/var/log/krb5kdc.log

[realms]
  BIGDATA.ORG.CN = {
    admin_server = 10.123.12.7
    kdc = 10.123.12.7
  }

[domain_realm]
 .bigdata.org.cn =  DATAPLAT.COM.CN
 bigdata.org.cn =  DATAPLAT.COM.CN

注:修改[realms]与添加[domain_realm] ,[libdefaults]对应的default_realm的值

3、使用 kdb5_util 创建Kerberos数据库(*注:会提醒你输入密码,要记好密码)

kdb5_util create -s

     Enter KDC database master key:xxxxxx

4、启动KDC服务

/etc/rc.d/init.d/krb5kdc start
/etc/rc.d/init.d/kadmin start

5、设置KDC服务开机启动

chkconfig krb5kdc on
chkconfig kadmin on

6、创建Kerberos管理员(根据提示输入密码)

kadmin.local -q "addprinc root/root" 
Enter password for principal "root/root@DATAPLAT.COM.CN":xxxxxxxxxx

7、查看KDC ACL权限文件并确保kadm5.acl文件中,有你刚才定义的[realm]信息,无则补上

vi /var/kerberos/krb5kdc/kadm5.acl 
*/root@EXAMPLE.COM *
*/root@DATAPLAT.COM.CN     *

注:其中 /root@DATAPLAT.COM.CN 即为需要添加的信息

8、重启kadmin进程

/etc/rc.d/init.d/kadmin restart

7.2 使用Ambari自动配置Kerberos

  1. 确认你已经安装了KDC并启动了KDC服务,确认你已经安装了JCE;
  2. 登录到Ambari,在菜单栏中 Admin > Kerberos;
  3. 点击 “Enable Kerberos”进入向导安装模式;
  4. 选择你之前配置的KDC版本信息(我们之前配置的是MIT KDC);
  5. 勾选选框确认已经完成了Kerberos安装前的准备事项;
  6. 填写KDC相关配置信息(这里假设你已经按照我们之前的步骤安装了KDC)
    下列选项中Domains最好是填上:.data.com.cn
  7. spark 配置kerberos认证_kerberos

一路Next 便可.

注:kerberos开启后建议不要随意进行重启,由于kerberos在重启过程中需要将很多配置文件进行移除相关的操作。在这个过程有可能会出现移除文件不完整的情况。因而导致整个系统访问出现问题。

7.2.1 Kerberos的票据管理

在使用kerberos进行HDP集群安全认证的时候,我们需要对能够接入集群的用户进行管理,这个时候会需要使用到一些常用的命令。本小节将集中讲解如何管理kerberos的票据,包括生成、分发、删除等操作。

1、登录 kerberos

/usr/sbin/kadmin.local

2、查看用户

kadmin.local : listprincs

3、添加用户

kadmin.local : addprinc project2/hdp39@BMSOFT.COM

4、删除用户

kadmin.local : delprinc project2/hdp39@BMSOFT.COM

5、创建keytable文件 生成 project2/hdp39 用户的 keytab 文件到 /opt/keystore/ 目录(目录由自己随意指定)

kadmin.local :ktadd -k /opt/keystore/project2.keytab project2/hdp39

6、获得或更新 Kerberos 票据授权票据

kinit -k -t /opt/keystore/project2.keytab project2/hdp39@BMSOFT.COM

7.2.2 对kerberos进行重启出现的问题

如下为重启出现的问题:

当成功开户Kerberos后,通过Ambari将Kerberos 停用,停用之后便出现如下问题,hdfs没有访问权限,异常如下所示:

Unauthorized connection for super-user: root from IP 10.123.12.7

原因:其将HDFS的访问权限设置为只允许hdp04该主机访问了,将其访问权限修改为允许所有主机访问则可(即改为 *)

如下图所示:

spark 配置kerberos认证_spark 配置kerberos认证_02

注:如果在使用kerberos的过程中,出现了实现解决不了的问题,可以试下重新安装KDC 。

参考官方文档:
https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.5.0/bk_security/content/_installing_and_configuring_the_kdc.html