将 Squid Kerberos auth 和 Squidguard ldapusersearch 集成到 AD 中

将 Squid Kerberos auth 和 Squidguard ldapusersearch 集成到 AD 中

我在使用 Squid Kerberos 身份验证和 Squidguard ldapusersearch 通过 Active Directory 组成员身份应用 ACL 时遇到了问题。

问题是 :

  • Squid 和 Squidguard 将我的用户视为:[email protected]所以squidguard 的 '%s' 变量是'[email protected]'
  • 在我的 ldap 查询中没有可以解释该字符串的默认属性。

例子 :

src ldap {
        ldapusersearch ldap://dc1.domain.local:3268/dc=domain,dc=local?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=group,OU=Groups,DC=domain,DC=local))
}

并且 sAMAccountName 应该是唯一的'user'而不是!!!'[email protected]'

所以我找到了一个解决方案,但它不是很舒服:

我编辑了 AD 用户的一个未使用的属性,并将我的 kerberos 登录信息写入其中,因此我的配置如下所示:

src ldap {
        ldapusersearch ldap://dc1.domain.local:3268/dc=domain,dc=local?displayNamePrintable?sub?(&(displayNamePrintable=%s)(memberOf=CN=group,OU=Groups,DC=domain,DC=local))
}

并且它有效!

有谁知道如何绕过在 AD who 内容中创建自定义属性的需要吗?

顺便说一下,userPrincipalName它与电子邮件相同,无法解释 Kerberos 登录。

答案1

我通过查询 LDAP 中的 userPrincipalName 而不是 sAMAccountName 来实现这一点,因为我的 squid 也返回[电子邮件保护]来自 Kerberos/NTLM 身份验证。

另外,请确保使用 %20 而不是空格,当我在配置文件中指定绑定 DN 时,我使用了引号,因为 DN 中有一个 &,因此 squidguard 不具有绑定性。

答案2

您可以使用“userlist = userlist”(/var/squidGuard/userlist)代替“user = foo bar”

相关内容