![通过防火墙进行 LDAP 身份验证](https://linux22.com/image/550586/%E9%80%9A%E8%BF%87%E9%98%B2%E7%81%AB%E5%A2%99%E8%BF%9B%E8%A1%8C%20LDAP%20%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
我有一个 Rails Gem,它可以执行 Active Directory 身份验证,其测试套件有相当多的身份验证检查。当我在我们的 LAN 上运行测试套件时,一切都没有问题(正如人们所期望的那样),但我们正在考虑将我们的一个应用程序移至云服务器,这当然意味着它将从网络外部访问 DC。
我已将 LDAP Gem 的副本拉到云服务器上,我们可以使用它进行测试并在防火墙上设置端口转发,然后在输入设置后运行测试,但测试失败,但失败的方式与输入错误密码的方式不同。
我在 DC 的安全日志中看到了成功登录的信息,但无论出于什么原因,它都没有将数据返回给客户端。
我已将端口 XXXX 转发到 DC 上的端口 389,还需要其他转发吗?
答案1
LDAP使用 TCP 389 进行不安全通信,使用 636 进行安全通信。
客户端通过连接到 LDAP 服务器(称为目录系统代理 (DSA),默认在 TCP 端口 389 上)来启动 LDAP 会话。
和
保护 LDAP 通信的常见替代方法是使用 SSL 隧道。这在 LDAP URL 中通过使用 URL 方案“ldaps”来表示。LDAP over SSL 的默认端口为 636。
在防火墙方面,您需要允许从防火墙的“外部”接口到“受信任”接口访问这些端口。如果您使用的是 NAT,则可能需要在公共 IP 和 LAN IP 上添加规则。
您不需要转发任何端口,但您需要允许如下通信:
permit tcp any x.x.x.x 0.0.0.0 389
permit tcp any x.x.x.x 0.0.0.0 636
您可以允许任何源 IP 在特定端口上用于您服务器的任何源端口上。
您还应该允许任何已建立的连接,在 Cisco 设备上,这似乎permit any established
将允许您的服务器的响应退出防火墙。大多数防火墙通常默认执行此已建立的操作(根据我的经验),因此如果您有专用防火墙,这应该不是问题。