我需要在 Squid 中配置两种类型的访问:
- 具有访问音视频、社交网站的权限(AD认证)的用户;
- 没有权限的用户,只有少数网站
我在用着:
CentOS 7
SELinux 强制
防火墙允许通过 3128 端口进行访问
Squid 3.3.8
...
acl local_network src 192.168.0.0/24
external_acl_type user_priv ipv4 %LOGIN /usr/lib64/squid/ext_ldap_group_acl -R -K \
-h example.com \
-b "dc=example,dc=com" \
-D user@DOMAIN \
-w password \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=%a,ou=ADMINISTRATION,dc=example,dc=com))"
acl access_priv external user_priv PRIVILEGED_USERS
http_access allow access_priv
http_access allow local_network
url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
...
SquidGuard 1.4
ldapbinddn cn=User,ou=TI,dc=example,dc=com
ldapbindpass password
ldapcachetime 300
src user_priv {
ldapusersearch ldap://ad.example.com/dc=example,dc=com?sAMAccountName?sub?(&(sAMAccountName=%s)(memberof=cn=PRIVILEGED_USERS,ou=ADMINISTRATION,dc=example,dc=com)
}
user_priv {
pass !ads !porn audio-video social_networks whitelist
redirect http://squid.example.com/cgi-bin/squidGuard.cgi?clientaddr=%a+clientname=%n+clientuser=%i+clientgroup=%s+targetgroup=%t+url=%u
}
default {
pass !ads !porn !audio-video !social_networks whitelist
redirect http://squid.example.com/cgi-bin/squidGuard.cgi?clientaddr=%a+clientname=%n+clientuser=%i+clientgroup=%s+targetgroup=%t+url=%u
}
我无法让它工作。我尝试更改 acl 的顺序,但它没有按我需要的方式工作。或者未经身份验证的用户没有任何访问权限,或者特权用户没有他们的私人访问权限。
任何想法?
答案1
我不这么认为,因为你需要在 squid 配置中启用 NTLM 模块。解决方案可能是安装 2 个不同的 squid 或在两个不同的实例上激活 2 个 squid。需要澄清的是,在 squid 上启用用户身份验证不是一个好选择,因为你的 AD 每次都会被 squid 调用,浏览速度会很慢。最后但并非最不重要的是,你的用户会讨厌你。:-) 问候
答案2
SquidGuard 1.4 不支持 Squid 3.3.8 您需要修补 squidguard 才能使用较新的 squid 版本。 http://bugs.squid-cache.org/show_bug.cgi?id=3978
或使用其他重定向器。