主机规划

10.10.100.94   master

10.10.100.93   slave

10.10.100.92   client

(一)环境:

名称            版本

CentOS        CentOS release 6.7(Final)

Kerberos

krb5-server-1.10.3-57.el6.x86_64

krb5-workstation-1.10.3-57.el6.x86_64

krb5-libs-1.10.3-57.el6.x86_64

krb5-auth-dialog-0.13-5.el6.x86_64

名称    作用

10.10.100.95    Kerberos   master

10.10.100.96    Kerberos   slave

1、需要准备:

http://www.cloudera.com/content/www/zh-CN/documentation/enterprise/5-3-x/topics/cm_sg_s2_jce_policy.html

jdk7对应的策略文件下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

jdk8:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

2、安装kdc server 和client

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

#yum install krb5-workstation  -y

yum -y remove krb5-devel

yum -y remove krb5-workstation

yum -y remove krb5-libs

yum -y remove krb5-auth-dialog

rpm -qa | grep krb5

(二)配置

1)主机名称配置

在master 和slave 服务器上添加主机名称及对应的域名

#  vim /etc/hosts

10.10.100.95                 kerberos.example.com    kerberos

10.10.100.95                 kdc.example.com         kdc

10.10.100.96                 kerberos2.example.com    kerberos2

2)master配置---从初始化安装开始

vi /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 = EXAMPLE.COM

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 24h

forwardable = yes

[realms]

EXAMPLE.COM = {

kdc= kerberos.example.com

kdc= kerberos2.example.com:88

admin_server = kerberos.example.com:749

default_domain = example.com

}

[domain_realm]

.example.com = EXAMPLE.COM

example.com = EXAMPLE.COM

[appdefaults]

pam= {

debug = false

ticket_lifetime = 36000

renew_lifetime = 36000

forwardable = true

krb4_convert = false

}

*******************************************************************************

vi  /var/kerberos/krb5kdc/kdc.conf

*******************************************************************************

[kdcdefaults]

v4_mode = nopreauth

kdc_tcp_ports = 88

[realms]

EXAMPLE.COM = {

master_key_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:normaldes3-hmac-sha1:normal arcfour-mac:normal des-hmac-sha1:normaldes-cbc-md5:normal des-cbc-crc:normal des-cbc-crc:v4 des-cbc-crc:afs3

}

*******************************************************************************

export KRB5_CONFIG=/etc/krb5.conf

exportKRB5_KDC_PROFILE=/var/kerberos/krb5kdc/kdc.conf

******************************************************************************

3 )生成master服务器上的kdc database

[root@kerberos ~]# kdb5_util create  -r  EXAMPLE.COM -s

Loading random data

Initializing database'/var/kerberos/krb5kdc/principal' for realm 'EXAMPLE.COM',

master key name 'K/M@EXAMPLE.COM'

You will be prompted for the databaseMaster Password.

It is important that you NOT FORGET thispassword.

Enter KDC database master key:

Re-enter KDC database master key to verify:

密码:ngaa.com.cn@test

将在/var/kerberos/krb5kdc/目录下生成多个文件,

相关生成文件的说明为:

4)master服务器上,添加admin用户

[root@kerberos ~]#  kadmin.local

Kadmin.local:  addprinc  admin/admin@EXAMPLE.COM

密码:admin@EXAMPLE.COM

5 )启动 kdc 服务 和 kadmin 服务

[root@kerberos ~]#  servicekrb5kdc restart

[root@kerberos ~]#  servicekadmin  restart

添加开机启动: chkconfig krb5kdcon

chkconfig kadmin  on

6)使用kinit 命令,测试admin账户是否生成成功(需要安装client端:

yum install krb5-workstation -y)

[root@kerberos ~]#  kinit  admin/admin@EXAMPLE.COM

密码:admin@EXAMPLE.COM

7 )安装slave KDC的相关配置

(7-1)创建host  keytab 文件

在master服务器上

[root@kerberos ~]#  kadmin.local

kadmin: addprinc  -randkey  host/kerberos.example.com  #添加principal

kadmin:ktadd host/kerberos.example.com    #生成keytab文件

kadmin: addprinc  -randkey host/kerberos2.example.com  #添加principal

kadmin:ktadd host/kerberos2.example.com    #生成keytab文件

(7-2 )将master上的几个文件拷贝到从服务器,

文件: krb5.conf、kdc.conf、kadmin5.acl、master key stash file

[root@kerberos ~]# scp /etc/krb5.conf root@10.10.100.96:/etc

[root@kerberos ~]#

scp /var/kerberos/krb5kdc/kdc.confroot@10.10.100.96:/var/kerberos/krb5kdc/

[root@kerberos ~]#

