【问题标题】:Squid whitelist only for one auth user鱿鱼白名单仅适用于一个身份验证用户
【发布时间】:2022-07-12 18:27:45
【问题描述】:

老实说,我不确定这是否容易(或可能),因为我已经梳理了 squid 文档,但没有找到我需要的东西。

我正在使用具有基本 ncsa 身份验证的 squid4 代理。这是我想要完成的,我的代理上有两个用户使用 ncsa 身份验证。我希望一个用户能够访问代理上的任何内容(标准http_access allow),而另一个用户被限制在他们可以访问的一个网址的白名单中。

这是我的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,或者我错过了什么?

我真的不知道如何解决这一因素,所以任何帮助将不胜感激,谢谢!

【问题讨论】:

    标签: proxy squid


    【解决方案1】:

    如果您不在配置中将用户分开,您不能期望 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多