我想设置 squid 代理服务器,而无需手动配置浏览器以使用代理。例如,我应该能够在浏览器地址栏中执行此操作:htttp://squidserverip:3128/www.serverfault.com
。对于我的基本 squid 配置,它不起作用。
我想要的是具有一些身份验证功能的基本 http 代理服务器。当用户在浏览器地址栏中输入代理服务器的 URL(例如 www.proxyserver.net)时,在通过身份验证后,它会显示可以通过代理访问的 URL 列表。单击这些 URL 将通过代理获取这些站点。
答案1
您很可能想要类似 HTTP/基于 Web 的代理。已停用的 PHProxy 之类的东西可以满足您的需求。
答案2
无需手动配置浏览器,只需设置您的网络以透明地将所有 HTTP 请求(注意:不是 HTTPS)重定向到您的 squid 代理即可。在此论坛上搜索“透明代理重定向 iptables”,以获取有关如何使用 iptables 执行此操作的示例。
一旦您的用户被重定向到代理服务器,您就可以使用 squid 中的 ACL 来阻止某些 URL,同时允许其他 URL。您还应该能够在 squid 中配置自定义错误页面以实现您的“强制门户”,您可以在其中列出用户有权访问的 URL。
或者,这些功能已内置于大多数入门级企业防火墙中,例如 FortiGate。您可能也想了解一下。
--ab1
答案3
- 编写一个模拟你的需求的 PAC 文件
- 将该文件托管在 LAN 上的某个服务器上
- 配置您的 DHCP 服务器以公布该 PAC 文件的位置
- 配置 LAN 上的浏览器以使用“自动代理配置设置”(在您的浏览器选项中)
一些相关链接:
http://www-archive.mozilla.org/catalog/end-user/customizing/enduserPAC.html
答案4
警告:旧答案
虽然 ab77 和 Ciller 提供了两种不同的方法来提供您实际要求的内容,但仍有一些注意事项。
使用透明代理方法需要您更改客户端上的默认路由。除 HTTP 和 HTTPS 之外的流量将不会通过代理路由。此外,大多数网站现在都使用 HTTPS。虽然可以将 squid 配置为动态生成证书(Google“squid ssl bump”),但设置起来并不容易,会破坏连接的安全性,并且需要在所有客户端上安装您选择的 CA 证书。
使用 PAC 文件通常是一种更好的方法,但依赖于通过 DHCP 配置地址。