TT Bigdata TT Bigdata
首页
GitHub (opens new window)
JaneTTR

JaneTTR

数据酿造智慧,每一滴都是沉淀!
  • Ambari 安装

  • 组件安装

  • Kerberos 旧版专题

    • 实战 Kerberos
    • 自建 Kerberos

    • FreeIPA 认证

      • FreeIPA服务端初始化

      • FreeIPA客户端初始化及Ambari开启IPA认证

        • [Step1]-FreeIPA Client 安装与入域实战
        • [Step2]-FreeIPA 初始化核心用户
        • [Step3]-Ambari 中开启 Kerberos 认证流程详解
        • [Step3-1]-krb5-conf template调整
          • 一、为什么 krb5-conf 必须调整?
            • 1.Ranger 高可用场景 SPN 不统一
            • 2.开启 Kerberos 流程无法通过(Fatal)
          • 二、问题根源:Kerberos 主机名解析机制
          • 三、源码级修复(推荐方式)
            • 3.1 修改 krb5_conf.j2 模板
            • 3.2 在 [libdefaults] 中追加两行
            • 3.3 修改后的完整关键段落
          • 四、生产环境如何处理?
      • 部分踩坑-问题发现

      • 部分踩坑-完美解决

      • 辅助测试

    • 其他优化技巧

    • 部分组件踩坑合集

    • 实战技巧

    • 其他技巧

  • Ranger 旧版专题

  • 旧版部署
  • Kerberos 旧版专题
  • FreeIPA 认证
  • FreeIPA客户端初始化及Ambari开启IPA认证
JaneTTR
2026-02-14
目录
一、为什么 krb5-conf 必须调整?
1.Ranger 高可用场景 SPN 不统一
2.开启 Kerberos 流程无法通过(Fatal)
二、问题根源:Kerberos 主机名解析机制
三、源码级修复(推荐方式)
3.1 修改 krb5_conf.j2 模板
3.2 在 [libdefaults] 中追加两行
3.3 修改后的完整关键段落
四、生产环境如何处理?

[Step3-1]-krb5-conf template调整不改报错

需要 ttr-release 版本 >= 2.2.3

Ambari 3.0.0 + Free IPA 统一认证体系 示例环境:Kylin V10 SP3 x86,Realm = TEST.COM

# 一、为什么 krb5-conf 必须调整?

在 FreeIPA 环境下,如果 Ambari 使用默认的 krb5_conf.j2 模板,不进行调整,会产生两个典型问题:

# 1.Ranger 高可用场景 SPN 不统一

  • 节点解析 FQDN 时发生反向解析
  • Kerberos 自动 canonicalize hostname
  • 最终生成的 SPN 与预期不一致
  • Ranger Admin / Plugin 通信报错

# 2.开启 Kerberos 流程无法通过(Fatal)

在 Ambari 启用 Kerberos 流程中:

  • Principal 创建成功
  • 但服务校验失败
  • 流程中断

本质原因: Kerberos 主机名解析行为与 FreeIPA 期望不一致。

结论

在 FreeIPA 场景下,不修改 krb5-conf 模板属于致命隐患。

# 二、问题根源:Kerberos 主机名解析机制

默认情况下:

rdns = true
dns_canonicalize_hostname = true
1
2

行为:

  1. Kerberos 会进行反向 DNS 解析
  2. 自动 canonicalize hostname
  3. SPN 可能被改写

例如:

HTTP/[email protected]
1

可能被解析成:

HTTP/[email protected]
1

导致认证失败。

# 三、源码级修复(推荐方式)

# 3.1 修改 krb5_conf.j2 模板

源码路径:

ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/KERBEROS/properties/krb5_conf.j2
1

如下图所示:

image-20260214213036825

# 3.2 在 [libdefaults] 中追加两行

rdns = false
dns_canonicalize_hostname = false
1
2

# 3.3 修改后的完整关键段落

[libdefaults]
  forwardable = true
  default_realm = {{ realm }}
  ticket_lifetime = 24h
  dns_lookup_realm = false
  dns_lookup_kdc = false
  rdns = false
  dns_canonicalize_hostname = false
  default_ccache_name = /tmp/krb5cc_%{uid}
1
2
3
4
5
6
7
8
9

完整模板示例:

[libdefaults]
  forwardable = true
  default_realm = {{ realm }}
  ticket_lifetime = 24h
  dns_lookup_realm = false
  dns_lookup_kdc = false
  rdns = false
  dns_canonicalize_hostname = false
  default_ccache_name = /tmp/krb5cc_%{uid}

[realms]
  {{ realm }} = {
    admin_server = {{ admin_server_host }}
  }
1
2
3
4
5
6
7
8
9
10
11
12
13
14

笔记

源代码修改完毕后,重新编译、部署安装即可

# 四、生产环境如何处理?

如果已经是生产环境,不方便重新编译,可以直接通过 Ambari Web UI 修改 krb5-conf 模板。

步骤:

  1. 进入 Ambari → Kerberos → Advanced krb5-conf
  2. 找到 [libdefaults] 段
  3. 添加:
rdns = false
dns_canonicalize_hostname = false
1
2

界面如下:

image-20260214213245951

保存后重新部署 Kerberos 配置。

#Kerberos#安全认证#FreeIPA#Ranger#Ambari
[Step3]-Ambari 中开启 Kerberos 认证流程详解
Ambari Server 启动失败:no valid keystore

← [Step3]-Ambari 中开启 Kerberos 认证流程详解 Ambari Server 启动失败:no valid keystore→

最近更新
01
当前版本 2026/08
08-29
02
把 Ambari Server HA 稳稳地跑起来
08-17
03
从一次启用操作追到主备就绪
08-17
更多文章>
Theme by Vdoing | Copyright © 2017-2026 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式