kerberos 主从安装

主机列表

主机名称IP硬件配置
pass-eda-hdp-00110.218.12.1480 Core、256 G
pass-eda-hdp-00310.218.12.1880 Core、256 G

软件清单

软件名称版本号备注
krb5-server1.15.1
krb5-workstation1.15.1主备之间同步数据文件用

主机规划

主机角色软件
10.218.12.14krb5-server
10.218.12.18krb5-workstation

安装部署

服务安装

在两台机器上面分别安装kerberos服务。此处只安装服务,暂不做相应配置及启动服务。

yum install krb5-server krb5-workstation -y

修改配置

这里配置文件均在主备两台同时修改。

配置/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
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
 pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt
 default_realm = HLJ.CTC
 default_ccache_name = KEYRING:persistent:%{uid}

[realms]
 HLJ.CTC = {
  kdc = pass-eda-hdp-001
  kdc = pass-eda-hdp-003
  admin_server = pass-eda-hdp-001
 }


[domain_realm]
 .hlj.ctc = HLJ.CTC
 hlj.ctc = HLJ.CTC

说明:

HLJ.CTC是设定的realms。Kerberos可以支持多个realms,大小写敏感,一般为了识别使用全部大写。

kdc代表kdc服务的地址。格式是机器名:端口,端口可以不写默认88。有多少kdc就写几行(admin_server同理)。

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

sed -i "s/EXAMPLE.COM/HLJ.CTC/g" /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 HLJ.CTC = {
  #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: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
 }

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

sed -i "s/EXAMPLE.COM/HLJ.CTC/g" /var/kerberos/krb5kdc/kadm5.acl
*/admin@HLJ.CTC *

创建数据库

kdb5_util create -s

拷贝密钥文件

scp -p /var/kerberos/krb5kdc/.k5.CHINATELECOM.CN  pass-bigdata-hadoop-009:/var/kerberos/krb5kdc

]()

创建同步账号

kadmin.local -q "addprinc -randkey host/pass-eda-hdp-001"
kadmin.local -q "addprinc -randkey host/pass-eda-hdp-003"
kadmin.local -q "ktadd host/pass-eda-hdp-001"
kadmin.local -q "ktadd host/pass-eda-hdp-003"

拷贝文件keytab文件

scp -p /etc/krb5.keytab pass-eda-hdp-003:/etc/

声明同步账户

注意主节点上不能有该文件,否则kadmin服务无法启动,会报错:Error. This appears to be a slaveserver, found kpropd.acl。

配置/var/kerberos/krb5kdc/kpropd.acl


host/pass-eda-hdp-001@HLJ.CTC
host/pass-eda-hdp-003@HLJ.CTC

启动Kprop服务

systemctl enable kprop
systemctl start kprop

同步数据库

在主节点dump数据文件。

kdb5_util dump /var/kerberos/krb5kdc/slave_datatrans

启动主节点kerberos服务。

systemctl start krb5kdc

同步数据库文件。

kprop -d pass-eda-hdp-003
Database propagation to pass-eda-hdp-003: SUCCEEDED

pass-eda-hdp-003 上日志

[root@kdcslave ~]# kpropd -dS
ready
waiting for a kprop connection
Connection from kdcmaster
krb5_recvauth(4, kprop5_01, host/kdcslave@HAOHAOZHU.COM, ...)
authenticated client: host/kdcmaster@HAOHAOZHU.COM (etype == Triple DES cbc mode with HMAC/sha1)
Full propagation transfer started.
Full propagation transfer finished.
calling kdb5_util to load database
Load PID is 3565
Database load process for full propagation completed.
waiting for a kprop connection

添加自动同步任务

echo -e "* * * * * root kdb5_util dump /var/kerberos/krb5kdc/slave_datatrans && kprop -d pass-eda-hdp-003" >> /etc/cron.d/sync_krb5
systemctl restart crond

sync_db.sh

#!/bin/sh

kdclist="kdcslave"
echo `date`"start to sync!"
sudo kdb5_util dump /var/kerberos/krb5kdc/slave_datatrans
for kdc in $kdclist;
do
    sudo kprop -f /var/kerberos/krb5kdc/slave_datatrans $kdc
done
echo `date`"end to sync!"

添加执行权限

chmod +x sync_db.sh

添加定时任务

crontab -e
*/1 * * * * /root/sync_db.sh >> /root/sync.log

启动从节点

systemctl start krb5kdc

启动Kadmin服务

systemctl start kadmin

测试

添加测试账号

sudo kadmin.local -q "addprinc -pw test test/admin"

停止主节点kdc服务

 systemctl stop krb5kdc

登陆测试账号

