gpt4 book ai didi

PHP 通过 SSH 隧道连接到其他网络中的 LDAP

转载 作者:可可西里 更新时间:2023-11-01 12:39:01 25 4
gpt4 key购买 nike

我正在为我的学校开发网站。在那所学校,我们通过 LDAP 对用户进行身份验证,因此有一个通过学校站点进行相同操作的想法。在该站点上,一切都运行良好,但在开发过程中,我需要经常测试这种解决方案是否有效。为了不那么频繁地提交我的更改,我想在我的本地计算机上测试这个站点,但是为了与 LDAP 连接,我想使用 ssh 隧道。在学校网络中,我们通过我们在学校网络内部连接的女巫拥有一台服务器。它的地址是 phoenix.lo5.bielsko.pl。在这个网络中,我们有 LDAP 服务器打开了 389 和 636 端口。它的地址是auth.lo5。我无权通过 SSH 访问 auth.lo5,我只能连接它以获取一些 LDAP 条目。所以,我尝试通过运行来运行 SSH 隧道:

ssh -L 636:auth.lo5:636 hfaua@phoenix.lo5.bielsko.pl

然后,我在我的 /etc/hosts 中设置 auth.lo5 指向 127.0.0.1。我以这种方式连接到 PHP 中的 LDAP:

ldap_connect('ldaps://auth.lo5', 636);

但我收到错误消息无法联系 LDAP 服务器。我认为,该问题可能出在 phoenix.lo5.bielsko.pl 的 SSH 守护程序配置中或传递给 ldap_connect() 函数的参数中。你能告诉我,我应该在 sshd_config 或传递给 ldap_connect 的参数中设置什么才能使其正常工作吗?

我在 similar thread 中发布了同样的问题, 但没有人回答我的问题。

附言在我的 /etc/ssh/sshd_config 我有一行 AllowTcpForwarding yes

最佳答案

如果我没记错的话,phoenix.lo5 和 auth.lo5 是两台不同的机器。如果是这样,您必须创建到 ssh 机器的隧道,然后将 ldap 查询发送到正确的机器。

你的命令:ssh -L 636:auth.lo5:636 hfaua@phoenix.lo5.bielsko.pl 是正确的,如果 phoenix.lo5.bielsko.pl 可以通过 DNS 或/etc/hosts 解析 auth.lo5,如果不是,则需要使用其内部 IP 地址。

此外,如果你想在你的电脑上使用端口 636,你需要以 super 用户身份(root 或使用 sudo)运行你的命令,否则你需要使用 Borealid 所述的高端口(1024 以上)

隧道启动后,您必须指向本地主机才能进行查询

关于PHP 通过 SSH 隧道连接到其他网络中的 LDAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3329282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com