CDH集成的kerberos迁移实战

Posted 涤生大数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CDH集成的kerberos迁移实战相关的知识,希望对你有一定的参考价值。

一、操作环境

主机系统版本:Centos7.9

CDH版本:cdh6.1.0

Kerberos版本:

二、背景

集群基于CM管理的60+台节点的CDH集群启用kerberos做安全管理,KDC服务单节点部署,现KDC服务所在节点出现故障,KDC服务不能正常工作,导致集群kerbers认证出现异常。

三、问题现象

四、处理方式

在新的主机上部署kerberos服务,将异常服务节点数据导入到新服务提供服务。

五、迁移过程

第一步:准备运行良好的主机,安装kerberos服务

yum install -y krb5-server krb5-workstation krb5-libs krb5-devel

提示:新节点的系统版本最好和老节点保持一致,否则在后面导入KDC数据库会有异常报错问题

第二步:配新服务节点的kerberos服务端配置

1 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]

  dns_lookup_realm = false

  dns_lookup_kdc = false

  ticket_lifetime = 100d

  renew_lifetime = 120d

  forwardable = true

  rdns = false

  default_realm = BUSSINESS.COM

[realms]

    BUSSINESS.COM = 

      kdc = 10-90-104-54-jhdxyjd.mob.local

      admin_server = 10-90-104-54-jhdxyjd.ds.local

      default_domain = BUSSINESS.COM

     

[domain_realm]

    .10-90-104-54-jhdxyjd.ds.local = BUSSINESS.COM

    10-90-104-54-jhdxyjd.ds.local = BUSSINESS.COM

2 Vim /var/kerberos/krb5kdc/kadm5.acl

*/admin@BUSSINESS.COM     *

3 Vim /var/kerberos/krb5kdc/kdc.conf

[kdcdefaults]

 kdc_ports = 88

 kdc_tcp_ports = 88

 

[realms]

 BUSSINESS.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

  max_life = 366d

  max_renewable_life = 366d

第三步:建KDC服务数据库

kdb5_util create –r BUSSINESS.COM -s

说明:导入老服务的数据到新服务中,需要先创建同名的数据库,否则启动服务会报错。

第四步:启动krb5kdc和kadmin服务

systemctl start krb5kdc

systemctl start kadmin

第五步:复制老节点数据到新节点

说明;如果线上使用的kerberos服务也是单节点,一定要做数据的备份,备份方式参考下面指令;我这里是提前将数据备份到另一个节点,所以本次操作可以直接从其他节点接备份的数据scp到新的kerberos服务节点即可。

kdb5_util dump -b7  -verbose  ip-74-115.kdc.dump

指令简介:

dump [ -b7 | -ov | -r13 ] [ -verbose ] [ -mkey_convert ] [ -new_mkey_file mkey_file ] [ -rev ] [ -recurse ] [文件名[ principals ...]]

将当前的 Kerberos 和 KADM5 数据库转储到 ASCII 文件中。默认情况下,数据库以当前格式“kdb5_util load_dump version 7”转储。如果未指定文件名,或者是字符串“-”,则转储将发送到标准输出。选项:

更多详情可了解:

https://web.mit.edu/kerberos/krb5-1.12/doc/admin/admin_commands/kdb5_util.html

第六步:导入数据到新的服务

将备份数据导入到新服务节点,就可以利用下面的指令直接导入数据。下面指令的具体含义也可参看第五部中的链接。

kdb5_util load -b7 ip-74-115.kdc.dump

第七步:验证账号数据有没有正常导入

kadmin.local

listprincs

出现如下截图,说明导入成功。

第八步:更新客户端配置文件(很核心)

将新服务节点的 /etc/krb5.conf配置更新到集群中其他所有客户端节点。

Scp  /etc/krb5.conf  10-90-104-54-jhdxyjd.ds.local:/etc/krb5.conf

至此,kerberos的服务已经正常迁移完成,因为是集成cdh使用,所有后续还需要在cm页面更新相关属性,具体操作步骤如下:

第九步:更新CM关于kerberos的配置

1.使用管理员账号登录Cloudera Manager管理平台,点击“管理”下的“安全”,进入“Kerberos凭据”界面

2.点击“配置”,进入Kerberos配置界面,在配置界面搜索“Server”,将KDC和KDC Admin Server的主机修改为我们新部署的Kerberos节点

 然后保存更新的配置,重启集群的Cloudera Management Service,其他服务不需要重启。

第十步:验证集群kerberos功能是否正常

1.新增测试用户ds_test02

kadmin.local -q "addprinc -pw 123456 ds_test02"

2.为测试用户生成密钥文件

kadmin.local -q "xst -k /tmp/ds_test.keytab <a href="mailto:ds_test@DS.COM\\" "="">ds_test@DS.COM"

集群的任意客户端节点新增加此用户,并使用kinit认证此用户,然后做基本的访问验证。

Useradd ds_test02 #添加用户

Kinit -kt ds_test.keytab ds_test #认证用户

Klist #查验

简单测试访问集群:

以上是关于CDH集成的kerberos迁移实战的主要内容,如果未能解决你的问题,请参考以下文章

CDH启用kerberos 高可用运维实战

CDH启用kerberos 高可用运维实战

CDH6.3.2 启用Kerberos 集成使用phoenix

CDH6.3.2 启用Kerberos 集成使用phoenix

centos 7 安装LDAP 并集成kerberos 和CDH

yum安装kerberos LDAP,集成到CDH