目录

  • 一、Kerberos 概述
    • 1. 什么是 Kerberos
    • 2. Kerberos 术语
    • 3. Kerberos 认证原理
  • 二、Kerberos 安装
    • 1. 安装 Kerberos 相关服务
    • 2. 修改配置文件
    • 3. 初始化 KDC 数据库
    • 4. 修改管理员权限配置文件
    • 5. 启动 Kerberos 相关服务
    • 6. 创建 Kerberos 管理员用户
  • 三、Kerberos 使用概述
    • 1. Kerberos 数据库操作
    • 2. Kerberos 认证操作

一、Kerberos 概述

1. 什么是 Kerberos

Kerberos 是一种计算机网络认证协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。

2. Kerberos 术语

Kerberos中有以下一些概念需要了解:

  • KDC (Key Distribute Center) :密钥分发中心,负责存储用户信息,管理发放票据。
  • Realm :Kerberos所管理的一个领域或范围,称之为一个 Realm。
  • Rrincipal :Kerberos 所管理的一个用户或者一个服务,可以理解为 Kerberos 中保存的一个账号,其格式通常如下:primary/instance@realm
  • keytab:Kerberos 中的用户认证,可通过密码或者密钥文件证明身份,keytab 指密钥文件。

3. Kerberos 认证原理

二、Kerberos 安装

1. 安装 Kerberos 相关服务

选择集群中的一台主机 (hadoop102) 作为Kerberos服务端,安装KDC,所有主机都需要部署Kerberos客户端。

服务端主机执行以下安装命令

[root@hadoop102 ~]# yum install -y krb5-server
客户端主机执行以下安装命令
[root@hadoop102 ~]# yum install -y krb5-workstation krb5-libs
[root@hadoop103 ~]# yum install -y krb5-workstation krb5-libs
[root@hadoop104 ~]# yum install -y krb5-workstation krb5-libs

2. 修改配置文件

A、服务端主机 (hadoop102)

修改/var/kerberos/krb5kdc/kdc.conf文件,内容如下

