CD5X开启Kerberos认证

                            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.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = HADOOP.COM
 dns_lookup_realm = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
 udp_preference_limit= 1
 pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt
 #default_realm = HADOOP.COM
 #default_ccache_name = KEYRING:persistent:%{uid}

[realms]
 HADOOP.COM = {
  kdc = master
  admin_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 = 88
 kdc_tcp_ports = 88

[realms]
 HADOOP.COM = {
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_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
 }

注意:[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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李指导、

您的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值