KerberosServer 配置|学习笔记

简介: 快速学习 KerberosServer 配置

开发者学堂课程【快速掌握 Hadoop 集成 Kerberos 安全技术KerberosServer 配置】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/708/detail/12558


KerberosServer 配置


内容介绍:

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

二.配置/etc/krb5.conf

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

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

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

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

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

前言:按照环境准备中的设定,cdh0、cdh1、cdh2 是 hadoop 集群机器,均作为 Kerbers 的客户端,cdh3 作为 Kerberos 的服务端


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

搭建 KerberosServer,以下操作运行在 cdh3

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

复制粘贴进入到 cdh3 机器下执行

[root@cdh3~]#yum install -y krb5-libs krb5-server krb5-workstati

on


二.配置/etc/krb5.conf

vim /etc/krb5.conf

[root@cdh3~]#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]

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]

.itcast.cn=ITCAST.CN

itcast.cn=ITCAST.CN

名词讲解:

realm 域:表示一个公司或者一个组织。逻辑上的授权认证范围。比如定义域 ITCAST.CN 表示公司授权认证的范围,域创建用户是属于域里的,逻辑上进行隔离。realms 带 s 说明是复数可配置多个,目前集群里没有一个大环境有很多组织,只配置一个 ITCAST.CN 域,kdc、admin_server 是 cdh3 机器。[domain_realm] 表示域名转换,.itcast.cn 表示 *.itcast.cn>ITCAST.CN,xxx.itcast.cn 主机名机器都归属于 ITCAST.CN 域。itcast.cn 表示主机名 itcast.cn 属于 ITCAST

.CN 域,ITCAST.CN 域敏感只能大写。

日志相关配置:

[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

默认域 ITCAST.CN,票有效期24小时


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

[root@cdh3~]#vim/var/kerberos/krb5kdc/kdc.conf

内容全部删除,准备好的内容复制保存

填入:

kdc_ports=88

kdc_tcp_ports=88

[realms]

ITCAST.CN={

#master_key_type=aes256-ctsacl_file=/var/kerberos/krb5kdc/kadm5.acl dict_file=/usr/share/dict/words

admin_kevtab=/var/kerberos/krb5kdc/kadm5kevtab

supported_enctypes=aes256-ctsnormal aes128-cts normal des3-

hmac-sha1normal arcfour-hmac:normal

des-hmac-sha1:normal des-cbc-md5:normaldes-cbc-crc:normal

}

名词解释:

端口配置

kdc_ports=88

kdc_tcp_ports=88

ITCAST.CN 域表示

#master_key_type=aes256-cts

acl_file=/var/kerberos/krb5kdc/kadm5.acl dict_file=/usr/share/dict/words

admin_kevtab=/var/kerberos/krb5kdc/kadm5.keytab

supported_enctypes=aes256-ctsnormal aes128-cts normal des3-

hmac-sha1normal arcfour-hmac:normal

des-hmac-sha1:normal des-cbc-md5:normaldes-cbc-crc:normal

}

都属于 ITCAST.CN 域的配置。

acl_file=/var/kerberos/krb5kdc/kadm5.acl 权限管控位置,配置文件。

admin_kevtab=/var/kerberos/krb5kdc/kadm5.keytab,keytab 表明真实存在的 ticket,拿到 ticket 不需要找 AS 授权认证,TDS 拿到真实的 ticket。keytab 相当于两步已经完成,形成真实的文件,只要拿到 keytab 文件相当于拿到通行证。admin keytab ,admin 有通行证文件存放在本地不需要 AS、TDS 通讯,拿到文件可以直接拿到权限。

支持加密类型,aes256、aes128等等加密。


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

[root@cdh3~]#vim/var/kerberos/krb5kdc/kadm5.acl

默认给出*/admin@EXAMPLE.COM,改为*/admin@ITCAST.C

N 表示只要 Kerberos 账户名匹配此格式拥有全部权限。

Kerberos 账户分为三部分 account/instance@Relam

*/admin@ITCAST.CN 表示前面任意,instance 一般用主机名代替,admin 不属于某个机器,是更高层次全局的 admin。