kadmin -p test/admin

Authenticating as principal test/admin with password.

Password for test/admin@HADOOP.COM:

kadmin.local验证

[root@pass-eda-hdp-003 krb5kdc]# kadmin.local
Authenticating as principal root/admin@HLJ.CTC with password.
kadmin.local:  listprincs 
K/M@HLJ.CTC
host/pass-eda-hdp-001@HLJ.CTC
host/pass-eda-hdp-003@HLJ.CTC
kadmin/admin@HLJ.CTC
kadmin/changepw@HLJ.CTC
kadmin/pass-eda-hdp-001@HLJ.CTC
kiprop/pass-eda-hdp-001@HLJ.CTC
krbtgt/HLJ.CTC@HLJ.CTC
test/admin@HLJ.CTC
kadmin.local:  exit

安装脚本

installKerberos.sh

yum install krb5-server krb5-workstation -y
cp /home/krb5.conf /etc/
scp /etc/krb5.conf pass-eda-hdp-003:/etc
sed -i "s/EXAMPLE.COM/HLJ.CTC/g" /var/kerberos/krb5kdc/kdc.conf
scp /var/kerberos/krb5kdc/kdc.conf pass-eda-hdp-003:/var/kerberos/krb5kdc/
sed -i "s/EXAMPLE.COM/HLJ.CTC/g" /var/kerberos/krb5kdc/kadm5.acl
scp /var/kerberos/krb5kdc/kadm5.acl pass-eda-hdp-003:/var/kerberos/krb5kdc/
scp /var/kerberos/krb5kdc/.k5.HLJ.CTC pass-eda-hdp-003:/var/kerberos/krb5kdc/
kadmin.local -q "addprinc -randkey host/pass-eda-hdp-001"
kadmin.local -q "addprinc -randkey host/pass-eda-hdp-003"
kadmin.local -q "ktadd host/pass-eda-hdp-001"
kadmin.local -q "ktadd host/pass-eda-hdp-003"
scp -p /etc/krb5.keytab pass-eda-hdp-003:/etc/
vim /var/kerberos/krb5kdc/kpropd.acl
kprop -f /var/kerberos/krb5kdc/slave_datatrans pass-eda-hdp-003
kprop -d pass-eda-hdp-003

keytab 文件如下方式生成

sudo kadmin.local -q "addprinc -pw ocdp ocdp@HLJ.CTC"
sudo kadmin -padmin/admin -wadmin -q"xst -k /home/ocdp/ocdp.keytab  ocdp@HLJ.CTC"

远程添加用户

#/usr/bin/kadmin, -s, 10.4.75.32:749, -p, jzy/admin@GROUPB.HADOOP.CN, -w, jzy, -r, GROUPB.HADOOP.CN, -q, add_principal -pw "a1b2c3d4" test1@GROUPB.HADOOP.CN
sudo kadmin -s 10.4.75.32:749 -p jzy/admin@GROUPB.HADOOP.CN -w  jzy -r  GROUPB.HADOOP.CN

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
安装Kerberos,你可以按照以下步骤进行操作: 1. 安装依赖:首先,确保你的系统上已经安装了一些必要的软件包。对于大多数Linux发行版,你可以使用包管理器来安装这些软件包。例如,在Debian/Ubuntu上,可以运行以下命令来安装所需的依赖项: ``` sudo apt-get update sudo apt-get install build-essential libkrb5-dev ``` 对于其他发行版,请使用相应的包管理器。 2. 下载Kerberos:访问MIT Kerberos官方网站(https://web.mit.edu/kerberos/)并下载最新版本的Kerberos软件包。 3. 解压缩和编译:将下载的软件包解压缩到合适的目录中,并进入解压缩后的目录。然后执行以下命令进行编译和安装: ``` ./configure make sudo make install ``` 这将配置、编译并安装Kerberos。 4. 配置KerberosKerberos的配置文件通常位于`/etc/krb5.conf`。你可以使用文本编辑器打开此文件,并根据你的需求进行配置。配置文件中包含了Kerberos服务器和域的相关设置,以及密钥库和票证缓存的位置等信息。 5. 启动和测试:启动Kerberos服务并进行测试。可以使用以下命令来启动Kerberos服务: ``` sudo systemctl start krb5kdc sudo systemctl start kadmin ``` 然后,你可以使用`kinit`命令获取Kerberos票证,并使用`klist`命令查看你的票证信息,以确保Kerberos正常工作。 这是一个基本的Kerberos安装过程的概述,具体步骤可能会根据你的操作系统和Kerberos版本而有所不同。在实际安装过程中,请参考官方文档和适用于你的操作系统的特定指南以获得更详细的说明和帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值