如何使用基本的用户名和密码验证设置squid代理?

时间:2010-07-21 07:47:15

标签: http-proxy squid

我目前在acl中使用ip,我想使用用户名和密码来执行此操作。

1 个答案:

答案 0 :(得分:171)

以下是我在 Ubuntu 14.04上设置基本身份验证所必须做的事情(在其他任何地方找不到指南)

基本鱿鱼conf

/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

对于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

squid 2.x

sudo htpasswd -c /etc/squid/passwords username_you_like

并为所选用户名输入两次密码

sudo service squid restart

htdigest vs htpasswd

对于许多问我的人:这2个工具产生不同的文件格式:

  • htdigest以纯文本格式存储密码。
  • htpasswd存储密码哈希(各种哈希算法可用)

尽管格式basic_ncsa_auth 存在差异,但仍然可以解析使用htdigest 生成的密码文件。因此,您也可以使用:

sudo htdigest -c /etc/squid3/passwords realm_you_like username_you_like

请注意,这种方法是经验的,未记录的,并且未来版本的Squid可能不会支持

在Ubuntu 14.04 htdigesthtpasswd都可以在[apache2-utils][1]包中找到。