部署配置KDC服务
- DNF安装krb5-server、krb5-workstation
sudo dnf install krb5-server krb5-workstation -y
- 配置krb5.conf
sudo vi /etc/krb5.conf
# 包含额外的配置文件目录 includedir /etc/krb5.conf.d/ [logging] # 通用 Kerberos 库操作的日志文件 default = FILE:/var/log/krb5libs.log # KDC 活动的日志文件 kdc = FILE:/var/log/krb5kdc.log # 管理服务器操作的日志文件 admin_server = FILE:/var/log/kadmind.log [libdefaults] # 禁用对领域名称的 DNS 查找 dns_lookup_realm = false # 设置票据的默认有效期为 24 小时 ticket_lifetime = 24h # 设置票据续期的最大有效期为 7 天 renew_lifetime = 7d # 允许票据被转发 forwardable = true # 禁用反向 DNS 查找 rdns = false # 指定 PKINIT 证书链的 CA 包的路径 pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt # 使用 edwards25519 组进行 SPAKE 预身份验证 spake_preauth_groups = edwards25519 # 指定DNS主机名规范化的行为 dns_canonicalize_hostname = fallback # 短名称的后缀 qualify_shortname = "" # 默认领域 default_realm = KFK.COM # 默认凭证缓存名称,使用用户 ID default_ccache_name = KEYRING:persistent:%{uid} [realms] # 定义 Kerberos 领域及其相关服务器 EXAMPLE.COM = { kdc = jd-lavm admin_server = jd-lavm } [domain_realm] # 定义域名与 Kerberos 领域的映射 .kfk.com = KFK.COM kfk.com = KFK.COM
3.配置kdc.conf
[kdcdefaults] # KDC 使用的端口号 kdc_ports = 88 # KDC 使用的 TCP 端口号 kdc_tcp_ports = 88 # 指定用于 SPAKE 预认证的 KDC 挑战算法 spake_preauth_kdc_challenge = edwards25519 [realms] KFK.COM = { # 指定主密钥类型为 AES256 master_key_type = aes256-cts-hmac-sha384-192 # 指定访问控制列表文件的位置 acl_file = /var/kerberos/krb5kdc/kadm5.acl # 指定用于字典攻击防护的字典文件 dict_file = /usr/share/dict/words # 默认主用户标志,启用预认证 default_principal_flags = +preauth # 指定管理员 keytab 文件的位置 admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab # 支持的加密类型及其使用模式 supported_enctypes = aes256-cts-hmac-sha384-192:normal aes128-cts-hmac-sha256-128:normal aes256-cts-hmac-sha1-96:normal aes128-cts-hmac-sha1-96:normal camellia256-cts-cmac:normal camellia128-cts-cmac:normal arcfour-hmac-md5:normal # 支持的加密类型(FIPS 模式下): # Supported encryption types for FIPS mode: #supported_enctypes = aes256-cts-hmac-sha384-192:normal aes128-cts-hmac-sha256-128:normal }
4.配置kadm5.acl (Kerberos 访问控制列表(ACL)文件,用于控制对 Kerberos 管理服务的访问权限)
*/[email protected] *
5.初始化KDC数据库
kdb5_util create -s -r KFK.COM
6.启动Kerberos服务
sudo systemctl start krb5kdc kadmin sudo systemctl enable krb5kdc kadmin sudo systemctl status krb5kdc kadmin
创建ZooKeeper、Kafka认证所需的keytab
- 进入Kerberos管理员界面配置keytab
# 打开Kerberos管理工具 kadmin.local # 添加主体,名称为kafka/[email protected],并且为其生成一个随机密钥 add_principal -randkey kafka/[email protected] add_principal -randkey zookeeper/[email protected] # 导出密钥到keytab文件 xst -k /usr/local/kafka/config/kraft/keytab/kafka.keytab kafka/[email protected] xst -k /usr/local/kafka/config/kraft/keytab/zookeeper.keytab zookeeper/[email protected] # 列出所有主体 listprincs
- 命令方式创建
kadmin.local -q "add_principal -randkey kafka/[email protected]" kadmin.local -q "add_principal -randkey zookeeper/[email protected]" kadmin.local -q "xst -k /usr/local/kafka/config/kraft/keytab/kafka.keytab kafka/[email protected]" kadmin.local -q "xst -k /usr/local/kafka/config/kraft/keytab/zookeeper.keytab zookeeper/[email protected]" kadmin.local -q "listprincs"
Comments NOTHING