• 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 ds_test@DS.COM"

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

    Useradd ds_test02 #添加用户

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

    Klist #查验

    简单测试访问集群:

  • 相关阅读:
    Cookie使用详解
    7. 反向代理-快速入门
    数据结构 — 双向链表
    RabbitMQ 学习(五)-- 死信队列
    22.10.30补卡 22CCPC桂林站M题
    如何搭建远程控制家中设备的Home Assistant智能家居系统【内网穿透】
    linux nas
    Spring @Valid @Validated实现验证的方法
    如何平衡新老策略的好与坏,一道常见风控送命题解答
    基于SSM的毕业设计管理系统【数据库设计、源码、开题报告】
  • 原文地址:https://blog.csdn.net/qq_26442553/article/details/127993082