Squid 代理自动认证

Squid 代理自动认证

因此,我在 Ubuntu 服务器上设置了 squid 代理,现在想要使用我的域设置用户定位。我希望能够为 AD 内的安全组设置 acl,这可能吗?我该如何做?

用户还需要使用代理进行身份验证,因为它目前是完全开放的,我已经使用组策略设置了代理。我希望代理链接到 AD,以便用户登录并获取特定的 acl。我看到的所有教程都是弹出消息,要求输入用户名和密码。我希望这会自动发生,这样当用户登录时,他们就会自动进行身份验证。我该如何实现这一点?我以为 NTLM 会参与其中?然后用户所属的安全组将有一组 squid 强制执行的被阻止的网站

提前致谢

答案1

以下是可以完成您想要的操作的示例配置:

## Active Directory Authentication
auth_param basic program /usr/lib/squid/basic_ldap_auth -R -b "dc=example,dc=com" -D [email protected] -W /etc/squid/conf.d/ldap.pass -f sAMAccountName=%s -h example.com
auth_param basic children 100 startup=5 idle=5
auth_param basic realm Windows Logon
auth_param basic credentialsttl 2 hours

## Group Membership Lookup
external_acl_type ldap_group children-max=1000 children-startup=100 children-idle=50 %LOGIN /usr/lib/squid/ext_ldap_group_acl -d -R -b "dc=example,dc=com" -D [email protected] -W /etc/squid/conf.d/ldap.pass -K -f "(&(objectclass=person)(sAMAccountName=%u)(memberof=CN=%g,OU=Squid_Users,DC=example,DC=com))" -h example.com

# Defines the networks which are allowed to use the proxy
acl allowed-networks src 192.168.1.0/24

# Defines the Active Directory Groups as Squid ACLs (i.e. `InternetGeneralUsers` is a group in AD)
acl users-general external ldap_group InternetGeneralUsers

# Defines the filter ACLs
acl domains-allowed dstdomain "/etc/squid/conf.d/domains/domains-allowed"

# Actual Allow/Deny rules
http_access allow allowed-networks users-general domains-allowed

# And finally deny all other access to this proxy
http_access deny all

这不仅仅是 Active Directory,但一般概念是这样的:

  1. 为用户定义与 Active Directory 的连接。
  2. 定义如何从 AD 中查找组。
  3. 定义一个包含 AD 组成员的 ACL(在此示例中,AD 组称为InternetGeneralUsers,Squid ACL 称为 )users-general
  4. 定义一条允许 Squid ACLusers-general通过代理的允许规则。

相关内容