使用多个 LDAP 的开源代理身份验证

使用多个 LDAP 的开源代理身份验证

我正在为我的工作设置新的网络代理。我们最初计划购买 Blue Coat 代理,但经济衰退来了,我们不再购买它们了……

这些代理的一大优点是它们提供了通过多个 LDAP 代理对用户进行身份验证的可能性。例如,某个子网的用户通过特定的 LDAP 服务器进行身份验证,而另一个子网的用户通过另一个 LDAP 服务器进行身份验证。

使用 Squid 等开源软件可以实现这一点吗?我真的很喜欢 Pfsense,因为它的界面非常简单漂亮,可以用它做这样的事情吗?

预先感谢您的帮助,

安托万

答案1

您可以让 Squid 针对充当多个后端目录代理的单个 OpenLDAP 服务器进行身份验证。来自 slapd-meta(5):

名称 slapd-meta - 元目录后端

摘要 /etc/ldap/slapd.conf

描述 slapd(8) 的元后端针对一组远程 LDAP 服务器(称为“目标”)执行基本的 LDAP 代理。这些服务器中包含的信息可以表示为属于单个目录信息树 (DIT)。

即使 DN 层次结构在两个组之间重叠,通过编写一些修改规则,这也能起作用 —— 我猜是这种情况,因为您会使用别名和委派。

无论如何,我相信允许用户根据统一目录进行身份验证是有益的,因为无论他们身处哪个子网,他们的身份都保持不变。

答案2

在我的回答中,我假设您已经阅读了有关 Squid 身份验证协议的内容,熟悉如何配置 LDAP 身份验证助手,并计划在某种 Unix 操作系统下运行 Squid。此外,前两个答案可帮助您根据用户名而不是 IP 子网(您提到的是“子网”,但 ITYM 是“子集” - 对吗?)选择不同的 LDAP 服务器。

  1. 使用一个简单的脚本(语言无关紧要,使用您最喜欢的语言)根据用户名将请求转发到不同的 LDAP 服务器。经验丰富的 Unix 管理员应该在 30 分钟内完成此操作,这不是什么大问题。
  2. 使用单个 LDAP 服务器,该服务器根据用户的 DN 返回 LDAP 引用。

如果您确实想根据 IP 子网更改 LDAP 服务器,事情就会变得有点糟糕,因为 Squid 身份验证协议仅将用户名/密码对传输给身份验证助手:

  1. 配置单个 Squid 服务器并让其仅监听本地主机。此 Squid 实例将执行所有缓存工作。
  2. 对于每个子网,设置另一个 Squid 实例(不带本地缓存),并配置适当的 LDAP 服务器。每个 Squid 实例也使用不同的端口。这些 Squid 实例将所有请求转发到步骤 1 中定义的缓存实例。
  3. 根据您在用户浏览器中配置代理设置的方式,您必须在 Web 服务器中使用 DNS 视图或重定向规则。

答案3

相关内容