Squid 身份验证和流式传输

Squid 身份验证和流式传输

我已经使用 Kerberos 身份验证设置了 squid。我还使用 squidguard 作为 URL 重定向器来屏蔽网络上常见的恶意内容。不过,有些网站我们允许某些用户访问,而其他网站则不允许。如果我没有使用任何流媒体,这一切都运行良好。

根据我所做的 squid 日志和 wireshark 跟踪,当发送初始流式传输请求时,一切都很好,经过身份验证的用户名会随请求一起发送到 squidguard。问题是,在后续流量中,用户名不会发送到 squidguard,导致它根据默认策略被阻止。

我曾经尝试使用 squid 内置的允许/拒绝功能,但是它相对笨重,而到目前为止 squidguard 相当容易和快速。

问题来了:

  • 我如何让 Squid 在所有请求中传递用户名?(有些东西告诉我这不是最好的方法)
  • 我如何让 squidguard 看到流量已针对特定用户进行身份验证,即使未传递用户名?
  • 还有其他方法可以实现这一点吗?

一些可能重要的细节:

  • 我正在使用存储在文本文件中的用户列表与 squidguard 进行比较。
  • 我正在使用 Squid 进行完整的 Kerberos 身份验证。
  • CentOS 6.0
  • Squid 3.1.4
  • 鱿鱼卫士 1.3

编辑

为了澄清起见,我添加了以下鱿鱼片段来演示正在发生的事情:

wsXX.domain.local                       534   5.99      34M   3.04    1   69.93
  *.outsidedomain.com                   204  14.22       5M  20.66    0   92.14
 <error>                                137   0.00       0M   0.00    0  589.16

[email protected]@wsXX.domain.local    115   0.00       1M   0.00   70    0.16
 *.outsidedomain.com                     84   0.00       1M   0.00   73    0.17
 <error>                                 24   0.00       0M   0.00   21    0.00

* 编辑 *

随着我进一步深入研究,我发现它似乎没有针对 HTTP 请求的回复进行身份验证。事实上,如果我在声明中输入

    http_reply_access deny !auth

它不允许任何 https 流量,但允许大多数 http 流量。我完全被难住了,它实际上看起来像是让未经身份验证的流量通过(今天将对此进行测试)[经过测试,它将允许未经身份验证的 http 流量,但允许热 https],尽管我的 squid.conf 中有以下几行:

    http_access deny !auth
    http_access allow auth
    http_access deny all

* 编辑 * 我已经修复了未经身份验证的 http 和 httpsm,一切似乎都运行良好,除了流媒体网站仍然:(

无论如何,我必须在配置中更改以下行

   http_access deny !Safe_ports 

   http_access deny !Safe_ports !auth

答案1

所以,我搞清楚了这一点。原来,我的 squid.conf 中还有一些其他 ACL 允许未经身份验证的流量通过代理。由于这些规则在拒绝未经身份验证的流量的规则之前就被执行,因此流量是通过未经身份验证的发送的。

我希望这可以为任何尝试做类似事情的人提供良好的资源。

相关内容