CDH5x开启Kerberosle

环境:

服务器:云服务器

环境版本: CDH:5.12

Cloudera Manager:5.12

lilnux: CentOS 7.8

JDK : 1.8.0_144

Yum源已经安装

CDH已经再Master安装: Mysql

要是没安装:

https://blog.csdn.net/LiHaoHang6/article/details/92711942

服务端的安装配置 

  1. 查看/etc/hosts  我的内网做映射了,要根据自己实际情况。

最好不要像我这样写,不对。。映射内网ip就好了

2.查看是否安装Kerberos

(1):rpm -qa | grep krb5

(2):卸载自带kerberos

特别注意: 千万不要急着卸载, 先观察自己到底存在哪些包, 上图是我已经安装好 kerberos了, 但是当我再第一次检查是否有kerbkeros的时候,自 带:krb5-libs-1.15.1-37.el7_6.x86_64。这个包千万不能删除!

不过你还是可以使用: yum -y remove krb5  这个命令,来删除自带的kerberos,这个包不会被删除掉,因为他附带这一些依赖

千万不要去网上看一些无脑文章,使用: rpm -e --nodeps krb5-libs.x86_64, 这个命令千千万万不能用,否则,yum不能用 ssh不能用。还要花很长时间来解决。所以这个包不用删除。

3.Server节点安装Kerberos

serveros节点安装相关软件

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

出现这个提示则安装成功

查看结果: rpm -qa | grep krb5

修改配置

需要配置的文件有两个为kdc.conf和krb5.conf , 配置只是需要Server服务节点配置,也就是我的master节点。查看krb5的配置文件路径,执行下面命令进行查看:

whereis krb5

1.Krb5文件安装配置。

编辑修改krb5.conf文件,执行命令进行修改 vim /etc/krb5.conf

[logging]default = FILE:/var/log/krb5libs.logkdc = FILE:/var/log/krb5kdc.logadmin_server = FILE:/var/log/kadmind.log[libdefaults]default_realm = HADOOP.COMdns_lookup_realm = falseticket_lifetime = 24hrenew_lifetime = 7dforwardable = truerdns = falseudp_preference_limit= 1pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt#default_realm = HADOOP.COM#default_ccache_name = KEYRING:persistent:%{uid}[realms]HADOOP.COM = {kdc = masteradmin_server = master}[domain_realm].hadoop.com = HADOOP.COM
hadoop.com = HADOOP.COM 

注意:[logging] [libdefaults][realms][domain_realm]的前面一定不能有空格

备注说明:

  • default_realm = HADOOP.COM 默认的realm,设置 Kerberos 应用程序的默认领域,必须跟要配置的realm的名称一致。
  • 如果您有多个领域,只需向 [realms] 节添加其他的语句。
  • ticket_lifetime : 表明凭证生效的时限,一般为24小时。
  • renew_lifetime : 表明凭证最长可以被延期的时限,一般为一个礼拜。当凭证过期之后,对安全认证的服务的后续访问则会失败。
  • clockskew :时钟偏差是不完全符合主机系统时钟的票据时戳的容差,超过此容差将不接受此票据。通常,将时钟扭斜设置为 300 秒(5 分钟)。这意味着从服务器的角度看,票证的时间戳与它的偏差可以是在前后 5 分钟内。
  • udp_preference_limit= 1:禁止使用 udp 可以防止一个 Hadoop 中的错误
  • [realms]:列举使用的 realm。

kdc:代表要kdc的位置。格式是 机器:端口  因为配置了hosts  可以使用Master

admin_server:代表admin的位置。格式是机器:端口  Master(全限定名)

  • [default_domain]:代表默认的域名
  • [appdefaults]:可以设定一些针对特定应用的配置,覆盖默认配置

 2.编辑修改kdc.conf,执行下面命令

修改vim /var/kerberos/krb5kdc/kdc.conf配置

[kdcdefaults]kdc_ports = 88kdc_tcp_ports = 88[realms]HADOOP.COM = {acl_file = /var/kerberos/krb5kdc/kadm5.acldict_file = /usr/share/dict/wordsadmin_keytab = /var/kerberos/krb5kdc/kadm5.keytabsupported_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}

注意:[kdcdefaults] 和 [realms] 前面一定不能有空格

备注说明:

  1. HADOOP.COM:是设定的realms。名字随意。Kerberos可以支持多个realms,大小写敏感,一般为了识别使用全部大写。这个realms跟机器的host没有大关系。
  2. master_key_type和 supported_enctypes 默认使用 aes256-cts。JAVA 使用 aes256-cts 验证方式需要安装 JCE 包,见下面的说明。为了简便,你可以不使用 aes256-cts 算法,这样就不需要安装 JCE ,我们这里没有使用。
  3. acl_file:标注了 admin 的主体权限,使用默认的文件。文件格式是:Kerberos_principal permissions [target_principal] [restrictions]
  4. supported_enctypes:支持的校验方式。
  5. admin_keytab:KDC 进行校验的 keytab。

