“坑”说明
如果 HDP 版本是 2.6.5、Ambari 版本是 2.6.2.2 ,切记与 Kerberos 集成时,注意一下 Kerberos 的版本。
Kerberos 版本一定不能是 1.15.1-18,会受伤的。
Kerberos 版本大于 18 这个小版本应该都没有问题,亲测版本 1.15.1-19、1.15.1-34 。
这是本篇文章使用的列表:
krb5-libs-1.15.1-34.el7.x86_64
krb5-server-1.15.1-34.el7.x86_64
krb5-workstation-1.15.1-34.el7.x86_64
krb5-devel-1.15.1-34.el7.x86_64
名词解释
Kerberos: Network Authentication protocol(网络认证协议)
KDC: Key Distribution center(密钥分配中心)
Kadmin: Kerberos Administrator(Kerberos管理)
前言
安装Kerberos之前,需要有配置好的Ambari环境。
Ambari安装参见上一篇文章:https://blog.51cto.com/784687488/2329891
配置/etc/hosts
[root@ambari-agent01 ~]$ cat /etc/hosts
10.0.2.20 ambari-server server.ambari.com
10.0.2.21 ambari-agent01 agent01.ambari.com kerberos-auth
10.0.2.22 ambari-agent02 agent02.ambari.com
安装Kerberos
# 下载 aes256-cts 编码支持组件 JCE(jce_policy-8.zip)
yum install krb5-server krb5-libs krb5-workstation -y
配置Kerberos Server配置文件
[root@ambari-agent01 ~]$ cat >/etc/krb5.conf<
配置KDC配置文件
# 解压 JCE 支持组件至${JRE_HOME}/lib/security/
[root@ambari-agent01 ~]$ unzip UnlimitedJCEPolicyJDK7.zip
[root@ambari-agent01 ~]$ for n in 20 21 22;do scp local_policy.jar US_export_policy.jar 10.0.2.$n:/opt/jdk/jre/lib/security/;done
[root@ambari-agent01 ~]$ cat >/var/kerberos/krb5kdc/kdc.conf<
管理帐号 ACL 配置
[root@ambari-agent01 ~]$ cat >/var/kerberos/krb5kdc/kadm5.acl<
初始化并创建 Kerberos 数据库
[root@ambari-agent01 ~]$ kdb5_util create -r TEST.COM -s
Loading random data
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'TEST.COM',
master key name 'K/[email protected]'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key: # 设置密码
Re-enter KDC database master key to verify: # 确认密码
创建管理帐号 Principal
[root@ambari-agent01 krb5kdc]$ kadmin.local -q "addprinc admin/admin"
Authenticating as principal root/[email protected] with password.
WARNING: no policy specified for admin/[email protected]; defaulting to no policy
Enter password for principal "admin/[email protected]": # 设置管理帐号密码
Re-enter password for principal "admin/[email protected]": # 确认密码
Principal "admin/[email protected]" created.
查看 Kerberos 数据库帐号列表
# 个人感觉与 Mysql 查询用户SQL“select user, host from mysql.user;” 差不多
[root@ambari-agent01 krb5kdc]$ kadmin.local listprincs
K/[email protected]
admin/[email protected]
kadmin/[email protected]
kadmin/[email protected]
kadmin/[email protected]
kiprop/[email protected]
krbtgt/[email protected]
启动 Kerberos-Server
systemctl start krb5kdc.service
启动 Kadmin-Server
systemctl start kadmin.service
配置Ambari集成Kerberos,Ambari页面配置
在管理项目中选中Kerberos
![Ambari2.6.2集成Kerberos](http://img.e-com-net.com/image/info3/99cff72952e04eaca534d1a0bd2b46f0.jpg)
开启Kerberos
![Ambari2.6.2集成Kerberos](http://img.e-com-net.com/image/info3/f37527f6ab744f92ba053f4dffc42bf1.jpg)
这个警告不用管,选择'Proceed Anyway'
# 警告:yarn的日志和日志目录将被删除,并将resourcemanager的状态重新格式化为开启或关闭kerberos应用的状态
![Ambari2.6.2集成Kerberos_第1张图片](http://img.e-com-net.com/image/info3/2a3f24fa676a43a495c5bd2d7be13d37.jpg)
开始配置Kerberos
![Ambari2.6.2集成Kerberos_第2张图片](http://img.e-com-net.com/image/info3/c26284bc04984fc8afdcc0e43227bf83.jpg)
配置并测试KDC连通性
![Ambari2.6.2集成Kerberos_第3张图片](http://img.e-com-net.com/image/info3/4b4310a72d974ca3b99cc49d7ea5e405.jpg)
配置测试kadmin连通性并继续
# 在 Admin Principal 和 Admin Password 中填入手动创建的管理帐号与帐号密码
# 创建的帐号为 admin/[email protected],密码为123456
![Ambari2.6.2集成Kerberos_第4张图片](http://img.e-com-net.com/image/info3/5c129f417a334c60b6ff89cc58a0c46a.jpg)
在Ambari集群所有节点安装Kerberos Client,并进行Client连接测试
# 测试过程可能会提示session过期,重新输入用户、密码进行认证
# 客户端连接命令: kadmin -r TEST.COM -s kerberos-auth:88 -padmin/[email protected]
安装客户端及测试连接成功
![Ambari2.6.2集成Kerberos_第5张图片](http://img.e-com-net.com/image/info3/4e574ca8b83f478080911a345f032426.jpg)
# 后面几项配置使用默认就可以了。
# 如果有兴趣的话,在 Confirm Configuration (确认配置)这步时可以下载CSV文件看一下,里面有详细的 Ambari 自动创建的各个应用组件连接 Kerberos 认证的 principal 和 keytabs