TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装指导
    • 开启 Kerberos
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • 实验室

    • VIEW插件
    • JIRA速查
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Kylin V10系列
    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 支持&共建

    • 蓝图愿景
    • 合作共建
登陆
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装指导
    • 开启 Kerberos
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • 实验室

    • VIEW插件
    • JIRA速查
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Kylin V10系列
    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 支持&共建

    • 蓝图愿景
    • 合作共建
登陆
GitHub (opens new window)
  • 步步为营

    • 适用于Rhel系列

      • Step1-KDC服务初始化安装
        • 一、前置准备与安装 krb5 服务组件
          • 1. 安装核心包
        • 二、修改 krb5.conf —— 定义安全域与服务端信息
          • 1. 重点修改项
          • 2. 修改说明
          • 3. 完整配置示例
        • 三、创建 KDC 数据库(核心初始化)
        • 四、启动并设置服务自启
        • 五、创建管理员账号与访问控制
        • 六、编辑 ACL 权限规则
        • 七、确认 kdc.conf 与 ACL 路径一致
        • 八、重启并验证服务运行
    • 适用于Ubuntu系列

    • Step2-Ambari中开启Kerberos认证
  • 踩坑合集

  • 组件安装-Kerberos
  • 步步为营
  • 适用于Rhel系列
JaneTTR
2025-10-31
目录

Step1-KDC服务初始化安装Rhel

温馨提示

本文内容在 Kylin V10 系统 下完成测试,RHEL/CentOS 系列系统在配置路径与命令格式上基本一致。 若在 Rocky、OpenEuler 等发行版上操作,请注意包名与路径可能略有不同。 如在部署中遇到问题,可联系作者共同探讨或反馈。 👉 联系入口在此页 (opens new window)

# 一、前置准备与安装 krb5 服务组件

Kerberos 的核心是 KDC(Key Distribution Center),相当于整个安全体系的“签发机构”。 任何服务、主机或用户要访问受保护的资源,都必须先通过它来获取凭证(Ticket)。

为什么要先部署 KDC?

Ambari 集群启用安全认证时,底层所有 Hadoop 组件(如 HDFS、YARN、Hive)都会与 KDC 通信。 如果 KDC 配置错误,后续 Ambari 的 Enable Kerberos Wizard 无法完成配置推送,整个集群会陷入半认证状态。

# 1. 安装核心包

yum install -y krb5-server krb5-libs krb5-workstation
1

image-20251103111310504

这三个包的作用如下:

软件包 作用说明
krb5-server 提供 KDC 服务端与管理端核心功能(包括 kadmind)
krb5-libs 系统运行所需的 Kerberos 基础库,客户端与服务端共享
krb5-workstation 提供客户端工具集,如 kinit、klist、kdestroy 等命令

小贴士:Debian/Ubuntu 系列的包名区别

在 Ubuntu 系统中,对应的安装命令为:

apt install krb5-kdc krb5-admin-server krb5-user -y
1

路径相同,但配置文件位于 /etc/krb5kdc/ 。可以参考Step1-KDC服务初始化安装-Ubuntu

# 二、修改 krb5.conf —— 定义安全域与服务端信息

KDC 的核心配置位于 /etc/krb5.conf,它定义了客户端、服务端、日志等信息。 我们需要对默认模板进行自定义修改。

vim /etc/krb5.conf
1

image-20251103111831314

# 1. 重点修改项

[libdefaults]
default_realm = TTBIGDATA.COM

[realms]
 TTBIGDATA.COM = {
  kdc = dev1
  admin_server = dev1
 }
1
2
3
4
5
6
7
8

# 2. 修改说明

  • default_realm 定义默认认证域(Realm),必须使用大写字母。 建议使用公司或团队的域名缩写,例如:TTBIGDATA.COM。

  • kdc 指定 KDC 服务器主机名。若使用 IP 地址,则必须与 /etc/hosts 一致。

  • admin_server 指定 Kerberos 管理服务(kadmind)所在主机,一般与 kdc 同机。

注意

不要保留示例配置 EXAMPLE.COM,否则后续 Ambari 推送配置时会报错: Cannot connect to KDC for realm EXAMPLE.COM

# 3. 完整配置示例

# 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
 default_realm = TTBIGDATA.COM
 default_ccache_name = KEYRING:persistent:%{uid}

[realms]
 TTBIGDATA.COM = {
  kdc = dev1
  admin_server = dev1
 }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