满足*/admin@ITCAST.CN 规则就拥有全部权限,admin/admin@ITC

AST.CN 拥有最高权限。

检查配置文件

[root@cdh3~]#vim/ect/krb5.conf

[realms]

ITCAST.CN ={

kdc=cdh3.itcast.cn

admin_server =cdh3.itcast.cn

}

[domain_realm]

.itcast.cn=ITCAST.CN

itcast.cn=ITCAST.CN

配置 ITCAST.CN 域,kdc、admin_server 哪些机器,.itcast.cn=ITCAST

.CN itcast.cn=ITCAST.CN 域的转换规则。

[root@cdh3~]#vim/var/kerberos/krb5kdc/kadm5.conf

[realms]

ITCAST.CN={

#master kex type =aes256-cts

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:norrmal des3

-hmac-sha1:normal arcfour-hmac:normal des

hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal

ITCAST.CN 域配置 acl file 文件哪个,admin_keytab 免密文件存在哪,supported_enctypes 支持的加密类型。

[root@cdh3~]#vim/var/kerberos/krb5kdc/kadm5.acl*/admin@ITCAST.CN

只要用户 Kerberos 账户满足 */admin@ITCAST.CN 就拥有全部权限。


五.初始化 Kerberos 的数据库

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

复制粘贴到服务器

[root@cdh3~]#kdb5_util create -s-r ITCAST.CN

使用 kdb5_util 工具,给定 create 参数,-s-r 指定域,表示创建域下数据库,回车。

输入 KDC 数据库的 master key,相当于密码,创建 KDC 数据库,提示 master key 名字是 K/M@ITCAST.CN,指定密码 krb5kdc。

[root@cdh3 ~]# kdb5 util create -rITCAST.CN

Loading random data

Initializing database'/var/kerberos/krb5kdc/principal’for realm'ITC

AST.CN'

master key name'K/M@ITCAST.CN'

You will be prompted for the database Master Password. It is important that you NOT FORGET this password.

Enter KDC database master key:

Re-enter KDC database master key to verify:

kdb5 util:File exists while creating database'/var/kerberos/krb5K

dc/principal

提示创建好

[root@cdh3 ~]# cd/var/kerberos/krb5kdc/

[root@cdh3 krb5kdc]#11

输入两次密码后得到输出

rw-------. 1 root root 8192 Sep 911:16 principal

-rw-------. 1 root root 8192 Sep 9 11:14 principal.kadm5

-rw-------.1root root 0 Sep 9 11:14 principal.kadm5.lock

-rw-------.1root root 0 Sep 27 17:16 principal.ok

得到 principal、.kadm5、lock、.ok 四个文件说明数据库创建成功。

查看能否进入 Kerberos Server admin 后台

执行 kadmin.local 直接进入 admin 后台,此程序只在 Server 服务器有,不需要任何密码,其它程序进入 admin 后台需要输入密码。

root@cdh3 krb5kdc]# kadmin.local

Authenticating as principal root/admin@ITCAST.CN with password

执行 listprincs,可以看到当前机器下有什么账户。

kadmin.local: listprincs

K/M@ITCAST.CN

kadmin/admin@ITCAST.CN

kadmin/cdh3.itcast.cn@ITCAST.CN kadmin/changepw@ITCAST.CN

krbtest/admin@ITCAST.CN

krbtgt/ITCAST.CN@ITCAST.CN

root/admin@ITCAST.CN

kadmin.local:


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

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

# 输入如下内容,添加一个用户

addprinc root/admin@ITCAST.CN 符合*/admin@ITCAST.CN 拥有全部权限。执行,回车。输入密码 root。

kadmin.local: addprinc root/admin@ITCAST.CN

WARNING: no policy specified for root/admin@ITCAST.CN; defaulting to no policy

Enter password for principal"root/admin@ITCAST.CN":

Re-enter password for principal"root/admin@ITCAST.CN":

add_principal:Principal or policy already exists while creating "root/admin@ITCAST.CN"

kadmin.local:

输入两次密码后账户创建完成

创建测试用户

输入 addprinc test/admin@ITCAST.CN 满足*/admin@ITC

