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迁移实战的主要内容,如果未能解决你的问题,请参考以下文章
CDH6.3.2 启用Kerberos 集成使用phoenix
CDH6.3.2 启用Kerberos 集成使用phoenix