“坑”说明

如果 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<<EOF
# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/[logging]default = FILE:/var/log/krb5libs.logkdc = FILE:/var/log/krb5kdc.logadmin_server = FILE:/var/log/kadmind.log[libdefaults]dns_lookup_realm = falsedns_lookup_kdc = falseticket_lifetime = 24h     # 认证凭证生命周期renew_lifetime = 7d      # 认证凭证最长延期时限forwardable = truerenewable = truerdns = falsepkinit_anchors = /etc/pki/tls/certs/ca-bundle.crtdefault_realm = TEST.COMdefault_ccache_name = KEYRING:persistent:%{uid}[realms]
TEST.COM = {kdc = kerberos-auth                 # TEST.COM 域中的 KDC 接口admin_server = kerberos-auth  # TEEEST.COM 域中的 Admin Server 接口
}[domain_realm]
.TEST.com = TEST.COM
TEST.com = TEST.COM
EOF

配置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<<EOF
[kdcdefaults]kdc_ports = 88kdc_tcp_ports = 88[realms]TEST.COM = {acl_file = /var/kerberos/krb5kdc/kadm5.acldict_file = /usr/share/dict/wordsadmin_keytab = /var/kerberos/krb5kdc/kadm5.keytab# aes256-cts这个校验方式需要单独下载 JCE-*.jar,并把 jar 包放到 ${JRE_HOME}/lib/security 路径下master_key_type = aes256-ctssupported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal}
EOF

管理帐号 ACL 配置

[root@ambari-agent01 ~]$ cat >/var/kerberos/krb5kdc/kadm5.acl<<EOF
*/admin@TEST.COM        *
EOF

初始化并创建 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/M@TEST.COM'
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/admin@TEST.COM with password.
WARNING: no policy specified for admin/admin@TEST.COM; defaulting to no policy
Enter password for principal "admin/admin@TEST.COM":          # 设置管理帐号密码
Re-enter password for principal "admin/admin@TEST.COM":    # 确认密码
Principal "admin/admin@TEST.COM" created.

查看 Kerberos 数据库帐号列表

# 个人感觉与 Mysql 查询用户SQL“select user, host from mysql.user;” 差不多
[root@ambari-agent01 krb5kdc]$ kadmin.local listprincs
K/M@TEST.COM
admin/admin@TEST.COM
kadmin/admin@TEST.COM
kadmin/ambari-agent01@TEST.COM
kadmin/changepw@TEST.COM
kiprop/ambari-agent01@TEST.COM
krbtgt/TEST.COM@TEST.COM

启动 Kerberos-Server

systemctl start krb5kdc.service

启动 Kadmin-Server

systemctl start kadmin.service

配置Ambari集成Kerberos,Ambari页面配置

在管理项目中选中Kerberos

开启Kerberos

这个警告不用管,选择'Proceed Anyway'

# 警告:yarn的日志和日志目录将被删除,并将resourcemanager的状态重新格式化为开启或关闭kerberos应用的状态

开始配置Kerberos

配置并测试KDC连通性

配置测试kadmin连通性并继续

# 在 Admin Principal 和 Admin Password 中填入手动创建的管理帐号与帐号密码
# 创建的帐号为 admin/admin@TEST.COM,密码为123456

在Ambari集群所有节点安装Kerberos Client,并进行Client连接测试

# 测试过程可能会提示session过期,重新输入用户、密码进行认证
# 客户端连接命令: kadmin -r TEST.COM -s kerberos-auth:88 -padmin/admin@TEST.COM

安装客户端及测试连接成功

# 后面几项配置使用默认就可以了。
# 如果有兴趣的话,在 Confirm Configuration (确认配置)这步时可以下载CSV文件看一下,里面有详细的 Ambari 自动创建的各个应用组件连接 Kerberos 认证的 principal 和 keytabs

转载于:https://blog.51cto.com/784687488/2332072

Ambari2.6.2集成Kerberos相关推荐

  1. HDP安全之集成kerberos/LDAP、ranger;安装部署kerberos;安装Knox;安装LDAP;启动LDAP;验证Knox网关

    5.HDP安全之集成kerberos/LDAP.ranger 集成HDP kerberos /LDAP/ranger之前必须先了解为什么要这样做,kerberos/LDAP是用来做身份认证的,rang ...

  2. 报错:Ticket expired while renewing credentials 原因:Hue 集成Kerberos 导致Kerberos Ticket Renewer 起不来

    报错:Ticket expired while renewing credentials 原因:Hue 集成Kerberos 导致Kerberos Ticket Renewer 起不来 图片: 报错, ...

  3. jcepolicy7.zip linux,HDP安全之集成kerberos/LDAP、ranger(knox自带LDAP)

    ----------------------目录导航见左上角------------------------------- 环境 HDP 3.0.1.0 (已有) JDK   1.8.0_91 (已有 ...

  4. 大数据入门教程,小白快速掌握Hadoop集成Kerberos安全技术

    Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证.今天分享的视频教程从零学习Kerberos安全认证机制,并和Hadoop.YARN.HIVE进行集成, ...

  5. hadoop集成kerberos

    节点 ip 进程 user master 192.168.1.115 NameNode root slave1 192.168.1.116 DataNode root kdcserver 192.16 ...

  6. CDH集成Kerberos配置

    转载自 JavaChen Blog,作者:JavaChen 原文链接地址:http://blog.javachen.com/2014/11/04/config-kerberos-in-cdh-hdfs ...

  7. hive 集成oracle,hive集成kerberos问题1

    在hdfs+mapred+impala+kerberos运行正常后,开始测试hive+kerberos.hive0.11之后开始支持kerberos的验证,hive主要有两种访问方式,一种方法是she ...

  8. Ambari2.7.4集成Hue4.6.0

    一.前言 Hue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Pytho ...

  9. livy 集成kerberos

    因为griffin需要安装livy组件的支持,所以需要安装livy提交spark任务. 安装livy (1)下载apache livy 下载地址:https://github.com/apache/i ...

最新文章

  1. python中的模运算符_Python中的字符串模运算符与format函数
  2. 好听的歌曲---爱情转移
  3. Java黑皮书课后题第10章:*10.15(几何:边框)边框是指包围一个二维平面上点集的最小矩形,编写一个方法,为二维平面上一系列点返回一个边框
  4. 数据分析工具选型3大秘诀,Excel竟未上榜
  5. win32 c语言编程,win32环境C语言实现最基本的DLL编写及调用实例,测试通过[原]
  6. 用curl自动登录HTTPS站点
  7. zabbix 自定义监控 排除带报错提示
  8. PHP json_decode($json, TRUE) TRUE使数据格式化为Array,而非object
  9. data fastboot 擦除_安卓刷机 - Fastboot命令
  10. html 图片轮播渐变,简单的jquery图片轮播渐变
  11. 全网最全最细的PLSQL下载、安装、配置、使用指南、问题解答,相关问题已汇总
  12. 01:电机控制的基本原理
  13. Python简单使用蓝本
  14. 但行好事 莫问前程(四月)
  15. Tomcat启动Alias name [null] does not identify a key entry报错分析,涉及从公钥(CER)+私钥(KEY)转换为jks证书的方法
  16. 数据库死锁的预防与解除
  17. 幻数java题_幻数
  18. 在PyCharm环境中使用graphviz遇到的问题
  19. 节能与环保杂志节能与环保杂志社节能与环保编辑部2023年第2期目录
  20. Python Pandas DataFrame 表格 打印输出不能对齐的两种解决方案

热门文章

  1. 求教PHP+oracle的开发
  2. 关于cast类型转换后无法使用索引的优化
  3. android fitsSystemWindows的使用
  4. android 读取assets文件夹下的文件资源
  5. Bluetooth协议栈
  6. 沙箱(Sandbox)
  7. 006-筛选分类排序搜索查找Filter-Classificatio-Sort-Search-Find-Seek-Locate
  8. 结构型模式—外观模式
  9. Python中的 // 与 / 的区别
  10. Flutter入门:Button