1. 概述
Kerberos是一种计算机网络认证协议,它允许某实体在非安全网络环境下通信,向另一个实体以一种安全的方式证明自己的身份。它也指由麻省理工实现此协议,并发布的一套免费软件。它的设计主要针对客户-服务器模型,并提供了一系列交互认证——用户和服务器都能验证对方的身份。Kerberos协议可以保护网络实体免受窃听和重复攻击。
Kerberos协议基于对称密码学,并需要一个值得信赖的第三方。Kerberos协议的扩展可以为认证的某些阶段提供公钥密码学支持。
2. 环境说明:
- CDH版本:5.11.2
- Linux版本:Centos 7
- Docker版本:Docker version 18.06.0-ce
- JDK版本:1.8
- 操作用户:root
机器部署:
# | IP | 主机名 | Server | Client |
---|---|---|---|---|
1 | 192.168.101.232 | cdh-server-1 | N/A | N/A |
2 | 192.168.101.233 | cdh-node-1 | Kerberos server | Kerberos client |
3 | 192.168.101.234 | cdh-node-2 | N/A | Kerberos client |
4 | 192.168.101.235 | cdh-node-3 | N/A | Kerberos client |
各节点之间可以通过ssh免密码登录
Kerberos服务器和客户之间的时间同步
3. Kerberos 安装
cdh-node-1
作为Kerberos主节点安装服务:
yum install krb5-libs krb5-server krb5-workstation
通过命令查看安装列表rpm -qa|grep krb5
:
[root@cdh-node-1 /]# rpm -qa | grep krb5
krb5-workstation-1.15.1-19.el7.x86_64
krb5-devel-1.15.1-19.el7.x86_64
krb5-server-1.15.1-19.el7.x86_64
krb5-libs-1.15.1-19.el7.x86_64
[root@cdh-node-1 /]#
4. 配置
kdc服务器包含三个配置文件:
# 集群上所有节点都有这个文件而且内容同步
/etc/krb5.conf
# 主服务器上的kdc配置
/var/kerberos/krb5kdc/kdc.conf
# 能够不直接访问 KDC 控制台而从 Kerberos 数据库添加和删除主体,需要添加配置
/var/kerberos/krb5kdc/kadm5.acl
1. 首先配置/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 #此处需要进行配置,把默认的EXAMPLE.COM修改为自己要定义的值
dns_lookup_kdc = false
dns_lookup_realm = false
ticket_lifet