[root@hadoop102 ~]# vim /var/kerberos/krb5kdc/kdc.conf
修改如下内容[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88[realms]
EXAMPLE.COM = {#master_key_type = aes256-ctsacl_file = /var/kerberos/krb5kdc/kadm5.acldict_file = /usr/share/dict/wordsadmin_keytab = /var/kerberos/krb5kdc/kadm5.keytabsupported_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
}

B、客户端主机 (所有主机)

修改/etc/krb5.conf文件
[root@hadoop102 ~]# vim /etc/krb5.conf
[root@hadoop103 ~]# vim /etc/krb5.conf
[root@hadoop104 ~]# vim /etc/krb5.conf

内容如下

# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/[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 = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
default_realm = EXAMPLE.COM
#default_ccache_name = KEYRING:persistent:%{uid}[realms]
EXAMPLE.COM = {kdc = hadoop102admin_server = hadoop102
}
[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM

3. 初始化 KDC 数据库

在服务端主机 (hadoop102) 执行以下命令,并根据提示输入密码。

[root@hadoop102 ~]# kdb5_util create -s

4. 修改管理员权限配置文件

在服务端主机 (hadoop102) 修改 /var/kerberos/krb5kdc/kadm5.acl 文件,内容如下
*/admin@EXAMPLE.COM *

5. 启动 Kerberos 相关服务

在主节点 (hadoop102) 启动KDC,并配置开机自启

[root@hadoop102 ~]# systemctl start krb5kdc
[root@hadoop102 ~]# systemctl enable krb5kdc

在主节点 (hadoop102) 启动 Kadmin,该服务为 KDC 数据库访问入口

[root@hadoop102 ~]# systemctl start kadmin
[root@hadoop102 ~]# systemctl enable kadmin

6. 创建 Kerberos 管理员用户

在 KDC 所在主机 (hadoop102),执行以下命令,并按照提示输入密码

[root@hadoop102 ~]# kadmin.local -q "addprinc admin/admin"

三、Kerberos 使用概述

1. Kerberos 数据库操作

A、登录数据库

本地登录 (无需认证)

[root@hadoop102 ~]# kadmin.local
Authenticating as principal root/admin@EXAMPLE.COM with password.
kadmin.local:

远程登录 (需进行主体认证,认证操作见下文)

[root@hadoop102 ~]# kadmin
Authenticating as principal admin/admin@EXAMPLE.COM with password.
Password for admin/admin@EXAMPLE.COM:
kadmin:
退出输入:exit

B、创建 Kerberos 主体

登录数据库,输入以下命令,并按照提示输入密码 kadmin.local: addprinc test
也可通过以下shell命令直接创建主体

[root@hadoop102 ~]# kadmin.local -q"addprinc test"

C、修改主体密码

kadmin.local :cpw test

D、查看所有主体

kadmin.local: list_principals
K/M@EXAMPLE.COM
admin/admin@EXAMPLE.COM
kadmin/admin@EXAMPLE.COM
kadmin/changepw@EXAMPLE.COM
kadmin/hadoop105@EXAMPLE.COM
kiprop/hadoop105@EXAMPLE.COM
krbtgt/EXAMPLE.COM@EXAMPLE.COM

2. Kerberos 认证操作

A、密码认证

使用kinit进行主体认证,并按照提示输入密码

[root@hadoop102 ~]# kinit test
Password for test@EXAMPLE.COM:

查看认证凭证

[root@hadoop102 ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: test@EXAMPLE.COMValid starting       Expires              Service principal
10/27/2019 18:23:57  10/28/2019 18:23:57  krbtgt/EXAMPLE.COM@EXAMPLE.COM
renew until 11/03/2019 18:23:57

B、密钥文件认证

生成主体 test 的 keytab 文件到指定目录 /root/test.keytab

[root@hadoop102 ~]# kadmin.local -q "xst -norandkey -k  /root/test.keytab test@EXAMPLE.COM"

注:-norandkey 的作用是声明不随机生成密码,若不加该参数,会导致之前的密码失效。

使用 keytab 进行认证

[root@hadoop102 ~]# kinit -kt /root/test.keytab test

查看认证凭证

[root@hadoop102 ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: test@EXAMPLE.COMValid starting     Expires            Service principal
08/27/19 15:41:28  08/28/19 15:41:28  krbtgt/EXAMPLE.COM@EXAMPLE.COM
renew until 08/27/19 15:41:28

C、销毁凭证

[root@hadoop102 ~]# kdestroy
[root@hadoop102 ~]# klist
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_0)

Kerberos (一) --------- Kerberos 部署相关推荐

  1. 报错:Ticket expired while renewing credentials 原因:Hue 集成Kerberos 导致Kerberos Ticket Renewer 起不来

    报错:Ticket expired while renewing credentials 原因:Hue 集成Kerberos 导致Kerberos Ticket Renewer 起不来 图片: 报错, ...

  2. 【kerberos】kerberos 认证 详情介绍

    文章目录 1.概述 2.简单认证 2.详细认证 1.概述 本文章是视频:Kerberos认证详解 笔记. Kerberos是诞生于上个世纪90年代的计算机认证协议,被广泛应用于各大操作系统和Hadoo ...

  3. [Kerberos基础]-- kerberos认证原理---讲的非常细致,易懂

    参考官方文档:http://www.kerberos.org/ 转自:http://blog.csdn.net/wulantian/article/details/42418231

  4. kerberos java_[Kerberos] Java client访问kerberos-secured cluste

    使用java client访问kerberos-secured cluster,最重要的是先从admin那里拿到可用的keytab文件,用来作认证.接下来就是调整连接的配置问题.以下先用连接hdfs为 ...

  5. Kerberos的部署

    一.Kerberos的部署 1.1 Kerberos概述 Kerberos中有以下一些概念需要了解: 1)KDC(Key Distribute Center):密钥分发中心,负责存储用户信息,管理发放 ...

  6. HDFS配置Kerberos认证

    为什么80%的码农都做不了架构师?>>>    本文主要记录 CDH Hadoop 集群上配置 HDFS 集成 Kerberos 的过程,包括 Kerberos 的安装和 Hadoo ...

  7. Hadoop平台安全机制Kerberos认证

    日前笔者在使用flume采集数据直接入到Hadoop平台HDFS上时,由于Hadoop平台采用了Kerberos认证机制.flume配置上是致辞kerberos认证的,但由于flume要采集的节点并不 ...

  8. 0110-如何给Kerberos环境下的CDH集群添加Gateway节点

    2019独角兽企业重金招聘Python工程师标准>>> Fayson的github: https://github.com/fayson/cdhproject 1.文档编写目的 Ga ...

  9. kerberos安全认证

    1.kerberos安全认证原理: 客户端跟服务端可以对对方进行身份认证,防止窃听,防止replay攻击.保护数据完成性,是一种应用对称密钥体制进行密钥管理的系统. 2.基本概念 Principal( ...

最新文章

  1. PDO防注入原理分析以及使用PDO的注意事项 (转)
  2. 解决pandas:ValueError: Cannot convert non-finite values (NA or inf) to integer
  3. 豆瓣评分 9.1,揭秘乔布斯如何成为最伟大的产品经理?
  4. [云炬python3玩转机器学习笔记] 3-9Numpy中的arg运算
  5. 华为怎么显示返回按键_华为 iateey 智能饮水吧评测:即时加热,一秒出水
  6. boost::mp11::mp_fill相关用法的测试程序
  7. spring注解方式 idea报could not autowire
  8. 基于.NetCore3.1搭建项目系列 —— 认证授权方案之Swagger加锁
  9. java及python调用RabbitMQ
  10. 【LeetCode笔记】225. 用队列实现栈(Java、队列、栈)
  11. Attribute鲜为人知的两个特性记录
  12. 坐标或测量值超出范围
  13. 【学术之门之P2P算法研读】P2P中的Chord算法
  14. linux 格式化 lvm2,LVM2
  15. apms阅卷系统服务器,apms全通纸笔王网上阅卷系统操作流程
  16. 【mysql表查询】某门课程的前三名(包含并列)
  17. 如何做到阿里云 Redis 开发规范中的拒绝 bigkey
  18. 数据结构名次计算和排序算法
  19. css缩2个字,首行缩排2字元怎么设定 css
  20. OpenFlow简单介绍

热门文章

  1. krpano资源下载及还原全景图
  2. 3D云打印系统OctoPrint,中文化详细图文教程
  3. c# UTC时间和本地时间转换(北京时间)
  4. 数据库基础---选择,投影,连接,除法运算
  5. spyder运行时闪退解决办法:
  6. 【杂篇 · 技巧】Typora 快捷键整理
  7. CouchDB的简单使用
  8. poj1008 -- 玛雅历
  9. Nginx做缓存服务器
  10. 上海宝付房价上涨?这几类人倒霉了