scp /var/kerberos/krb5kdc/kadm5.aclroot@10.10.100.96:/var/kerberos/krb5kdc/

scp /var/kerberos/krb5kdc/.k5.EXAMPLE.COM root@10.10.100.96:/var/kerberos/krb5kdc/

.k5.EXAMPLE.COM

在slave服务器上(需要和master一样执行上面的操作:

安装server端和client端)

Slave上创建数据库

[root@kerberos ~]# kdb5_util  create -r  EXAMPLE.COM -s

Loading random data

Initializing database'/var/kerberos/krb5kdc/principal' for realm 'EXAMPLE.COM',

master key name 'K/M@EXAMPLE.COM'

You will be prompted for the databaseMaster Password.

It is important that you NOT FORGET thispassword.

Enter KDC database master key:

Re-enter KDC database master key to verify:

密码:ngaa.com.cn@test

添加规则:

[root@kerberos2 ~]#  kadmin.local

kadmin: addprinc  -randkey host/kerberos2.example.com  #添加principal

kadmin: ktaddhost/kerberos2.example.com    #生成keytab文件

(7-3 )在slave服务器上创建kpropd.acl文件

[root@kerberos2 ~]# touch /var/kerberos/krb5kdc/kpropd.acl

添加如下内容:

host/kerberos.example.com@EXAMPLE.COM

host/kerberos2.example.com@EXAMPLE.COM

(7-4)在slave上启动kpropd服务

[root@kerberos2 ~]#  kpropd –S

和service krb5kdc start

至此,slave上的kdc服务还不能启动,因为无kdc的database数据

8)在master上将相关数据同步到slave上

[root@kerberos ~]# kdb5_util dump /var/kerberos/krb5kdc/kdc.dump

[root@kerberos~]#kprop -f /var/kerberos/krb5kdc/kdc.dumpkerberos2.example.com

成功后,会出现以下信息:

Database propagation to kerberos2.example.com: SUCCEEDED

以上命令,可以封装成一个bash,定时运行,即定时更新slave上的database。

(1)如果出现错误:

kprop: Client not found in Kerberosdatabase while getting initial ticket

解决:

在master上添加规则

kadmin: addprinc  -randkey  host/kerberos2.example.com  #添加principal

kadmin:ktadd host/kerberos2.example.com    #生成keytab文件

(2)如果出现错误:

[root@kerberos security]#

kprop -f /var/kerberos/krb5kdc/slave_datatrans  kerberos2.example.com -P 749 -s -d

kprop: Server rejected authentication(during sendauth exchange) while authenticating to server

kprop: Decrypt integrity check failedsignalled from server

Error text from server: Decrypt integritycheck failed

更换命令:

[root@kerberos ~]# kdb5_util dump/var/kerberos/krb5kdc/kdc.dump

[root@kerberos~]#kprop -f/var/kerberos/krb5kdc/kdc.dump kerberos2.example.com

9)slave上/var/kerberos/krb5kdc/会多出一些文件,如:

from_master、principal、pricipal.kadm5、

principal.kadmin5.lock、            principal.ok

10)至此,可以启动slave上的kdc服务

#service krb5kdc restart

(三)测试主从是否生效(成功)

1)从第三台服务器,使用kinit获取ticket,正常情况下会从master上获取

2)关闭master上的kdc服务

3)再次从第三台服务器上,使用kinit 获取ticket,如果成功,说明生效。

也可以观察kdc的日志,在 /var/log/krb5kdc.log

注意:

需要有kdc client端

当有多台slave时,定时更新脚本可以这样:

#!/bin/sh

kdclist = "kerberos2.example.com kerberos3.example.com"

kdb5_util dump /var/kerberos/krb5kdc/slave_datatrans

for kdc in $kdclist

do

kprop -f /var/kerberos/krb5kdc/slave_datatrans $kdc

done

参考文档:

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

http://web.mit.edu/kerberos/krb5-current/doc/krb_admins/install_kdc.html

http://shanchao7932297.blog.163.com/blog/static/1363624201241725623761/

遇见问题参考:

http://research.imb.uq.edu.au/~l.rathbone/ldap/kerberos.shtml

