我正在为我的学校开发网站。在那所学校,我们通过LDAP验证用户,所以有一个想法可以通过学校网站进行。在那个网站上,一切都很完美,但是在开发过程中,我经常需要测试这样的解决方案是否有效,而不是。为了不经常提交我的更改,我想在本地计算机上测试此网站,但为了连接LDAP,我想使用ssh隧道。在学校网络中,我们有一台通过女巫的服务器,我们正在与我们的学校网络内部进行连接。它的地址是phoenix.lo5.bielsko.pl
。在这个网络内部,我们有LDAP服务器,打开了389和636个端口。它的地址是auth.lo5
。我无法通过SSH访问auth.lo5
,我只能使用它连接以获取一些LDAP条目。所以,我试图通过运行运行SSH隧道:PHP通过SSH隧道连接到其他网络中的LDAP
ssh -L 636:auth.lo5:636 [email protected]
然后,我在/etc/hosts
是auth.lo5
指向127.0.0.1
已设置。我连接到LDAP在PHP这样的方式:
ldap_connect('ldaps://auth.lo5', 636);
但我发现了错误Can't contact LDAP server
。我认为,这个问题可能在phoenix.lo5.bielsko.pl
的SSH守护进程配置中或传递给ldap_connect()
函数的参数上。你能告诉我,我应该在sshd_config或传递给ldap_connect
的参数中设置它以使其工作?
我在similar thread中发布了相同的问题,但没有人回答我的问题。
P.S.在我/etc/ssh/sshd_config
我行AllowTcpForwarding yes
如果您使用LDAP命令行工具,它们是否工作?首先尝试使用'ldapwhoami -H ldaps:// auth.lo5' - PHP不报告与命令行LDAP实用程序一样多的有用信息。 – Borealid 2010-07-25 15:47:59
@Borealid,我们的LDAP服务器不允许匿名绑定,所以我输入了'ldapwhoami -D cn = lo5-www,ou = services,dc = auth,dc = lo5 -W -H ldaps:// auth .lo5'和凤凰答案是'dn:cn = lo5-www,ou = services,dc = auth,dc = lo5',但是在我的桌面上其'ldap_sasl_bind(SIMPLE):无法联系LDAP服务器(-1 )' – Hfaua 2010-07-25 16:23:33
在命令行工具工作之前,你的SSH隧道没有启动。由于你使用的命令是专用的(并且,老实说,我印象深刻*你知道如何做到这一点 - SSH隧道很复杂!),我只有一个建议。尝试使用本地端口的非特权端口(高于1024)(例如,'ssh -L 9999:auth.lo5.bielsko.pl:636')。还要指定一个FQDN!不过,使用命令行工具进行测试。并确保他们从phoenix.lo5工作到auth.lo5! – Borealid 2010-07-25 23:51:37