这是我参与11月更文挑战的第5天,活动详情查看:2021最后一次更文挑战
前言
最近一段时间和数仓同学接触的比较多,算是一个知识点的扫盲把,kerberos认证是大数据权限认证的一种解决方案。
那么什么是kerberos呢?
Kerberos简介
Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证,该词为麻省理工学院为这个协议开发的一套计算机软件,软件设计采用CS架构,并且能够进行互相认证,客户端和服务器都可对对方进行身份验证,可以用于防止窃听,防止重放攻击,保护数据完整性等场合,是一种应用对称密钥体进行密钥管理的系统
Kerberos基本概念
1.KDC : 密钥分发中心,负责管理发放票据,记录授权
2.Realm: Kerberos管理领域的标识
3.principal:当每添加一个用户或服务的时候都需要向kdc添加一条principal,principal的形式为:主名称/实例名称@领域名
4.主名称: 主名称可以是用户名或服务名,表示是用于提供各种网络服务(如hdfs,yarn,hive)的主体
Kerberos 认证原理
基于kerberos安全认证部署案例
1. Kerberos部署
1.1 安装
kerberos主节点安装服务
yum install krb5-server -y
1.2 配置文件
kdc服务器三个配置文件
1 | bash复制代码# 集群上所有节点都有这个文件而且内容同步 |
- 修改/etc/krb5.conf
- 修改/var/kerberos/krb5kdc/kdc.conf
- 创建/var/kerberos/krb5kdc/kadm5.acl
1.4 创建Kerberos数据库
1 | bash复制代码# 保存路径为/var/kerberos/krb5kdc 如果需要重建数据库,将该目录下的principal相关的文件删除即可 |
-r指定配置的realm领域名
出现 Loading random data 的时候另开个终端执行点消耗CPU的命令如 cat /dev/vda > /dev/urandom 可以加快随机数采集
该命令会在 /var/kerberos/krb5kdc/ 目录下创建 principal 数据库
1.5 启动服务
1 | bash复制代码chkconfig --level 35 krb5kdc on |
1.6 创建Kerberos管理员
1 | bash复制代码# 需要设置两次密码,当前设置为root |
principal的名字的第二部分是admin,那么该principal就拥有administrative privileges
这个账号将会被CDH用来生成其他用户/服务的principal
1.7 测试kerberos
1 | bash复制代码# 列出Kerberos中的所有认证用户,即principals |
本文转载自: 掘金