[Kerberos基础]-- kdc集群主从搭建(kerberos相关)
主机规划
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相关)相关推荐
- Mysql集群主从搭建指定数据库同步数据
1.全库同步与部分同步 之前提到,我们目前配置的主从同步是针对全库配置的,而实际环境中,一般并 不需要针对全库做备份,而只需要对一些特别重要的库或者表来进行同步.那如何 针对库和表做同步配置呢? 首先 ...
- Day267.预约系统的性能瓶颈、营销活动无缝切换秒杀活动、预约系统数据迁移方案、高流量下预约系统搭建熔断机制、预约系统redis集群主从哨兵架构 -Redis的高并发预约抢购系统
一.预约系统的性能瓶颈 1.预约系统应对热门爆品时的缺陷 用户进行预约会涉及到两个维度的数据变更一个是用户信息,一个是SKU信息,如图↓所示: 正常来说这么搞一点问题没有,即便涉及到写数据库,但是每个 ...
- 高吞吐消息中间件Kafka集群环境搭建(3台kafka,3台zookeeper)
高吞吐消息中间件Kafka集群环境搭建(3台kafka,3台zookeeper) 一.集群搭建要求 1.搭建设计 2.分配六台Linux,用于安装拥有三个节点的Kafka集群和三个节点的Zookeep ...
- csrediscore访问redis集群_搭建文档 | centos7.6环境下redis5.0.8集群搭建
" 本文作者:墨篱弦 " 一.做基础配置 a) 首先创建3个空文件 mkdir -p /server/redis_cluster/7001/datamkdir -p /server ...
- 深入剖析Redis系列(三) - Redis集群模式搭建与原理详解
前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...
- Redis集群架构搭建和原理
Redis集群架构教程 Redis常见的架构有主从.哨兵.高可用集群,接下来的文章分四章分别介绍linux安装redis.主从架构搭建.哨兵模式搭建.集群架构搭建 第一章 Redis的安装 我的cen ...
- 2W 字详解 Redis 集群环境搭建实践
点击上方 "终端研发部"关注, 星标或置顶一起成长 本文是Redis集群学习的实践总结(基于Redis 6.0+),详细介绍逐步搭建Redis集群环境的过程,并完成集群伸缩的实践. ...
- 大数据第一天 Hadoop01-入门集群环境搭建
Hadoop01-入门&集群环境搭建 今日内容 Hadoop的介绍 集群环境搭建准备工作 Linux命令和Shell脚本增强 集群环境搭建 大数据概述 大数据: 就是对海量 ...
- Docker中搭建redis分片集群,搭建redis哨兵结构,实现springboot中对redis分片集群、哨兵结构的访问,Redis缓存雪崩、缓存击穿处理(非关系型数据库技术课程 第十二周)
文章目录 一.要求: 二.知识总结 缓存雪崩 解决方案 docker中redis分片集群搭建 配置好配置文件 redis-6380.conf redis-6381.conf redis-6382.co ...
最新文章
- Hadoop集群搭建(七:MySQL的安装配置)
- org.springframework.data.mapping.PropertyReferenceException: No property xxxx found for type Xxxx
- jquery同步请求
- 速来围观MOS管的选择步骤
- RocketMQ集群启动报错:java.lang.RuntimeException: Lock failed,MQ already started
- rp-provide-from-last
- ubuntu自定义安装里怎么选_超市里的五香粉怎么选?看懂配料表,两个小技巧,不怕选不好。...
- linux进程socket通信,linux进程间通信--socket套接字 实例代码
- NIO框架入门(一):服务端基于Netty4的UDP双向通信Demo演示
- 软件测试常见笔试面试题(二)
- php图片遍历,php – 如何遍历图像的所有像素?
- C# 改变图片大小的功能代码片段 (wince5)
- python爬取凤凰新闻_python爬虫凤凰网新闻
- 将bilibili里面的缓存视频保存到电脑
- 订餐系统java+mybatis+mysql8项目练习(二) 添加订单项
- lineedit加入边框 qt_qt qlineedit 边框
- 微信公众测试号推送天气(最近超火的小玩意)给女友一个满满的爱
- DaaS架构及落地 (一)
- 趋势一次一单EA,不加仓不网格,每单带止损止盈,风险可控
- 结构建模设计——Solidworks软件之草图几何关系绘制与草图编辑功能总结(裁剪实体、转换实体引用、等距实体)
热门文章
- OAuth 2.0实战(一)-通俗光速入门
- 两大「宇宙中心」之争:未来科技城如何一步步落后奥体?
- Python中文分词及词频统计
- 深度学习相关基础理论
- 取消双Shift全局搜索
- Vue - 实现图片裁剪功能,并上传到服务器(内置第三方最优秀的裁剪图片组件,上传到服务器功能)干净整洁无 BUG 的示例源码与超详细的注释,兼容任意浏览器
- Microsoft Visio Professional 2013打不开也卸载不了解决办法
- 历史在重演:从KHTML到WebKit,再到Blink(转)
- 最全的百度网盘搜索引擎
- 初学者笔记:Scanf间隔符号的使用