首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openldap + kerberos -无法访问领域中的任何KDC

openldap + kerberos -无法访问领域中的任何KDC
EN

Stack Overflow用户
提问于 2014-11-21 11:17:31
回答 3查看 12.2K关注 0票数 4

我在centos虚拟机中设置了ldap服务器+ kerberos (使用boot2docker虚拟机运行),并尝试将它们用于我的web应用程序身份验证(从主机-我的macbook)。

对于身份验证,我需要使用"GSSAPI“机制,而不是简单的绑定。“简单绑定”运行良好,但基于"GSSAPI“的方法不起作用。

每当我尝试" ldapwhoami“命令时,我都会得到以下错误(我在运行ldapwhoami之前运行了'kinit‘,以确保我拥有有效的kerberos TGT)

代码语言:javascript
复制
ldap_sasl_interactive_bind_s: Local error (-2)
    additional info: SASL(-1): generic failure: GSSAPI Error:  Miscellaneous failure (see text (unable to reach any KDC in realm DEV.EXAMPLE.COM, tried 1 KDC)

请注意,LDAP服务器和kerberos服务器端工作得很好,这意味着我在centos VM中使用"ldapsearch“、"ldapwhoami”之类的东西对它们进行了测试,这是我的ldap服务器+ kerberos设置的地方,它工作得很好。我能够看到它们的适当输出。

只有当我尝试从我的笔记本电脑(客户端)执行相同的命令时,我才会收到错误(上面的错误)。

注意:即使我从我的笔记本电脑创建了主机主体( host /mymacbook.dev@DEV.EXAMPLE.COM),并使用'kadmin‘将其添加到我的本地krb5.keytab文件中。

下面是我的客户端配置:

客户端(Macbook)中的/etc/krb5.conf文件:

代码语言:javascript
复制
[libdefaults]
  default_realm    = DEV.EXAMPLE.COM
  ticket_lifetime  = 24000
  dns_lookup_realm = false
  dns_lookup_kdc   = false

[realms]
  DEV.EXAMPLE.COM = {
    kdc = d4dc7089282c
    admin_server = krb.example.com
  }

[domain_realm]
  .dev.example.com = DEV.EXAMPLE.COM
  dev.example.com = DEV.EXAMPLE.COM
  .example.com = DEV.EXAMPLE.COM
  example.com = DEV.EXAMPLE.COM

[appdefaults]
  pam = {
    debug           = false
    ticket_lifetime = 36000
    renew_lifetime  = 36000
    forwardable     = true
    krb4_convert    = false
  }

[logging]
    kdc = FILE:/var/log/krb5kdc.log
    admin_server = FILE:/var/log/kadmin.log

客户端(Macbook)中的/etc/hosts文件:

代码语言:javascript
复制
127.0.0.1       localhost
192.168.59.3    mymacbook.dev
255.255.255.255 broadcasthost
::1             localhost


192.168.59.103  ldapserver.example.com
192.168.59.103  d4dc7089282c
192.168.59.103  krb.example.com

192.168.59.103是我的boot2docker vm ip,我在与boot2docker和kerberos相关的所有默认端口( 88、389、464和749)上执行从LDAP到扩展坞镜像的端口转发

你知道为什么我会得到这个错误吗?

代码语言:javascript
复制
ldap_sasl_interactive_bind_s: Local error (-2)
        additional info: SASL(-1): generic failure: GSSAPI Error:  Miscellaneous failure (see text (unable to reach any KDC in realm DEV.EXAMPLE.COM, tried 1 KDC)

它与DNS或其他什么相关吗?有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-25 08:00:47

要使容器化的KDC能够从外部访问,您需要多个东西。

假设您正在使用端口88,因为这是默认端口,并且还假设您的映像名为docker-kdc。

  1. 确保您的端口88已暴露。

EXPOSE 88

  1. 确保您的KDC守护进程侦听该端口。对于这个示例,我只是简单地使用KDC作为入口点,如果这不适用于您的特定示例,您应该能够推断。

ENTRYPOINT ["/usr/lib/heimdal-servers/kdc", "--config-file=/etc/heimdal-kdc/kdc.conf", "-P 88"]

  1. 在运行容器时,我使用端口转发到48088。请注意,KDC同时使用TCP和UDP.

docker run -d -h kdc --name kdc -p 48088:88/udp -p 48088:88 docker-kdc

从现在开始,您的KDC应该可以从主机系统内访问了。

仅限=== OSX ===

考虑到您使用的是OSX (boot2docker -> VirtualBox),您现在还需要设置到OSX environment.的端口转发

VBoxManage controlvm boot2docker-vm natpf1 "48088/tcp,tcp,127.0.0.1,48088,,48088"

VBoxManage controlvm boot2docker-vm natpf1 "48088/udp,udp,127.0.0.1,48088,,48088"

  1. 根据需要获取停靠容器的IP地址。

代码语言:javascript
复制
- When using plain docker (on linux), you can simply use the loopback `127.0.0.1`.
- When using boot2docker (on OSX), you will get that using: `boot2docker ip`

krb5.conf准备一个使用

  1. 的最小krb5.conf。出于本例的目的,我在域example.com上使用一个名为EXAMPLE.COM的领域。请注意,您必须使用步骤5的结果替换IP。

库默认值

default_realm = EXAMPLE.COM无地址= true

领域

EXAMPLE.COM ={ kdc = IP:48088 admin_server = IP:48088 }

domain_realm

example.com = EXAMPLE.COM .example.com = EXAMPLE.COM

现在,请继续测试configuration.和

export KRB5_CONF=PATH_TO_THE_KRB5.CONF_FILE_FROM_STEP_6

kinit test/foo.example.com@EXAMPLE.COM

由于我必须为我的一个项目执行此操作,因此我将其打包到一些小脚本中,这可能会对您的进一步研究有所帮助;https://github.com/tillt/docker-kdc

票数 4
EN

Stack Overflow用户

发布于 2017-02-15 01:18:24

在MacOS上,默认客户端不会回退到TCP。在您的krb.conf中,在kdc前加上TCP,以便在您的网络阻止tcp/流量时强制客户端使用TCP(一些网络管理员可能会这样做)。

代码语言:javascript
复制
kdc = tcp/ds01.int.domain.com:88
票数 6
EN

Stack Overflow用户

发布于 2017-01-13 05:12:06

确保krb5.conf文件位于/etc目录中。我有同样的问题,没有防火墙问题,仍然得到同样的错误。最后,我能够通过将krb5.conf文件移动到/etc目录来修复这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27053539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档