我成功地设置了iptables和squid,现在我尝试运行代理validation。 我的squi.conf看起来如下:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/proxy_users auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours acl all src all acl manager proto cache_object acl localhost src 127.0.0.1/32 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.7.0/24 acl passwd proxy_auth REQUIRED http_access allow localnet passwd http_access allow localhost http_access deny all
所以。 它根据书。 它的工作原理是,当我启动浏览器时,它根据请求提交“拒绝访问”页面。 但是我没有机会authentication自己! 我听说可能是Firefox自动交出一个任意的用户,这当然会被拒绝。
我怎样才能强制浏览器popup一个身份validation框?
对不起。 透明意味着浏览器不知道它被redirect到代理。 这意味着浏览器还没有configuration任何代理,因此还没有configuration任何代理authentication。 更甚者,用于与代理交谈的HTTP与在普通浏览器 – networking服务器通话中的HTTP不同。
你到底在做什么混合透明代理身份validation? 我已经尽pipe这一点,检查谷歌,并确认它。 我所看到的每一处都说这是无法完成的。
拦截代理的工作方式是让一个活动代理(代理)在那里不存在。 浏览器并不期待它在那里,而且所有的效果和目的都被欺骗了,或者至多是困惑的。 作为那个浏览器的用户,我要求不要把任何凭证给一个意外的派对,你不同意吗? 尤其是当用户代理可以在不通知用户的情况下这样做的时候,就像Microsoft浏览器在代理提供任何微软devise的authenticationscheme(如NTLM)时所能做的那样(参见../ProxyAuthentication and Features / NegotiateAuthentication )。
换句话说,这不是一个鱿鱼的错误,而是一个浏览器的安全function。
http://www.squid-cache.org/Versions/v2/2.7/cfgman/auth_param.html
警告:身份validation不能在透明拦截代理中使用,因为客户端认为它正在与原始服务器而不是代理进行通信。 这是将TCP / IP协议弯曲为透明地截取端口80的限制,而不是对squid的限制。
您的IP被拒绝,因为只允许localnet和localhost。 因此,添加您的IP或IP范围的另一个ACL。 acl myisp src your.ip.goes.here
http_access allow myisp passwd
然后重新启动,你应该被要求你的用户名和密码。
为了将来的参考,检查/var/log/squid/access.log未来的squidauthentication错误。
你不能。
http://www.cyberciti.biz/faq/squid-proxy-authentication-in-transparent-mode/
如果您的问题是客户端自动configuration,请检查WPAD。