我目前在acl中使用ip,我想使用用户名和密码来执行此操作。
答案 0 :(得分:171)
以下是我在 Ubuntu 14.04上设置基本身份验证所必须做的事情(在其他任何地方找不到指南)
/etc/squid3/squid.conf 而不是超级膨胀的默认配置文件
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
# Choose the port you want. Below we set it to default 3128.
http_port 3128
请注意 basic_ncsa_auth 程序,而不是旧的 ncsa_auth
对于squid 2.x,您需要编辑/etc/squid/squid.conf
文件并放置:
auth_param basic program /usr/lib/squid/digest_pw_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
sudo htpasswd -c /etc/squid3/passwords username_you_like
并为所选用户名输入两次密码
sudo service squid3 restart
sudo htpasswd -c /etc/squid/passwords username_you_like
并为所选用户名输入两次密码
sudo service squid restart
对于许多问我的人:这2个工具产生不同的文件格式:
htdigest
以纯文本格式存储密码。 htpasswd
存储密码哈希(各种哈希算法可用)尽管格式basic_ncsa_auth
存在差异,但仍然可以解析使用htdigest
生成的密码文件。因此,您也可以使用:
sudo htdigest -c /etc/squid3/passwords realm_you_like username_you_like
请注意,这种方法是经验的,未记录的,并且未来版本的Squid可能不会支持。
在Ubuntu 14.04 htdigest
和htpasswd
都可以在[apache2-utils][1]
包中找到。