AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1166961
Accepted
exore
exore
Asked: 2024-10-23 18:24:54 +0800 CST2024-10-23 18:24:54 +0800 CST 2024-10-23 18:24:54 +0800 CST

当 squid 监听 2 个端口时如何仅验证一个端口

  • 772

我想让 squid 监听端口 3128 和 3129。我想在 3129 上进行身份验证,在 3128 上不进行身份验证。目前我有以下配置

# auth_param not shown but working

http_port 3128
http_port 3129
acl input_3128 myportname 3128
acl input_3129 myportname 3129
acl authenticated proxy_auth REQUIRED

http_access allow authenticated input_3129
http_access deny input_3129
http_access allow input_3128
http_access deny all

不幸的是,这根本不起作用。Squid 总是需要身份验证。

示例请求:

curl -v --proxy http://myproxy.example.com:3128 http://debian.org/

鱿鱼反应:

* processing: http://debian.org/
10.1.2.3:3128...
* Connected to myproxy.example.com (10.1.2.3) port 3128
> GET http://debian.org/ HTTP/1.1
> Host: debian.org
> User-Agent: curl/8.2.1
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 407 Proxy Authentication Required
< Server: squid/5.9
< Mime-Version: 1.0
< Date: Wed, 23 Oct 2024 10:15:01 GMT
< Content-Type: text/html;charset=utf-8
< Content-Length: 3511
< X-Squid-Error: ERR_CACHE_ACCESS_DENIED 0
< Vary: Accept-Language
< Content-Language: en
< Proxy-Authenticate: Basic realm="Squid proxy-caching web server"
< X-Cache: MISS from myproxy
< X-Cache-Lookup: NONE from myproxy:3129
< Via: 1.1 myproxy (squid/5.9)
< Connection: keep-alive
<

问题

如何让 squid 仅在端口 3129 上需要身份验证?

proxy
  • 2 2 个回答
  • 47 Views

2 个回答

  • Voted
  1. Best Answer
    telcoM
    2024-10-23T19:01:09+08:002024-10-23T19:01:09+08:00

    当您使用 ACL 类型时myportname,您依赖于隐式默认名称,即,您的http_port 3128名称确实http_port 3128 name=3128与端口 3129 相同。

    也许尝试使用myportACL 类型,即acl input_3128 myport 3128和acl input_3129 myport 3129?

    另外,您可以尝试http_access按如下方式对指令进行排序:

    http_access allow input_3128
    http_access allow authenticated input_3129
    http_access deny all
    

    这样,第一http_access行就可以匹配任何进入端口 3128 的连接,甚至无需提示可能需要身份验证。如果不匹配,第二条规则将匹配端口 3129 的连接,此时身份验证要求生效。最后一条规则将捕获任何不匹配前两行的内容;您根本deny all不需要单独的一行。http_access deny input_3129

    • 1
  2. exore
    2024-10-23T22:22:37+08:002024-10-23T22:22:37+08:00

    @telcoM 在第二条评论中给出了解释。我根据这条评论发布了另一个解决方案。

    在一条线上,所有条件都是anded。因此,

    http_access allow authenticated input_3129
    

    是它首先检查authenticated条件。此条件会为任何未经身份验证的连接触发早期 407 应答,无论端口号如何。

    现在,如果我改用input_3129 authenticated,由于隐含的and,authenticated只有满足 时才会尝试条件input_3129。所以不会出现早期的 407。Squid 可以继续尝试第二条http_access规则。

    http_access allow input_3129 authenticated
    http_access allow input_3128
    http_access deny all
    
    • 1

相关问题

  • 持续监控许多服务器运行状况的简单方法?

  • Web 代理脚本与 http 代理的效率?

  • 为将笔记本电脑带回家的用户模拟公司代理

  • 什么是 Microsoft 代理客户端(MSP 客户端)

  • 使用大量 javascript 的页面上的鱿鱼速度很慢

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve