【问题标题】:Squid: forward to another proxy (with authentication details for the parent proxy)Squid:转发到另一个代理(带有父代理的身份验证详细信息)
【发布时间】:2013-10-12 12:37:50
【问题描述】:

简而言之,我正在寻找一种简单的方法来执行以下操作(如果可能,请提供代码示例):

  • 在我的计算机上设置并启动一个代理服务器(比如地址是 10.10.200.200:6767),它可以捕获来自我手机的所有 Web 请求
  • 一旦手机的请求到达此代理,它将添加自定义身份验证详细信息(my_username/my_password)并将其转发给机构代理(例如地址为 10.1.2.3:80)
  • 我的本地代理 (10.10.200.200) 上不需要任何缓存/加速。它只需要捕获请求并转发它。

现在,详细说明我的情况:

在我的研究所,需要通过代理进行身份验证,这样我们才能连接到互联网。当弹出窗口出现时,我通常输入我的 ldap 用户名/密码进行身份验证。

现在,我想将我的手机连接到研究所的 WiFi,但我的手机没有使用代理进行身份验证的选项。只能指定代理地址。因此,我计划在我的计算机上设置一个本地代理,以捕获来自我手机的所有请求,添加身份验证详细信息并通过我的计算机将其传递给我的研究所代理。

我安装了 squid3(在 Ubuntu 上),但是看着配置文件,我迷路了。我试过谷歌搜索,但它看起来太复杂了。

希望有人能提供帮助。

【问题讨论】:

    标签: authentication proxy


    【解决方案1】:

    我从 squid 教程中发现,最简单的配置是:

    http_access allow all
    http_port 3128
    
    coredump_dir /var/spool/squid3
    refresh_pattern ^ftp:       1440    20% 10080
    refresh_pattern ^gopher:    1440    0%  1440
    refresh_pattern -i (/cgi-bin/|\?) 0 0%  0
    refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880
    refresh_pattern .       0   20% 4320
    
    cache_peer 10.1.2.3 parent 80 0 no-query default login=my_username:my_password
    never_direct allow all
    

    这些行应该让您在本地计算机上获得一个工作代理服务器,它将所有请求转发到另一个代理服务器(相应地更改 IP 地址)。 但是,请注意,在上述脚本中,我已禁用任何访问控制/过滤器,因此任何人都可以连接并使用您的代理。您需要添加额外的代码来限制仅对某些设备的访问。

    【讨论】:

    • 我需要添加以下内容:``` access_log none cache_log none ``
    • FTR:限制对您唯一主机的访问,注释掉http_access allow all行,并在末尾附加三行:acl allowed_ip src localhosthttp_access allow allowed_iphttp_access deny all (是的,deny all 必须在最后,不知道为什么)。为了安全起见:不,不能检查它是否与来自另一台主机的 netcat 一起工作,只能通过 http 工作(squid 不会拒绝 tcp,只有 http)
    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    • 2014-12-30
    相关资源
    最近更新 更多