我在我的组织中使用 squid 作为显式代理来阻止我的基础架构中的某些网站。我已经使用 url_rewrite_program 和 ssl_bump 功能成功地设置了它,它的工作就像一个魅力。
问题是,到目前为止,我在 squid 的 access.log 或 url_rewrite_program 中都没有成功找出主网站的 url。即当用户访问一个网站说http://www.yahoo.com时,会记录对许多不同主机的大量请求,我无法弄清楚用户实际想要访问哪个网站。我还尝试查看referer 标头字段,发现大多数时候它没有设置。专门用于 https 连接请求。
是否有一种简洁明了的方法来找出用户实际访问了哪些网站以及网页内部实际请求了哪些网址。任何帮助将不胜感激。
检测用户访问的站点的清晰而简洁的方法是查看
Host
HTTP 请求的标头。如果用户在地址栏中输入地址,用户的浏览器打开了十几个不同的 URL,这意味着用户正在访问所有这些站点。“用户正在访问站点”和“浏览器正在访问站点”之间的区别是严格意义上的:浏览器代表用户的请求访问站点。您实际上无法确定用户访问的是哪个站点的唯一原因是,当用户使用 HTTPS 请求访问该站点时,该 squid 将
CONNECT
使用对等方的 IP 地址作为请求记录。但是既然你成功地实现了 sslBump,应该不会有什么复杂的情况:对于碰撞和盯着的站点,squid 会确切地知道它们是什么。其他的将取决于许多因素。