3.上传jce的jar包, 因为我们选择了aes那种的加密方式,所以需要jce的jar包

地址: 链接:https://pan.baidu.com/s/1GV2pO5aHT7Xe37ieWXaK1g

提取码:jsxk

然后上传至 ${JAVA_HOME}/jre/lib/security/ 下覆盖掉原来的  所有机器都配置

4.修改kadm5.cal文件 给管理员实例的全部主体进行授权

备注:

  1. *代表全部的主体
  2. /admin 代表admin实例
  3. @HADOOP.COM代表领域
  4. 最后个*代表全部权限。

这个授权的意思:就是授予admin实例的全部主体对应HADOOP.COM领域的全部权限。

也就是创建Kerberos主体的时候如果实例为admin,就具有HADOOP.COM领域的全部权限,比如创建如下的主体user1/admin就拥有全部的HADOOP.COM领域的权限。

请特别留意:

  1. 后续都是为了简便创建principal时候都是以”主体”来称谓,因为我们只配置一个领域那么默认领域不写则为HADOOP.COM。如果存在多个领域必须添加@HADOOP.COM。
  2. 如果创建模式为:addprinc user1 那么就没有指定实例,默认领域为HADOOP.COM,格式为user1@HADOOP.COM
  3. 如果创建模式为addprinc user1/user1 那么主体为user1实例为user1,领域为默认领域HADOOP.COM。格式为user1/user1@HADOOP.COM

同步至客户端

scp -r /var/kerberos/  slave1的IP :/var/

scp -r /var/kerberos/  slave2的IP :/var/

scp -r /erc/krb5.conf  slave1的IP :/etc/krb5.conf

scp -r /erc/krb5.conf  slave2的IP :/etc/krb5.conf

已经免密情况下

创建Kerberos数据库

在Kerberos的Server服务器节点上执行生成Kerberos数据库,也就是master节点

执行过程输入两次Kerberos的密码,注意要记住

输入命令:

kdb5_util create -s -r HADOOP.COM

Loading random data

Initializing database '/var/kerberos/krb5kdc/principal' for realm 'NAMENODE.COM',

master key name 'K/M@HADOOP.COM'

You will be prompted for the database Master Password.

It is important that you NOT FORGET this password.

Enter KDC database master key: 备注请输入密码:123456

Re-enter KDC database master key to verify: 备注请输入密码:123456

  确定Kerberos数据库是否创建完成

可以通过查看/var/kerberos/krb5kdc是否生成principal文件,执行下面命令

  (可选)重新创建数据库 删除当下的principal文件

