【问题标题】:Service principal name changes in kerberoskerberos 中的服务主体名称更改
【发布时间】:2017-08-23 20:28:23
【问题描述】:

不确定发生了什么,因为这里有多个活动部件。 我们有一个用于 hdfs、hadoop、impala、hbase 的 cloudera 集群。我们所有的 impala 服务器前面还有一个 F5 负载均衡器。我们正在尝试使用 Kerberos 保护服务器/集群。我的同事使用 MIT KDC 设置了 Kerberos。当我们直接向服务器查询 impala 时,此设置可以正常工作,但当我们通过 F5 负载平衡器时则不行。

我们已经运行 kinit 来获取预先创建的 keytab 文件的票证。

kinit -k -t /blah/keytabs/first.last.keytab first.last

当我运行klist 时,它会显示所有这些票:

$ klist
Ticket cache: FILE:/tmp/krb5cc_14377
Default principal: first.last@MADEUPNAME

Valid starting     Expires            Service principal
08/23/17 11:32:02  08/24/17 11:32:02  krbtgt/MADEUPNAME@MADEUPNAME
    renew until 08/23/17 11:32:02
08/23/17 11:33:39  08/24/17 11:32:02  impala/hslave32101.company.com@MADEUPNAME
    renew until 08/23/17 11:32:02

当我运行 impala-shell 命令时,它运行良好:

$ impala-shell -i hslave32101.company.com:21000 -k -q "select 1"
Starting Impala Shell using Kerberos authentication
Using service name 'impala'
Connected to hslave32101.company.com:21000
Server version: impalad version 2.7.0-cdh5.9.2 RELEASE (build 2f7871169d894fab16f8a2fb99f2e34f0df8763d)
Query: select 1
Query submitted at: 2017-08-23 13:08:34 (Coordinator: http://hslave32101.company.com:25000)
Query progress can be monitored at: http://hslave32101.company.com:25000/query_plan?query_id=4940ca8ca2f267c5:5eeb29af00000000
+---+
| 1 |
+---+
| 1 |
+---+
Fetched 1 row(s) in 0.01s

但是,当我通过 F5 负载均衡器运行命令时,它不起作用,因为它正在寻找的票证与 klist 中的票证不匹配,因为它出于某种原因替换了其中的一部分。

impala-shell -i bdaudit.company.com:21000 -d bigdata -k -q "select 1"
Starting Impala Shell using Kerberos authentication
Using service name 'impala'
Error connecting: TTransportException, Could not start SASL: Error in sasl_client_start (-1) SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure.  Minor code may provide more information (Server krbtgt/COMPANY.COM@MADEUPNAME not found in Kerberos database)
Not connected to Impala, could not execute queries.

问题出在这一行

(Server krbtgt/COMPANY.COM@MADEUPNAME not found in Kerberos database)

不知何故,当通过 F5 VIP 时,它会将 first.last@MADEUPNAME 更改为 COMPANY.COM@MADEUPNAME。有谁知道为什么它取代了这部分票?

【问题讨论】:

  • 1/2 “我的同事使用 MIT KDC 设置了 Kerberos。当我们直接向服务器查询 impala 时,此设置工作正常,但当我们通过 F5 负载平衡器时却不行。” --> 所以,只是一个简单的问题。 F5 是配置为传递到您的应用服务器还是配置为反向代理?我认为它必须配置为直通负载平衡器才能使 Kerberos 工作,否则身份验证流量将在 F5 停止并丢弃,而无需在 F5 进行进一步配置。我在这里进行有根据的猜测。
  • 2/2 "但是,当我通过 F5 负载均衡器运行命令时,它不起作用,因为它正在寻找的票证与 klist 中的票证不匹配,因为它替换了其中的一部分原因...不知何故,当通过 F5 VIP 时,它会更改 first.last@MADEUPNAME 为 COMPANY.COM@MADEUPNAME。有人知道它为什么替换了这部分票吗? --> 这些陈述似乎证实了您的 F5 正在充当黑斑羚的反向代理。你能确认或否认这一点吗?如果没有在 F5 上进行进一步配置,我认为它不会工作。
  • @T-Heron,感谢您对我的问题感兴趣。 F5 设置为直通。在找到 Cloudera 的有关如何执行此操作的文档后,我们得到了它的工作。我们仍然不知道为什么错误中的名称发生了变化,除了预感 KDC 试图找到一些名为 bdaudit.company.com 的资源之外,由于资源是 hslave33333.company.com 并且由于某种原因而无法找到,将名称截断为 company.com@MADEUPNAME

标签: authentication kerberos cloudera f5


【解决方案1】:

从 Cloudera 关于如何使用 F5 here 和 here 设置 Impala 的说明中找到原因

这是 PDF 中的 sn-p:

In Cloudera Manager, navigate to the Impala service, select the Configuration pane, then search for “balancer” to
find the Impala Daemons Load Balancer parameter. The load balancer should be specified in host:port format,
where host is your virtual server’s FQDN and port. These values are used by Cloudera Manager and are also passed
to Hue

If the Impala Daemons Load Balancer parameter is specified and Kerberos is enabled, Cloudera Manager adds a
principal for 'impala/<load_balancer_host>@<realm>' to the keytab for all Impala daemons. No additional
configuration is required for Kerberos.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 2019-05-04
    • 1970-01-01
    相关资源
    最近更新 更多