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

www*_*www 77 squid http-proxy

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

Ste*_*ini 181

这是我在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
Run Code Online (Sandbox Code Playgroud)

请注意basic_ncsa_auth程序而不是旧的ncsa_auth

鱿鱼2.x

对于squid 2.x,您需要编辑/etc/squid3/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
Run Code Online (Sandbox Code Playgroud)

设置用户

sudo htpasswd -c /etc/squid3/passwords username_you_like
Run Code Online (Sandbox Code Playgroud)

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

sudo service squid3 restart
Run Code Online (Sandbox Code Playgroud)

鱿鱼2.x

sudo htpasswd -c /etc/squid/passwords username_you_like
Run Code Online (Sandbox Code Playgroud)

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

sudo service squid restart
Run Code Online (Sandbox Code Playgroud)

htdigest vs htpasswd

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

  • /etc/squid/squid.conf 以纯文本格式存储密码.
  • htdigest 存储密码哈希(可以使用各种哈希算法)

尽管格式上的这种差异htpasswd 仍然能够解析生成的密码文件basic_ncsa_auth.因此你可以选择使用:

sudo htdigest -c /etc/squid3/passwords realm_you_like username_you_like
Run Code Online (Sandbox Code Playgroud)

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

在Ubuntu 14.04上htdigest,htdigest它们都在htpasswd包中.

  • 如果您的系统没有`htpasswd`,请执行`sudo apt-get install apache2-utils`. (17认同)
  • 对我来说,htdigest命令不起作用,但是一旦我用"sudo htpasswd -cd/etc/squid3/passwords admin"替换它,它确实按预期工作. (11认同)
  • 这就是我的想法,即使它对我有用。有一个与这篇文章相关的讨论,50% 的人说它有效,50% 的人建议更改 htpasswd。虽然我没有足够的声誉参与讨论...... :( (2认同)
  • 为我工作,但我也不得不使用htpasswd而不是htdigest,我不知道为什么,但以这种方式它工作. (2认同)