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

Aru*_*run 4 kerberos ldap openldap docker kdc

我在centos vm中有一个ldap服务器+ kerberos设置(使用boot2docker vm运行),并且我试图将它们用于我的Web应用程序身份验证(从主机-我的macbook)。

对于身份验证,我需要使用“ GSSAPI”机制,而不是简单的绑定。'简单绑定'可以正常工作,但是基于“ GSSAPI”的方法不能正常工作。

每当我尝试使用“ ldapwhoami”命令时,都会出现以下错误(我在运行ldapwhoami之前运行“ kinit”以确保我拥有有效的kerberos TGT)

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)
Run Code Online (Sandbox Code Playgroud)

请注意,LDAP服务器和kerberos服务器端运行正常,这意味着我在centos VM中使用了“ ldapsearch”,“ ldapwhoami”之类的东西对其进行了测试,其中我安装了ldap服务器+ kerberos,它的工作正常。我能够看到适合他们的输出。

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

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

以下是我的客户端配置:

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

[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
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

192.168.59.103是我的boot2docker vm ip,我正在从boot2docker vm到与LDAP和kerberos(88、389、464和749)相关的所有默认端口上的端口转发到docker映像

知道为什么我会收到此错误吗?

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)
Run Code Online (Sandbox Code Playgroud)

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

Jen*_*man 6

在MacOS上,默认客户端不会退回到TCP。tcp/如果您的网络阻止了UPD流量,则在krb.conf中用kdc作为前缀,以强制客户端使用TCP(某些网络管理员可能这样做)。

kdc = tcp/ds01.int.domain.com:88
Run Code Online (Sandbox Code Playgroud)