SQUID:检测用户在浏览器中输入的网站名称

SQUID:检测用户在浏览器中输入的网站名称

我在组织内使用 squid 作为显式代理来阻止我基础设施中的某些网站。我已使用 url_rewrite_program 和 ssl_bump 功能成功设置了它,并且它运行良好。

问题是,到目前为止,我无法在 squid 的 access.log 或 url_rewrite_program 中找出主网站 url。例如,当用户访问网站时http://www.yahoo.com,记录了大量对不同主机的请求,我无法确定用户实际上想要访问哪个网站。我还尝试查看 referer 标头字段,发现大多数情况下它未设置。特别是对于 https 连接请求。

有没有一种简洁明了的方法可以找出用户实际访问了哪些网站以及网页实际内部请求了哪些 URL。如能提供任何帮助,我们将不胜感激。

答案1

检测用户正在访问哪个网站的简单而简洁的方法是查看HostHTTP 请求的标头。如果用户在地址栏中输入地址,并且用户的浏览器打开了十几个不同的 URL,则意味着用户正在访问所有这些网站。“用户正在访问网站”和“浏览器正在访问网站”之间的区别是严格的哲学:浏览器代表用户的请求访问网站。

您实际上无法确定用户访问了哪个网站的唯一原因是,当用户使用 HTTPS 请求访问网站时,squid 会将其记录为CONNECT带有对等方 IP 地址的请求。但由于您已成功实施 sslBump,因此应该不会出现任何问题:对于被 bumped 和 stared 的网站,squid 会准确知道它们是什么。其他情况将取决于许多因素。

相关内容