文章目录

  • 环境准备
  • 安装KDC MASTER
  • 安装KDC SLAVER
  • 安装客户端:
  • 使用ambari

环境准备

  1. 安装jdk
  2. 下载Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy File。解压下载后的zip包,将得到的jar包放到所有服务器上的$JAVA_HOME/jre/lib/security/目录下。

安装KDC MASTER

 yum install krb5-server krb5-libs krb5-workstation openldap-clients

kdc服务器包含三个配置文件:

# 集群上所有节点都有这个文件而且内容同步
/etc/krb5.conf
# 主服务器上的kdc配置
/var/kerberos/krb5kdc/kdc.conf
# 能够不直接访问 KDC 控制台而从 Kerberos 数据库添加和删除主体,需要添加配置
/var/kerberos/krb5kdc/kadm5.acl
vi /etc/krb5.conf
# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/# 日志输出设置
[logging]default = FILE:/var/log/krb5/krb5libs.logkdc = FILE:/var/log/krb5/krb5kdc.logadmin_server = FILE:/var/log/krb5/kadmind.log# 连接的默认配置
[libdefaults]dns_lookup_realm = false# 表明凭证生效的时限,一般为24小时ticket_lifetime = 24h# 表明凭证最长可以被延期的时限,一般为一个礼拜。#当凭证过期之后,对安全认证的服务的后续访问则会失败renew_lifetime = 7dforwardable = truerdns = false# Kerberos应用程序的默认领域,所有的principal都将带有这个领域标志default_realm = xxxxT.COM# clockskew:时钟偏差是不完全符合主机系统时钟的票据时戳的容差,超过此容差将不接受此票据。# 通常,将时钟扭斜设置为 300 秒(5 分钟)。这意味着从服务器的角度看,票证的时间戳与它的偏差可以是在前后 5 分钟内# clockskew = 300# credential缓存名,默认值为default_ccache_name = KEYRING:persistent:%{uid}# :禁止使用 udp 可以防止一个 Hadoop 中的错误udp_preference_limit= 1[realms]xxxxT.COM = {# 代表要 kdc 的位置。格式是 机器:端口kdc = cn-bji-t-f205ab.novalocal:88# 代表 admin 的位置。格式是 机器:端口admin_server = cn-bji-t-f205ab.novalocal}# 域名到realm的关系  (可选)
[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM
cd /var/kerberos/krb5kdc
vim /var/kerberos/krb5kdc/kdc.conf
# kdc相关配置,这里只设置了端口信息
[kdcdefaults]kdc_ports = 88kdc_tcp_ports = 88# realms的配置
[realms]# 设定的realms领域xxxxT.COM = {# 和 supported_enctypes 默认使用 aes256-cts。JAVA 使用 aes256-cts 验证方式需要安装 JCE包(推荐不使用)#master_key_type = aes256-cts# 标注了 admin 的用户权限,文件格式是:Kerberos_principal permissions [target_principal] [restrictions]acl_file = /var/kerberos/krb5kdc/kadm5.acldict_file = /usr/share/dict/words# KDC 进行校验的 keytabadmin_keytab = /var/kerberos/krb5kdc/kadm5.keytab# 支持的校验方式supported_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}
  1. 创建Kerberos数据库
[root@cn-bji-t-f205ab krb5kdc]#  kdb5_util create -r xxxxT.com -sLoading random data
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'xxxxT.com',
master key name 'K/M@xxxxT.com'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key:  xxxx
Re-enter KDC database master key to verify: xxxx
  1. 添加database administrator
[root@cn-bji-t-f205ab krb5kdc]#  kadmin.local
Authenticating as principal root/admin@xxxxT.COM with password.
kadmin.local: Can not fetch master key (error: No such file or directory). while initializing kadmin.local interface

出错:注意第4步kdb5_util create -r xxxxT.com -s 中的com是小写改成大写。

[root@cn-bji-t-f205ab krb5kdc]# kdb5_util create -r xxxxT.COM -s
Loading random data
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'xxxxT.COM',
master key name 'K/M@xxxxT.COM'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key:  xxxx
Re-enter KDC database master key to verify:  xxxx
[root@cn-bji-t-f205ab krb5kdc]# kadmin.local
Authenticating as principal root/admin@xxxxT.COM with password.
kadmin.local:  addprinc  admin/admin@xxxxT.COM
WARNING: no policy specified for admin/admin@xxxxT.COM; defaulting to no policy
Enter password for principal "admin/admin@xxxxT.COM": admin
Re-enter password for principal "admin/admin@xxxxT.COM": admin
Principal "admin/admin@xxxxT.COM" created.
  1. 启动
systemctl start krb5kdc
systemctl start kadmin

或:

[root@cn-bji-t-f205ab krb5kdc]# service krb5kdc start
Redirecting to /bin/systemctl start krb5kdc.service
[root@cn-bji-t-f205ab krb5kdc]# service kadmin start
Redirecting to /bin/systemctl start kadmin.service
[root@cn-bji-t-f205ab krb5kdc]# systemctl status krb5kdc.service
● krb5kdc.service - Kerberos 5 KDCLoaded: loaded (/usr/lib/systemd/system/krb5kdc.service; disabled; vendor preset: disabled)Active: active (running) since Wed 2019-01-09 17:35:52 CST; 35s agoProcess: 8268 ExecStart=/usr/sbin/krb5kdc -P /var/run/krb5kdc.pid $KRB5KDC_ARGS (code=exited, status=0/SUCCESS)Main PID: 8269 (krb5kdc)CGroup: /system.slice/krb5kdc.service└─8269 /usr/sbin/krb5kdc -P /var/run/krb5kdc.pidJan 09 17:35:52 cn-bji-t-f205ab.novalocal systemd[1]: Starting Kerberos 5 KDC...
Jan 09 17:35:52 cn-bji-t-f205ab.novalocal systemd[1]: Started Kerberos 5 KDC.

安装KDC SLAVER

前提:

  1. 主从服务器的/etc/hosts文件已经配置
  2. slave服务器的JCE已经安装

例:

主KDC hostname:namenode01

从KDC hostname: namenode02

  1. 修改/etc/krb5.conf
[realms]xxxxT.COM = {kdc = namemode01kdc = namenode02admin_server = namenode01}

kerberos认证时是按照/etc/krb5.conf中主机顺序访问kdc服务器,kdc认证只会读取本地数据库

  1. 在slave kdc 上安装kdc
 yum install krb5-server krb5-libs krb5-workstation openldap-clients
  1. 从master KDC服务器上拷贝一下文件到 slave KDC
/etc/krb5.conf
/var/kerberos/krb5kdc/kadm5.acl
/var/kerberos/krb5kdc/kdc.conf
## master key stash file
/var/kerberos/krb5kdc/.k5.xxxxT.COM
  1. 为主从KDC服务器创建host keytabs

在master上执行:

kadmin.local
addprinc -randkey host/namenode01
addprinc -randkey host/namenode02
ktadd host/namenode01
ktadd host/namenode02

会生成/etc/krb5.keytab文件,将此文件拷贝到slave服务器的/etc目录下

  1. 在slave服务器上创建kpropd.acl文件,内容如下
host/namenode01@xxxx.COM
host/namenode02@xxxx.COM
  1. 将kpropd作为独立守护程序启动

在slave上运行

kpropd
  1. 执行以下命令同步数据库
kdb5_util dump /usr/kerberos/krb5kdc/replica_datatranskprop -r xxxx.COM -f /var/kerberos/krb5kdc/replica_datatrans namenode02

同步成功后在namenode02的/var/kerberos/krb5kdc目录下会多出以下文件:

-rw------- 1 root root 16384 Feb 15 10:35 principal
-rw------- 1 root root  8192 Feb 15 10:35 principal.kadm5
-rw------- 1 root root     0 Feb 15 10:35 principal.kadm5.lock
-rw------- 1 root root     0 Feb 15 10:35 principal.ok

安装客户端:

yum install krb5-workstation krb5-libs krb5-auth-dialog

使用ambari

确保已经安装好了KDC并且在所有集群都安装了JCE。

  1. 打开并登陆ambari web。并在浏览器选择Admin > Kerberos。

  2. 点击 “Enable Kerberos”进入安装向导。

  3. 选择正在使用的KDC类型,并确认已满足先决条件。

  4. 提供有关KDC和管理员帐户的信息。

  5. 根据环境修改高级Kerberos设置。

    1. 手动管理Kerberos客户端krb5.conf(而不是Ambari
      管理krb5.conf),展开Advanced krb5-conf部分并取消选中
      “Manage Kerberos client krb5.conf”选项。必须在每台主机上配置krb5.conf。
      注意:
手动管理krb5.conf时,建议确保DNS不用于查找KDC和REALM条目。 依赖DNS可能会导致负面性能和功能影响。 要确保不使用DNS,请确保在配置的libdefaults部分中设置以下条目。[libdefaults]
dns_lookup_kdc = false
dns_lookup_realm = false
  1. 进行安装

Ambari将服务器上安装Kerberos客户端,并通过测试Ambari可以创建principal,生成keytab并分发该keytab来测试对KDC的访问。

  1. 自定义Hadoop使用的Kerberos标识,然后继续对集群进行kerberize。

重要:
Configure Identities步骤中,务必确认principal名称。尤其是Ambari Principals部分。默认情况下,会将集群名称附加到每个Principals。可以将其保留为默认值,或者通过从主体名称字符串中删除“ - $ {clustername}”来调整它们。 例如,如果集群名为HDP且realm是EXAMPLE.COM,则hdfs主体将创建为hdfs-HDP@EXAMPLE.COM。


8. 点击下一步,可以选择下载ambari自动创建的principals和keytabs。

  1. 点击下一步开始安装
  2. 等到principals已经创建并且keytabs已经初始化并分发之后。ambari更新集群配置,并且启动和测试集群的服务。

Kerberos安装以及使用ambari开启HDP集群Kerberos认证相关推荐

  1. [Flink课程]---- 9.1 使用Ambari 搭建Flink 集群

    转自: https://blog.csdn.net/high2011/article/details/90272331 lee / ambari-flink-service: https://gite ...

  2. 基于大数据平台的毕业设计01:基于Docker的HDP集群搭建

    前言 好多人问我,这种基于大数据平台的xxxx的毕业设计要怎么做.这个可以参考之前写得关于我大数据毕业设计的文章基于大数据平台的毕业设计.这篇文章是将对之前的毕设进行优化. 个人觉得可以分为两个部分. ...

  3. 开启Swarm集群以及可视化管理

    为什么80%的码农都做不了架构师?>>>    在搭建的两台coreos服务器上开启swarm集群 前置条件: docker均开启2375端口 同一个局域网内 主服务器上安装Port ...

  4. 配置两个Hadoop集群Kerberos认证跨域互信(两个集群互通)

    配置两个Hadoop集群Kerberos认证跨域互信 两个Hadoop集群开启Kerberos验证后,集群间不能够相互访问,需要实现Kerberos之间的互信,使用Hadoop集群A的客户端访问Had ...

  5. 搭建 K8S 环境:Centos7安装生产环境可用的K8S集群图文教程指南

    搭建 K8S 环境:Centos7安装生产环境可用的K8S集群图文教程指南 一. K8S 简介 二. K8S 学习的几大拦路虎 2.1 K8S 安装对硬件要求比较高 2.2. K8S 对使用者来说要求 ...

  6. 二进制安装多master节点的k8s集群

    二进制安装多master节点的k8s集群 k8s集群角色 IP 主机名 安装的组件 控制节点 192.168.1.180 master1 apiserver,controller-manager,sc ...

  7. 手动安装K8s第三节:etcd集群部署

    手动安装K8s第三节:etcd集群部署 准备安装包 https://github.com/coreos/etcd 版本:3.2.18 wget https://github.com/coreos/et ...

  8. hadoop安装部署(伪分布及集群)

    hadoop安装部署(伪分布及集群) @(HADOOP)[hadoop] hadoop安装部署伪分布及集群 第一部分伪分布式 一环境准备 二安装hdfs 三安装YARN 第二部分集群安装 一规划 一硬 ...

  9. Oracle11gR2 RAC+DataGuard安装实施维护2+1_数据库集群容灾视频教程

    Oracle11gR2 RAC+DataGuard安装实施维护2+1_数据库集群容灾视频教程 教程介绍: 本套课程分为基础与实战两部分,是高薪必学的Oracle数据库视频培训教程. 基础内容: Ora ...

最新文章

  1. PP模块: 最简单的混合生产方式
  2. jquery ui tabs详解(中文) 【转载】
  3. NGUI_2.6.3_系列教程一
  4. 【王道计组笔记】I/O输入输出系统基本概念
  5. gentry同态加密算法_IBM同态加密技术重大突破,加解密速度可提升75倍
  6. matlab求非圆齿轮的节曲线,基于MATLAB的非圆齿轮节曲线设计
  7. 20155303 2016-2017-2 《Java程序设计》第九周学习总结
  8. 跨平台局域网文件传输工具——Dukto R5
  9. Arduino笔记四电子指南针罗盘HMC5883L
  10. 把照片改成指定像素基于PS(证件照修改为制定像素大小)
  11. 《IT行业职位介绍-搞懂高级程序员、架构师、技术总监、CTO从薪资到技能的区别》
  12. 斗鱼直播第一美女大表姐yesyanbaby如今混吃等死!
  13. Linux DMA Engine framework(2)_功能介绍及解接口分析
  14. 图片公式提取至文档word
  15. Android接收读取短信内容
  16. HDU-4069(Squiggly Sudoku)(Dancing Links + dfs)
  17. 关于使用Pytorch时,训练集模型表现很好但测试集模型表现极差的原因
  18. CSS实战笔记(十二) 图片等比例缩放
  19. Unity3D WASD和方向键控制多个角色
  20. shell命令执行完的退出状态详解+if语句的定义方法

热门文章

  1. Goole Chrome 谷歌浏览器无法打开设置、闪退、崩溃
  2. maven错误:unknow文件夹--报错:Failure to find xxx:pom:unknown
  3. opengl加载和绘制STL模型+旋转 平移 缩放 光照
  4. 为你,千千万万遍——《追风筝的人》读书分享
  5. C语言初学者复刻经典扫雷小游戏(图形界面,非黑白窗口)(含源码)
  6. 公安视频监控系统建设存在问题及系统规划思路简析
  7. 我的FOXBASE旅程 (转)
  8. 我的世界Forge版开服教程
  9. Unity接入越南社交软件Zalo登录之获取用户信息
  10. 移动CRM风起云涌 千亿级市场显现