什么原因可能导致 LDAP 拒绝部分但不是全部来源的连接?(不是防火墙)

什么原因可能导致 LDAP 拒绝部分但不是全部来源的连接?(不是防火墙)

我正在将服务器迁移到新的基础设施,必须重新设置 LDAP。它不用于访问服务器,而是作为我们网站上的用户存储库,供我们的 BI 平台访问。

LDAP 已启动并运行,我可以从办公室的计算机使用 LDAP 管理员进行连接和绑定,不用担心。

我无法让 Drupal(在同一台服务器上)或 YellowFin(位于同一集群的不同服务器上的 Java 应用程序)进行绑定。我很确定它们正在连接,但没有绑定,而且我在这三个地方使用的凭据完全相同。

我从 Drupal 得到的唯一错误是:

Failed to bind to server. ldap error #82 Success

Yellowfin 提供了更多信息(我认为是;识别数据已删除):

  YF:2015-05-08 01:54:26:DEBUG (LDAPUtil:createConnection) - Opening connection to xx.xx.xx.xx on port 636
  YF:2015-05-08 01:54:26:DEBUG (JNDILDAPProvider:authenticate) - Connecting: ldaps://xx.xx.xx.xx:636
  YF:2015-05-08 01:54:26:DEBUG (JNDILDAPProvider:authenticate) - User: cn=admin,dc=xxxxxxxxxxx,dc=com,dc=au
  YF:2015-05-08 01:54:26:ERROR (LDAPUtil:createConnection) - LDAP authentication failed
  YF:2015-05-08 01:54:26:ERROR (LDAPUtil:createConnection) - LDAP authentication failed
  YF:2015-05-08 01:54:26:ERROR (LDAPUtil:testConnection) - LDAP connection failed
  YF:2015-05-08 01:54:26:DEBUG (DSTCache:getJavaTimeZoneID) - Invalid TimeZoneCode passed. Value was ASIA/ABU_DHABI
  YF:2015-05-08 01:54:27:DEBUG (MIImageAction:execute) - MIImageAction entered

我想知道时区错误是否是一个问题?

slapd服务正在监听所有IP的636端口,相关netstat结果:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:636             0.0.0.0:*               LISTEN      9150/slapd
tcp6       0      0 :::636                  :::*                    LISTEN      9150/slapd

我们正在使用 AWS,并且我尝试在端口 636 上完全打开安全组(防火墙),但没有结果。

ldap.conf 如下所示:

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE    dc=intermedium,dc=com,dc=au
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666
URI ldap://127.0.0.1 ldaps://xxxxxxxxxxxxxxxxx

#SIZELIMIT  12
#TIMELIMIT  15
#DEREF      never

TLS_CACERTDIR   /etc/openldap/certs
  TLSCACertificateFile /etc/pki/tls/certs/xxxxxxxxxxxxxxxxx.ca-bundle
  TLSCertificateFile /etc/pki/tls/certs/xxxxxxxxxxxxxxxxx.crt
  TLSCertificateKeyFile /etc/pki/tls/certs/xxxxxxxxxxxxxxxxx.key
TLS_REQCERT allow
REFERRALS off

# Turning this off breaks GSSAPI used with krb5 when rdns = false
#SASL_NOCANON   on

slapd.conf 如下所示:

# OpenLDAP server configuration
# see 'man slapd' for additional information

# Where the server will run (-h option)
# - ldapi:/// is required for on-the-fly configuration using client tools
#   (use SASL with EXTERNAL mechanism for authentication)
# - default: ldapi:/// ldap:///
# - example: ldapi:/// ldap://127.0.0.1/ ldap://10.0.0.1:1389/ ldaps:///
SLAPD_URLS="ldapi:/// ldaps:///"

# Any custom options
#SLAPD_OPTIONS=""

# Keytab location for GSSAPI Kerberos authentication
#KRB5_KTNAME="FILE:/etc/openldap/ldap.keytab"

如有任何建议,我将非常感激。

答案1

非常感谢@strongline 和@Craig Miskell 为我指明方向,最后我发现了两个不同的错误,我会把它们放在这里,以防别人觉得有用。

Drupal:

绑定失败是因为源站点启用了 Blowfish 加密,而目标服务器没有安装 php-mcrypt mod,即使我更新了密码,它仍然尝试使用 Blowfish 加密作为绑定密码。安装 php-mcrypt 解决了这个问题。

YellowFin (Java):

YellowFin 需要 Java Keystore 中的 LDAP 服务器证书和证书链。要修复此问题,请找到或为 LDAP 服务器创建证书,然后按照这个 Stack Overflow 上的答案

答案2

关于 Java 应用程序的时区问题,不要让 Kava 在 Linux 上确定自己的时区。请改用 TZ。我已在博客中进一步讨论了这个问题http://distracted-it.blogspot.co.nz/2014/09/dont-let-java-on-linux-determine-its.html

相关内容