用ldapsearch查询Samba AD服务器失败,并显示ldap_sasl_bind(SIMPLE):无法联系LDAP服务器(-1)

时间:2019-01-07 16:55:09

标签: active-directory ldap samba xwiki

我正在尝试利用现有的(已完全配置且可以正常运行的)Samba AD DC作为XWiki和其他应用程序的身份验证。

因此,我首先尝试从XWiki服务器成功完成ldapsearch。 以下命令在Samba服务器上有效,但在XWiki客户端上无效:

ubuntu@xwiki:~$ ldapsearch -x -LLL -E pr=200/noprompt -H ldaps://10.0.1.191/ -D "CN=Administrator,CN=Users,DC=ad,DC=nitssolutions,DC=com" -w 'SambaNovi2018' -b 'DC=ad,DC=nitssolutions,DC=com' -s sub '(sAMAccountName=*)' cn mail memberOf
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

但是,如果我这样做:

ping 10.0.1.191

我得到:

ubuntu@xwiki:~$ ping 10.0.1.191
PING 10.0.1.191 (10.0.1.191) 56(84) bytes of data.
64 bytes from 10.0.1.191: icmp_seq=1 ttl=64 time=135 ms
64 bytes from 10.0.1.191: icmp_seq=2 ttl=64 time=138 ms
64 bytes from 10.0.1.191: icmp_seq=3 ttl=64 time=146 ms
^C
--- 10.0.1.191 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 135.741/140.317/146.970/4.832 ms

如果我这样做:

telnet 10.0.1.191 636

我可以连接。

编辑:附加信息:

我在-d 1命令行中添加了ldapsearch,现在我得到了:

ubuntu@xwiki:~$ ldapsearch -d 1 -x -LLL -E pr=200/noprompt -H ldaps://10.0.1.191/ -D "CN=Administrator,CN=Users,DC=ad,DC=nitssolutions,DC=com" -w 'SambaNovi2018' -b 'DC=ad,DC=nitssolutions,DC=com' -s sub '(sAMAccountName=*)' cn mail memberOf
ldap_url_parse_ext(ldaps://10.0.1.191/)
ldap_create
ldap_url_parse_ext(ldaps://10.0.1.191:636/??base)
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP 10.0.1.191:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 10.0.1.191:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
attempting to connect:
connect success
TLS: peer cert untrusted or revoked (0x42)
TLS: can't connect: (unknown error code).
ldap_err2string
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

请特别注意这一行:

TLS: peer cert untrusted or revoked (0x42)

我将尝试进一步研究此错误,但到目前为止,我仍然陷于困境...

EDIT2:更多其他信息:

当我在Samba服务器上使用-d 1参数运行此命令时,尽管有以下命令,该命令仍然有效:

TLS: peer cert untrusted or revoked (0x42)

在调试输出中。...

继续挖掘……。

帮助?

1 个答案:

答案 0 :(得分:0)

我走了,再次回答我自己的问题。我应该经常在这里发帖。帮助我清楚地指出问题所在,这不可避免地导致找到解决方案。

无论如何,解决方案是: 我的sambadc机器和xwiki客户端机器上都有一个文件/etc/ldap/ldap.conf,但是内容有所不同。 sambadc机器具有:

#
# LDAP Defaults
#

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

#BASE   dc=example,dc=com
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666

#SIZELIMIT      12
#TIMELIMIT      15
#DEREF          never

# TLS certificates (needed for GnuTLS)
#TLS_CACERT     /etc/ssl/certs/ca-certificates.crt
TLS_REQCERT allow

曾工作过。

但是,我的xwiki机器具有:

#
# LDAP Defaults
#

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

#BASE   dc=example,dc=com
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666

#SIZELIMIT      12
#TIMELIMIT      15
#DEREF          never

# TLS certificates (needed for GnuTLS)
TLS_CACERT     /etc/ssl/certs/ca-certificates.crt

失败了。

当我注释掉TLS_CACERT行并添加了TLS_REQCERT行时,一切都按预期开始工作。