老实说,我不确定这是否容易做到(或者可能做到(,因为我已经仔细搜索了squid文档,没有找到我需要的东西。
我使用的是具有基本ncsa身份验证的squid4代理。以下是我想要实现的,我的代理上有两个使用ncsa身份验证的用户。我希望一个用户能够访问代理上的任何内容(标准http_access allow
(,另一个用户只能访问一个url的白名单。
这是我的squid.conf
:的身份验证部分
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
acl squid_users proxy_auth REQUIRED
http_access deny !squid_users
http_access allow squid_users
http_access deny all
有没有办法只为一个具有身份验证的用户访问http_access allow/deny
,或者我遗漏了什么?
我真的不知道该怎么办,所以任何帮助都将不胜感激,谢谢!
如果您不在配置中分离用户,就不能指望squid会以不同的方式对待用户。
看看";一个更复杂的例子";地点:https://wiki.squid-cache.org/ConfigExamples/Authenticate/Bypass
具体地说,在定义了auth_param
部分之后,您应该使用以下内容
acl UsersGroupA proxy_auth "/etc/squid/groupa.txt"
acl SitesGroupA dstdomain "/etc/squid/sites.a.txt"
acl UsersGroupB proxy_auth "/etc/squid/groupb.txt"
acl authenticated_users proxy_auth REQUIRED
# rules allowing authenticated users
http_access allow SitesGroupA UsersGroupA # this will force both whitelisted urls AND users of group "A" (the limited group)
http_access allow UsersGroupB # this will only force users of group B (the unlimited group)
# catch-all rule
http_access deny all
此外,如果您需要指定端口,您应该在同一行上执行:
acl port_80 port 80
acl port_443 port 443
http_access allow http port_80 SitesGroupA UsersGroupA
http_access allow CONNECT port_443 SitesGroupA UsersGroupA