首页技术文章正文

如何搭建Kerberos环境?

更新时间:2021-09-03 来源:黑马程序员 浏览量:

IT培训班

按照环境准备中的设定,cdh0 cdh1 cdh2 均作为Kerberos 的客户端, cdh3作为Kerberos的服务端

搭建Kerberos Server

以下操作运行在cdh3

1. 使用 yum 安装Kerberos Server的套件

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

2. 配置 /etc/krb5.conf

vim /etc/krb5.conf

填入以下内容:

export HADOOP_HOME=/bigdata/hadoop-2.6.0-cdh5.14.4
export MAVEN_HOME=/bigdata/apache-maven-3.0.5
export HIVE_HOME=/bigdata/hive-1.1.0-cdh5.14.4
export JAVA_HOME=/usr/local/jdk1.8.0_221
export
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$MAVEN_HOME/bin:$HIVE_HOME/bin:
$PATH
# export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
# export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/bigdata/hadoop-2.6.0-cdh5.14.4/lib/native
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = ITCAST.CN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
ITCAST.CN = {
kdc = cdh3.itcast.cn
admin_server = cdh3.itcast.cn
}
[domain_realm]

名词讲解:

realm 域:表示一个公司或者一个组织。逻辑上的授权认证范围

比如,某个认证账户是属于某个域下的,跨域账户不通用

域和FQDN的配置很像,使用大写,本次演示使用ITCAST.CN 来标记域

其中:

  • logging 块配置日志相关

  • libdefaults块配置默认的设置,包括ticket的生存周期等

  • realms 是域的配置,可以配置多个realm,本次演示只配置一个 即是 ITCAST.CN

  • domain_realm 是 Kerberos内的域 和 主机名的域的一个对应关系

         .itcast.cn 类似 *.itcast.cn 表示如cdh0.itcast.cn cdh1.itcast.cn 等均是ITCAST.CN 这个realm

         .itcast.cn 表示 itcast.cn 这个主机名也是 ITCAST.CN 这个realm的一部分


3. 配置 /var/kerberos/krb5kdc/kdc.conf

填入:

export HADOOP_HOME=/bigdata/hadoop-2.6.0-cdh5.14.4
export MAVEN_HOME=/bigdata/apache-maven-3.0.5
export HIVE_HOME=/bigdata/hive-1.1.0-cdh5.14.4
export JAVA_HOME=/usr/local/jdk1.8.0_221
export
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$MAVEN_HOME/bin:$HIVE_HOME/bin:
$PATH
# export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
# export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/bigdata/hadoop-2.6.0-cdh5.14.4/lib/native
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = ITCAST.CN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
ITCAST.CN = {
kdc = cdh3.itcast.cn
admin_server = cdh3.itcast.cn
}
[domain_realm]


名词解释:

acl_file : Kerberos acl 的一些配置对应的文件

kerberos : admin账户的 keytab 本地路径

keytab : 登录凭证,有了这个相当于直接有了 ticket , 可以免密直接登录某个账户,所以这个文件很重要

在一些企业的配置中,对于用户的配置,就是直接发放给用户对应的 keytab 文件,用户有了这个文件就能访问对应的资源

就类似于 ssh 中的 登录私钥一样 有了私钥就能直接登录机器

这个文件就是一把钥匙,能开门的

这个配置文件内:设置了对于server的一些重要配置

比如:

kdc 的端口

以及ITCAST.CN这个域中的 acl file 文件路径(下一步设置它)

admin账户的 keytab

支持的加密方法等

4. 配置 /var/kerberos/krb5kdc/kadm5.acl

填入 */admin@ITCAST.CN        *

其中 */admin 是Kerberos中的账户形式

如账户 rm/cdh0.itcast.cn@ITCAST.CN 表示 在 cdh0机器上的 resourcemanager账户,这个账户属于ITCAST.CN这个域

最后的 * 表示 符合 */admin的账户拥有所有权限


这一步也就是配置了admin的规则 如 admin/ admin@ITCAST.CN 就拥有ITCAST.CN 域内的全部权限

5. 初始化Kerberos的数据库

输入: kdb5_util create -s -r ITCAST.CN

其中 ITCAST.CN 是对应的域,如果你的不同请修改

然后命令要求设置数据库master的密码,要求输入两次,输入 krb5kdc 即可

这样得到 数据库master账户: K/M@ITCAST.CN , 密码: krb5kdc

6. 创建ITCAST.CN 域内的管理员

执行:kadmin.local 进入 kerberos 的 admin 命令行界面

# 输入如下内容,添加一个用户
addprinc root/admin@ITCAST.CN
# 要求输入密码,输入root作为密码(可自行设置)
# 上面的账户就作为ITCAST.CN的管理员账户存在 (满足 */admin@ITCAST.CN 的规则 拥有全部权限)
# 再创建一个 测试的管理员用户
addprinc krbtest/admin@ITCAST.CN # 同样满足 */admin@ITCAST.CN 密码设置为krbtest
# 查看当前拥有的所有用户
listprincs

名词解释: principal

可以当作是用户的意思 一个principal由3个部分组成,如下:

nn/cdh0.itcast.cn@ITCAST.CN

也就是 account/instance@realm

其中account 表示账户名 或者服务类型

instance表示实例,一般为主机名表示 属于这个主机名下的某个账户

realm 就是域 如 ITCAST.CN

nn/cdh0.itcast.cn@ITCAST.CN 就表示

nn 这个账户 只能在cdh0机器登录 ITCAST.CN 这个域

7. 重启Kerberos server的组件并设置开机自启

service krb5kdc restart

service kadmin restart
chkconfig krb5kdc on
chkconfig kadmin on








猜你喜欢:

JDK环境变量配置win10视频教程【黑马程序员】

怎样安装Eclipse?怎样启动Eclipse开发环境?

在Postman中如何设置全局变量和环境变量?

黑马程序员python大数据培训

分享到:
在线咨询 我要报名
和我们在线交谈!