主机规划

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. 自己架设windows升级服务器
  2. 【转】浅谈php://filter的妙用
  3. JVM必备指南(转)
  4. php如何生成公钥私钥,php如何生成公钥私钥(代码)
  5. myysql 不能远程访问的解决办法
  6. 数学思想 —— 推广和泛化
  7. 【Python3网络爬虫开发实战】1.5.2-PyMongo的安装
  8. 前端开发常用免费资源,显著提升工作效率
  9. 文件比较 增量 更新 系统发布 增量更新
  10. 1400协议是什么和28181区别_gb28181协议常见流程简析
  11. Lua,LuaJIT,Luarocks的安装与配置-史上最详细【Linux】
  12. Extjs6开发环境搭建
  13. java excel 取消科学计数法_java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的形式...
  14. 微软浏览器Edge不能上网的解决办法
  15. mysql导入(ibd文件)
  16. 2021年IEEE Fellow刚刚放榜!84位华人学者当选再创新高!
  17. TortoiseSVN 如何去掉文件夹左下角的绿色对勾的方法
  18. 离散数学 数学三大危机
  19. 数据结构算法常见的 100 道面试题全解析:2019 版
  20. WHM面板修改PHP版本教程

热门文章

  1. 华为OD机试真题 Python 实现【数字涂色】
  2. 2022年”泰迪杯“数据分析技能赛B题:银行客户忠诚度分析
  3. word贴心自动智能功能
  4. 一级建造师考试备考顺序
  5. 手机翻译html工具,1分钟教你用手机实时翻译,自带翻译功能就是强大,各牌手机均可...
  6. ArcBlock世界第一区块链基石生态系统
  7. Python项目-Day26-数据加密-hash加盐加密-token-jwt
  8. 常用工具:自媒体视频素材网站,自媒体视频剪辑,自媒体排版工具
  9. 腾讯云直播 延迟排查
  10. 编译原理 第二章 程序设计语言及其文法