限制 Squid 代理服务器上的用户

限制 Squid 代理服务器上的用户

我刚刚创建了一个基于 Squid 的代理服务器,它在默认配置下运行良好。但是我不希望每个人都可以访问它。我想在 Squid 上设置用户名/密码访问。我被告知这相对简单。到目前为止,我已经完成了以下操作:

sudo htpasswd -c /etc/squid/passwd A    

And added the following to  /etc/squid/squid.conf 
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd

acl AUser proxy_auth A
http_access allow AUser

我相信这是正确的方法?最初我收到一条错误消息,提示“无法使用代理身份验证,因为没有完全配置身份验证方案”,但我通过将 auth_param basic program... 行放在 acl 行之前解决了这个问题。但是,当我重新启动 squid 服务并将代理 IP 地址和端口输入到我的浏览器 (Chrome) 中时,它无法加载页面或确实要求输入用户名/密码。然后我将其追溯到我不应该在 squid.conf 文件中设置“http_access 拒绝所有”。我不确定这是否是最佳设置,或者我是否确实造成了任何安全问题,但它现在对我来说似乎运行正常。

非常感谢!

答案1

您只需查看 Squid 的身份验证功能文档,网址为

http://wiki.squid-cache.org/Features/Authentication

Squid 提供多种身份验证方法,上面的链接中记录了所有方法。浏览一下,选择最适合您的方法。

答案2

当我遇到同样的问题时,我偶然看到了这篇旧帖子。我认为没有必要发表评论或禁用“http_access 全部拒绝”。您需要做的就是指定更广泛的组,而不是指定单个用户下的 ACL。例如

acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users

以下是一些针对授权的额外调整。

#This line defines the file holding the authentication details and also the program to check those details
auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/password

#Define the maximum number of child process to spawn for authentication
auth_param basic children 5

#user will see this message "Squid proxy-caching web server" in authentication box
auth_param basic realm Squid proxy-caching web server

#time to live after a successful authentication
auth_param basic credentialsttl 2 hours

#to make username case insensitive
auth_param basic casesensitive off

那就有用了。

相关内容