[Kerberos基础]-- kdc集群主从搭建(kerberos相关)相关推荐

  1. Mysql集群主从搭建指定数据库同步数据

    1.全库同步与部分同步 之前提到,我们目前配置的主从同步是针对全库配置的,而实际环境中,一般并 不需要针对全库做备份,而只需要对一些特别重要的库或者表来进行同步.那如何 针对库和表做同步配置呢? 首先 ...

  2. Day267.预约系统的性能瓶颈、营销活动无缝切换秒杀活动、预约系统数据迁移方案、高流量下预约系统搭建熔断机制、预约系统redis集群主从哨兵架构 -Redis的高并发预约抢购系统

    一.预约系统的性能瓶颈 1.预约系统应对热门爆品时的缺陷 用户进行预约会涉及到两个维度的数据变更一个是用户信息,一个是SKU信息,如图↓所示: 正常来说这么搞一点问题没有,即便涉及到写数据库,但是每个 ...

  3. 高吞吐消息中间件Kafka集群环境搭建(3台kafka,3台zookeeper)

    高吞吐消息中间件Kafka集群环境搭建(3台kafka,3台zookeeper) 一.集群搭建要求 1.搭建设计 2.分配六台Linux,用于安装拥有三个节点的Kafka集群和三个节点的Zookeep ...

  4. csrediscore访问redis集群_搭建文档 | centos7.6环境下redis5.0.8集群搭建

    " 本文作者:墨篱弦 " 一.做基础配置 a) 首先创建3个空文件 mkdir -p /server/redis_cluster/7001/datamkdir -p /server ...

  5. 深入剖析Redis系列(三) - Redis集群模式搭建与原理详解

    前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...

  6. Redis集群架构搭建和原理

    Redis集群架构教程 Redis常见的架构有主从.哨兵.高可用集群,接下来的文章分四章分别介绍linux安装redis.主从架构搭建.哨兵模式搭建.集群架构搭建 第一章 Redis的安装 我的cen ...

  7. 2W 字详解 Redis 集群环境搭建实践

    点击上方 "终端研发部"关注, 星标或置顶一起成长 本文是Redis集群学习的实践总结(基于Redis 6.0+),详细介绍逐步搭建Redis集群环境的过程,并完成集群伸缩的实践. ...

  8. 大数据第一天 Hadoop01-入门集群环境搭建

    Hadoop01-入门&集群环境搭建 今日内容 ​ Hadoop的介绍 ​ 集群环境搭建准备工作 ​ Linux命令和Shell脚本增强 ​ 集群环境搭建 大数据概述 ​ 大数据: 就是对海量 ...

  9. Docker中搭建redis分片集群,搭建redis哨兵结构,实现springboot中对redis分片集群、哨兵结构的访问,Redis缓存雪崩、缓存击穿处理(非关系型数据库技术课程 第十二周)

    文章目录 一.要求: 二.知识总结 缓存雪崩 解决方案 docker中redis分片集群搭建 配置好配置文件 redis-6380.conf redis-6381.conf redis-6382.co ...

最新文章

  1. Hadoop集群搭建(七:MySQL的安装配置)
  2. org.springframework.data.mapping.PropertyReferenceException: No property xxxx found for type Xxxx
  3. jquery同步请求
  4. 速来围观MOS管的选择步骤
  5. RocketMQ集群启动报错:java.lang.RuntimeException: Lock failed,MQ already started
  6. rp-provide-from-last
  7. ubuntu自定义安装里怎么选_超市里的五香粉怎么选?看懂配料表,两个小技巧,不怕选不好。...
  8. linux进程socket通信,linux进程间通信--socket套接字 实例代码
  9. NIO框架入门(一):服务端基于Netty4的UDP双向通信Demo演示
  10. 软件测试常见笔试面试题(二)
  11. php图片遍历,php – 如何遍历图像的所有像素?
  12. C# 改变图片大小的功能代码片段 (wince5)
  13. python爬取凤凰新闻_python爬虫凤凰网新闻
  14. 将bilibili里面的缓存视频保存到电脑
  15. 订餐系统java+mybatis+mysql8项目练习(二) 添加订单项
  16. lineedit加入边框 qt_qt qlineedit 边框
  17. 微信公众测试号推送天气(最近超火的小玩意)给女友一个满满的爱
  18. DaaS架构及落地 (一)
  19. 趋势一次一单EA,不加仓不网格,每单带止损止盈,风险可控
  20. 结构建模设计——Solidworks软件之草图几何关系绘制与草图编辑功能总结(裁剪实体、转换实体引用、等距实体)

热门文章

  1. OAuth 2.0实战(一)-通俗光速入门
  2. 两大「宇宙中心」之争:未来科技城如何一步步落后奥体?
  3. Python中文分词及词频统计
  4. 深度学习相关基础理论
  5. 取消双Shift全局搜索
  6. Vue - 实现图片裁剪功能,并上传到服务器(内置第三方最优秀的裁剪图片组件,上传到服务器功能)干净整洁无 BUG 的示例源码与超详细的注释,兼容任意浏览器
  7. Microsoft Visio Professional 2013打不开也卸载不了解决办法
  8. 历史在重演:从KHTML到WebKit,再到Blink(转)
  9. 最全的百度网盘搜索引擎
  10. 初学者笔记:Scanf间隔符号的使用