proxy - Squid 服务器(NAT 后面)通过​​互联网进行基本身份验证

标签 proxy ubuntu-14.04 basic-authentication squid

我在谷歌上搜索了“基本身份验证在鱿鱼服务器中无法通过互联网工作”之类的搜索,但没有适合我的问题的答案。

这是我的问题: 我在防火墙后面设置了一个鱿鱼代理服务器。我已将端口 (54321) 转发到鱿鱼代理正在监听的端口 9999。现在一切都很好。我可以从任何地方连接到该代理。但我需要某种身份验证,因此启用了 basic_ncsa_auth。现在,我可以通过局域网计算机进行身份验证后访问互联网。好吧,一切都按照我的意愿进行,但是,

来自互联网,我弹出用户名/密码(firefox),经过身份验证后,我从鱿鱼代理收到“缓存访问被拒绝”消息。

如果有人指出我在这里做错了什么,我将非常感激。

这是我的squid.conf 文件:

http_port 9999
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated

网络设置: 防火墙静态IP:端口:54321转发到代理服务器:10.11.12.8:9999。

最佳答案

您的 Squid 配置是否允许 http_reply_access?

http_reply_access allow all

如果您的密码长度超过 8 个字符,您还需要确保没有使用 DES 哈希,这是 htpasswd 命令的默认设置。

以下是如何使用 MD5 哈希算法创建新密码文件:

[root@localhost ~] htpasswd -cm /tmp/passwd testuser
New password: 
Re-type new password: 
Adding password for user testuser

检查文件内容:

[root@localhost ~] cat /tmp/password
testuser:$apr1$VxCDyltg$krZ6v7VrnULVOiuS0u6KD1

使用 basic_ncsa_auth 验证密码:

[root@localhost ~] /usr/lib64/squid/basic_ncsa_auth /tmp/passwd
testuser superspurs
OK

现在在 CLI 上验证:

[root@TLABprx00 ~]# http_proxy=http://localhost:9999/ curl http://www.msftncsi.com/ncsi.txt --proxy-user testuser:superspurs
Microsoft NCSI

关于proxy - Squid 服务器(NAT 后面)通过​​互联网进行基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43155277/

相关文章:

javascript - 在 Node.js 上使用 Proxy.apply() 不起作用。这是一个错误还是我做错了?

OpenCV 的 Python 模块需要一个 Ubuntu 14.04 不可用的库

ubuntu - 无法使用注册 +

ubuntu - 如何在 ubuntu 18.04 中启动 Netbeans 8.2

php - Apache 2.4 .htaccess 通过 Request_URI 绕过基本身份验证

javascript - Node.Js 快速身份验证

ios - iOS 8 和 iOS 9 上 NSURLSession 的区别?

c# - EF 代理和复杂的数据结构

configuration - 如何通过一个端口为 Jetty 提供 https 和 http 服务

javascript - URL 参数代理脚本