建议

  1. 若集群中有多台 KDC,可在 realms 中添加多条 kdc = hostX。
  2. 若 DNS 配置完善,可使用 FQDN(我的主机名就叫 dev1 所以我填这个,可以自己 hostname 查看)以避免主机名解析问题。

# 三、创建 KDC 数据库(核心初始化)

执行以下命令以创建 KDC 主数据库:

kdb5_util create -s
1

image-20251103112241400

系统将提示你输入并确认密码,该密码为 KDC 主密钥(Master Key), 与后续登录管理员账户无关,但请务必妥善保存,丢失后数据库将无法恢复。

常见问题

  1. 命令未找到:请确认 krb5-server 安装成功;
  2. 权限不足:需以 root 身份运行;
  3. 数据库路径不存在:默认路径 /var/kerberos/krb5kdc/。

创建完成后,会生成以下文件:

451b846486bf52e4207f061a706ff163

-rw------- 1 root root    78 Nov  3 11:22 .k5.TTBIGDATA.COM
-rw-r----- 1 root root    72 Nov  3 15:55 kadm5.acl
-rw------- 1 root root   453 Nov  3 14:46 kdc.conf
-rw------- 1 root root 32768 Nov  3 16:44 principal
-rw------- 1 root root  8192 Nov  3 11:22 principal.kadm5
-rw------- 1 root root     0 Nov  3 11:22 principal.kadm5.lock
-rw------- 1 root root     0 Nov  3 16:46 principal.ok
1
2
3
4
5
6
7

# 四、启动并设置服务自启

systemctl start krb5kdc
systemctl start kadmin
systemctl enable krb5kdc
systemctl enable kadmin
1
2
3
4

执行完成后,可通过以下命令检查状态:

systemctl status krb5kdc
systemctl status kadmin
1
2

若使用 Ubuntu

服务名称略有不同:

systemctl start krb5-kdc krb5-admin-server
1

# 五、创建管理员账号与访问控制

执行以下命令创建 KDC 管理员账户:

kadmin.local -q "addprinc admin/admin"
1

image-20251103113227648

输入密码后,系统会生成 Principal:

Principal "admin/admin@TTBIGDATA.COM" created.
1

此账户用于登录 kadmin 命令行工具,以管理后续服务账户和 keytab 文件。

温馨提示

我这里为了演示,我输入的密码是 admin,要与后续Ambari页面凭证保持统一

  • 凭证: admin/admin@TTBIGDATA.COM
  • 密码: admin

# 六、编辑 ACL 权限规则

KDC 使用 ACL 文件控制谁能执行管理操作。 默认文件路径:

vim /var/kerberos/krb5kdc/kadm5.acl
1

修改内容为:

*/admin@TTBIGDATA.COM   *
1

image-20251103141601954

ACL 权限语法说明

格式为:

principal permissions [target_principal] [restrictions]
1

例如:

admin/admin@TTBIGDATA.COM  *
1

表示拥有所有权限。 若想只允许添加用户,可使用:

*/admin@TTBIGDATA.COM   a
1

# 七、确认 kdc.conf 与 ACL 路径一致

查看 kdc.conf:

cat /var/kerberos/krb5kdc/kdc.conf
1
[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 TTBIGDATA.COM = {
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  permitted_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal
 }
1
2
3
4
5
6
7
8
9
10
11

image-20251103144745480

确认路径与 ACL 文件匹配,否则 kadmind 启动会报:

Cannot open ACL file /var/kerberos/krb5kdc/kadm5.acl
1

# 八、重启并验证服务运行

重启 KDC 与管理服务:

sudo systemctl restart krb5kdc || sudo service krb5kdc restart
sudo systemctl restart kadmin  || sudo service kadmin restart
1
2

验证:

kinit admin/admin@TTBIGDATA.COM
# 输入完密码后
klist
1
2
3

若能看到下面内容,说明配置成功。

89b6da3ac5e1f802d6733d4e0fcf1176

#Ambari#Kerberos#KDC#安全认证#集群部署#大数据安全
Step1-KDC服务初始化安装

Step1-KDC服务初始化安装→

最近更新
01
Ambari开启Kerberos认证加密类型错误 Kylin V10
11-05
02
KERBEROS SERVICE CHECK 报错
11-04
03
Test Kerberos Client报错:Failed to kinit
11-04
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式