机器:
172.31.10.133 (Kerberos 客户端和服务端都放一起)
172.31.10.132(kafka)
172.31.10.132(zookeeper)
整体概述:
- kafka 集成 kerberos 后, kafka 的客户端和 kafka 的服务端在交互前都需要请求 kerberos 进行认证通过后,才能进行交互。那么 kafka 的客户端和 kafka 的服务端的票据即 keytab 只要是通过 kerberos 认证后,就可以交互了,说明这点意思,kafka 的客户端和服务端的 keytab 可以用一个或者不用一个。
- kafka 和 kerberos 的交互与访问都需要通过域名。所需机器上的配置 /etc/hosts 文件需要配置 kerberos 的域名,注意是只要有 krb5.conf 的文件都都需要设置,这个文件通过域名访问 kdc 中心。
- 说说几个比较重要的文件:
-
- kerberos 的 kdc.conf 文件 这个指定端口号,设置加密的类型
- krb5.conf 文件,这个文件是设置 kdc 的认证中心,即 kerberos 服务端的地址。当然可以存在多个 kerberos,这就需要修改 krb5.conf 文件了
- keytab 文件,这个就是加密文件了
- kadm5.acl 文件用来设置 realm 域名的,本文的域名 EXAMPLE.COM
- kafka 服务端的文件,jaas 文件,服务端文件,以及需要使用 Kerberos 认证链接。
172.31.10.133 机器的配置及操作:
krb5.conf 文件使用
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 = FILE:/etc/pki/tls/certs/ca-bundle.crt
default_realm = EXAMPLE.COM
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
EXAMPLE.COM = {
kdc = kerberos.example.com:88
admin_server = kerberos.example.com:749
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
[root@localhost krb5kdc]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.31.10.133 kerberos.example.com