大数据安全之 authentication - Kerberos 的安装和配置

软件老王

共 2826字,需浏览 6分钟

 · 2021-02-18

明哥前段时间跟大家分享了下 《大数据安全之hdfs与hive的Authentication与Authorization》,其中提到大数据生态圈的各个组件,在authenticaton身份认证层面普遍采用的是kerberos方案。


有小伙伴进一步问到,如何在大数据集群中安装配置启用kerberos呢?这个问题中配置启用的具体方法取决于具体使用的大数据平台,需要case by case,比如是自建集成的apache版的,还是cloudera公司的cdh,hdp,抑或 cdp呢?或者星环的tdh, 华为的FusionInsight?笔者在这里先不聊配置启用这块(有机会以后会以cdh或hdp为例写篇博文),单纯聊聊底层安装kerberos这块。


首先看看kerberos的架构:

kerberos是client-server架构,客户端部分提供的是kinit, klist, kdestroy, kpasswd等常见客户端命令;服务端部分主要是两个服务进程 krb5kdc 和 kadmin, 其中前者是Kerberos 5 key distribution center,即 KDC,后者是 "Kerberos 5 Password-changing and Administration";服务端底层还有个数据库Kerberos KDC database,用来存储principal等信息 (kerberos自己实现的数据库,没有使用 mysql, postgresql等);服务端的 kdc 如果有高可用需求,也可以配置两个kdc, 互为主备 (经典主从架构,主提供对外写服务,从只提供读服务,主从之间周期性地同步数据,即:The master KDC contains the writable copy of the realm database, which it replicates to the slave KDCs at regular intervals. All database changes (such as password changes) are made on the master KDC. Slave KDCs provide Kerberos ticket-granting services, but not database administration, when the master KDC is unavailable.)


接下来看看 linux中如何安装kerberos:

常见的linux发行版中都自带了 kerberos 的安装包,通过包管理器直接安装即可,此过程中不需要连接外网。(当然你也可以下载MIT kerberos 的源码进行编译和安装,相对复杂些,这里不赘述源码安装的细节)。比如 centos7 中就自带了kerberos相关包,krb5-server, krb5-workstation等,如下图所示, 直接通过 yum 安装即可。

4e8bbcf5f342f5e96d3e431a438f2cf1.webp


接下来我们进行kerberos的安装和配置,先简述下步骤:

1. KDC服务端服务器上安装配置:

  1. 安装KDC服务:

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

  2. 修改/etc/krb5.conf配置:

    vim /etc/krb5.conf

  3. 修改/var/kerberos/krb5kdc/kadm5.acl配置:

    vim /var/kerberos/krb5kdc/kadm5.acl

  4. 修改/var/kerberos/krb5kdc/kdc.conf配置:

    vim /var/kerberos/krb5kdc/kdc.conf

  5. 创建Kerberos数据库:

    kdb5_util create –r CDH.COM -s

  6. 创建Kerberos的管理账号:

    kadmin.local登录后:

    addprinc admin/admin@CDH.COM

  7. 将Kerberos服务添加到自启动服务,并启动krb5kdc和kadmin服务:

    systemctl enable/start krb5kdc/kadmin

  8. 测试Kerberos的管理员账号: kinit admin/admin@CDH.COM


2. KDC客户端所有节点上安装配置:

  1. 安装客户端:

    yum -y install krb5-libs krb5-workstation

  2. 将KDC Server上的krb5.conf文件拷贝到所有Kerberos客户端:

    scp kdc-server:/etc/krb5.conf /etc/


3. KDC服务端添加用户:kadmin.local登录后:

  1. addprinc cloudera-scm/admin@CDH.COM

  2. addprinc hs_cic@CDH.COM


4. KDC客户端测试用户:

  1. kinit hs_cic

  2. kinit cloudera-scm


笔者具体实施安装配置时的截图:

KDC服务端安装命令截图:

4aa73f4db850f8f27e1a7cb7b317c475.webp

配置文件 /etc/krb5.conf内容,注意红色箭头部分:

28794788de535a9cc777673fcd6b32c5.webp

配置文件 /var/kerberos/krb5kdc/kdc.conf内容,注意红色箭头部分:

7bb471ad8be554332bc909af17533d8c.webp

配置文件/var/kerberos/krb5kdc/kadm5.acl内容,注意红色箭头部分:

26cfc84db068c38519e6fa02e1ee7b4e.webp

创建创建Kerberos数据库,注意红色箭头部分:

0e54a7ac6ac489be99e33d3f976624a7.webp

创建Kerberos的管理账号,注意红色箭头部分

e9b00c1e8119316e195b848506f494fc.webp

将Kerberos服务添加到自启动服务,并启动krb5kdc和kadmin服务:

3c0991080e9c5887d2591ac8dc62a67b.webp

测试Kerberos的管理员账号: kinit admin/admin@CDH.COM:

bcdbeb07e2343c5cb4d32770f26d3592.webp


KDC客户端安装:yum -y install krb5-libs krb5-workstation,截图略;

将KDC Server上的krb5.conf文件拷贝到所有Kerberos客户端:scp kdc-server:/etc/krb5.conf /etc/,截图略;


KDC服务端添加用户:kadmin.local登录后 addprinc 添加用户,截图:

5f3feccd1e5c7f0eef28bbf9427febe8.webp

KDC客户端测试用户:kinit hs_cic, kinit cloudera-scm/admin,截图:

efd2bdfc86721980e2d643cd2d2e516d.webp

2be48ecff70ef31b4f53aa9f4c32b29c.webp


Kerberos配置文件默认目录:

/etc/krb5.conf

/var/kerberos/krb5kdc/kdc.conf

/var/kerberos/krb5kdc/kadm5.acl


参考连接:

http://web.mit.edu/kerberos/krb5-devel/doc/admin/install_kdc.html



更多信息请关注公众号:「软件老王」,关注不迷路,软件老王和他的IT朋友们,分享一些他们的技术见解和生活故事。


浏览 60
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报