rm -rf /var/kerberos/krb5kdc/*principal*

查看是否删除完成,执行下面命令

再次输入命令:

kdb5_util create -s -r HADOOP.COM

Loading random data

Initializing database '/var/kerberos/krb5kdc/principal' for realm 'NAMENODE.COM',

master key name 'K/M@HADOOP.COM'

You will be prompted for the database Master Password.

It is important that you NOT FORGET this password.

Enter KDC database master key: 备注请输入密码:123456

Re-enter KDC database master key to verify: 备注请输入密码:123456

可以通过查看/var/kerberos/krb5kdc是否生成principal文件,执行下面命令

可能遇到问题:创建Kerberos数据库过程可能会在loading random data中等待很长时间

  1. 原因:因为/dev/random的随机数据产生的很少,可以适当的让网卡传输数据,这样有助于产生随机数据。
  2. 解决办法:可以重新开启一个窗口执行cat /dev/sda > /dev/urandom命令,加快消耗CPU,增加随机数采集。

创建Kerberos管理员主体/实例并授权

输入:  kadmin.local -q "addprinc admin/admin"

Authenticating as principal root/admin@HADOOP.COM with password.

WARNING: no policy specified for admin/admin@HADOOP.COM; defaulting to no policy

Enter password for principal "admin/admin@HADOOP.COM": 备注:输入密码123456

Re-enter password for principal "admin/admin@HADOOP.COM": 备注:输入密码123456

Principal "admin/admin@NAMENODE.COM" created

启动Kerberos并设置开机启动 Centos7操作方法

Server节点启动Kerberos和kadmin服务

  • 启动krb5kdc

systemctl start krb5kdc

  • 启动 kadmin

systemctl start kadmin

  • 加入开机启动

systemctl enable krb5kdc

systemctl enable kadmin

  • 查看状态

service krb5kdc status

service kadmin status

检查启动情况

查看krb5kdc启动日志: cat /var/log/krb5kdc.log

正常启动。

查看kadmin启动日志: cat /var/log/kadmind.log

正常启动

Kinit管理员检查

  • 通过kinit进行管理员主体检查,执行下面命令,并输入创建管理员主体时的密码

Kinit admin/admin

  • 通过klist查看Kerberos管理员主体登录情况,执行下面命令查看

klist

出现上面截图证明kinit管理员主体检查已经正常。

客户端检查

通过其他客户端节点比如slave1节点检查Kerberos服务是否正常,通过运行下面命令

再客户端输入:  kadmin admin/admin

备注:到处Kerberos的整个安装配置流程已经完成~

下面全部默认一键继续即可

出现这个安装成功

OK

CD5X开启Kerberos认证相关推荐

  1. hadoop2.7.2开启kerberos认证

    环境介绍: 一共三台机器: hadoop11: 192.168.230.11 namenode .kerberos client hadoop12: 192.168.230.12 datanode . ...

  2. Spark操作Hive(开启Kerberos认证)代码提交华为云DAYU的MRS Spark组件--方法流程及注意事项

    背景: 最近在测试华为云DAYU MRS Spark操作Hive的流程,因kerberos认证的问题一直测试失败. 代码示例: val sparkSession = SparkSession.buil ...

  3. 使用Spark/Java读取已开启Kerberos认证的HBase

    1.赋予drguo用户相应的权限 2.KDC中创建drguo用户并导出相应的keytab文件 [root@bigdata28 ~]# kadmin.local  Authenticating as p ...

  4. Zookeeper集群安装(开启kerberos)

    安装规划 zookeeper集群模式,安装到如下三台机器 10.43.159.237 zdh-237 10.43.159.238 zdh-238 10.43.159.239 zdh-239 Kerbe ...

  5. Zookeeper单机安装(开启kerberos)

    安装规划 zookeeper安装到zdh41上面,单机模式 10.43.159.41 zdh41 ZDH.COM 安装用户 zookeeper/zdh1234 useradd -g hadoop -s ...

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

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

  7. Java API连接Kerberos认证的HBASE

    网上关于 Java 代码连接启用了Kerberos认证的HBASE资料很多,但是总感觉不够准确,总是出现各种问题.经过整合网上资料和亲自试验,得出连接成功的最小配置项如下: java.security ...

  8. Kylin开启Kerberos安全认证

    Kylin开启Kerberos安全认证, 由于Kylin是依赖Hbase启动的, Kylin启动脚本kylin.sh中就是调用的Hbase的启动脚本, 所以当Hbase开启了Keberos之后就等于K ...

  9. 【安全】CDH集群开启Kerberos安全认证

    文章目录 1.安装kerberos 2.CDH集群开启Kerberos安全认证 1.安装kerberos 参考:https://blog.csdn.net/qq_21383435/article/de ...

最新文章

  1. 计算Python的代码块或程序的运行时间
  2. [转载]对复旦食堂的印象
  3. 使用上下文属性将C ++对象嵌入QML
  4. WinCE切换GPRS
  5. 获取php服务器ip地址,PHP获取客户端和服务器IP地址
  6. Anaconda下载源设置及还原默认
  7. Java责任链模式及异步责任链
  8. Java实现 pdf 转 图片
  9. 第一章 Lua - AIR202 控制LED小灯
  10. matlab 求特征值的命令,matlab中求解特征值方程函数eig
  11. Excel导入导出功能
  12. Ubuntu12.10 使用DNW传数据 进行ARM开发板烧写
  13. Redis伪集群搭建
  14. 想知道未来孩子长相?Python人脸融合告诉你
  15. NaVicat Premium 字段设计怎么自动生成表格
  16. 《中国通史》纪录片100集笔记(持更)
  17. 熊猫的python小课_朋友圈里那个可爱的小熊猫Python编程的学习笔记,学编程,不难!...
  18. 流水的新技术,铁打的Linux
  19. resources Builders 校验
  20. Javaweb人才招聘系统

热门文章

  1. 0基础学习,软件测试到月薪20k(心得分享)
  2. dex2jar源码解析----dex转smail
  3. 素数打表(4种方法)
  4. 悲惨的卸载学校官网上VC6的故事
  5. 为什么Firefox在内部架构中使用“ chrome://”协议?
  6. 微信小程序:历史搜索及根据关键词列表查询
  7. 动画的帧频设定和人眼生理特关系中的简单数学
  8. Emotional Chatting Machine: Emotional Conversation Generation with Internal and External Memory翻译+笔记
  9. 5G PDSCH物理层过程
  10. Simulink建模:位运算