AST.CN 回车,输入密码 test 两次密码后提示创建成功。

kadmin.local: addprinctest/admin@ITCAST.CN

WARNING: no policy specified for test/admin@ITCAST.CN;

defaulting to no policy

Enter password for principal"test/admin@ITCAST.CN":

Re-enter password for principal"test/admin@ITCAST.CN":

Principal "test/admin@ITCAST.CN"created.

输入 listprincs

kadmin.local: listprincs K/M@ITCAST.CN

kadmin/admin@ITCAST.CN

kadmin/cdh3.itcast.cn@ITCAST.CN kadmin/changepw@ITCAST.CN

krbtest/admin@ITCAST.CN

krbtgt/ITCAST.CN@ITCAST.CN

root/admin@ITCAST.CN

test/admin@ITCAST.CN

kadmin.local:

可以看到 root test 存在此处。


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

service krb5kdc restart

service kadmin restart

保证能够开机自启加入

chkconfig krb5kdc on

chkconfig kadmin on

执行 service krb5kdc restart 没问题后执行 kadmin restart 加入开机自启动 chkconfig krb5kdc on chkconfig kadmin on

kadmin.local:[root@cdh3 krb5kdc]#

[root@cdh3 krb5kdc]#

[root@cdh3 krb5kdc]# service krb5kdc restart

Stopping Kerberos 5 KDC: [ OK ]

Starting Kerberos 5 KDC: [oK ]

[root@cdh3 krb5kdc]# service kadmin restart

Stopping Kerberos 5 Admin Server: [ OK ]

Starting Kerberos 5 Admin Server: [oK]

[root@cdh3 krb5kdc]# chkconfig krb5kdc on

[root@cdh3 krb5kdc]# chkconfig kadmin on

[root@cdh3 krb5kdc]#

KerberosServer 端配置完成

相关文章
|
分布式计算 资源调度 Hadoop
Hadoop【问题记录 03】【ipc.Client: Retrying connect to server:xxx/:8032+InvalidResourceRequestException】解决
【4月更文挑战第2天】Hadoop【问题记录 03】【ipc.Client: Retrying connect to server:xxx/:8032+InvalidResourceRequestException】解决
992 2
|
Python
分布式框架ray的基本使用记录
分布式框架ray的基本使用记录
1078 0
|
存储 人工智能 分布式计算
云栖实录 | 阿里云 OpenLake 解决方案重磅发布:多模态数据统一纳管、引擎平权联合计算、数据共享统一读写
阿里云 OpenLake 解决方案重磅发布,构建大数据、搜索、AI 一体化的能力体系,实现多模态数据统一纳管、多种计算引擎平权计算、大数据 AI 一体化开发,助力企业基于数据资产构筑竞争力。
1390 10
云栖实录 | 阿里云 OpenLake 解决方案重磅发布:多模态数据统一纳管、引擎平权联合计算、数据共享统一读写
|
Linux 虚拟化 数据安全/隐私保护
银河麒麟V10 VMWare安装保姆级教程
银河麒麟V10 VMWare安装保姆级教程
17046 5
银河麒麟V10 VMWare安装保姆级教程
|
Ubuntu Unix Linux
Linux 用户使用sudo时 显示xxx is not in the sudoers file.This incident will be reported.的解决方法
Linux 用户使用sudo时 显示xxx is not in the sudoers file.This incident will be reported.的解决方法
1288 0
|
消息中间件 Kubernetes 调度
k8s教程(pod篇)-批处理调度
k8s教程(pod篇)-批处理调度
379 0
|
Kubernetes jenkins 持续交付
jenkins连接k8s
jenkins连接k8s
667 7
|
消息中间件 Kubernetes Kafka
实时计算 Flink版操作报错合集之在Rancher K8s部署时,TaskManager无法正常连接到其他TaskManager,该如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
关系型数据库 MySQL 数据库
实时计算 Flink版操作报错合集之在分配所需的最少资源时出现问题,该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
jenkins Java 持续交付
一篇文章讲明白JenkinsPipelinescript指令创建和变量定义
一篇文章讲明白JenkinsPipelinescript指令创建和变量定义
596 0