【问题标题】:How do I setup an Elite HTTP Squid Proxy with password protection on Ubuntu?如何在 Ubuntu 上设置具有密码保护的 Elite HTTP Squid 代理?
【发布时间】:2018-06-22 17:24:40
【问题描述】:

我想设置一个 Elite HTTP 代理。 Elite proxy 不应向目标地址公开有关源的任何信息。为此,我聘请了一台 Ubuntu 虚拟专用服务器。代理应该受密码保护,这样只有我可以使用它。我想使用Squid 作为我的代理。

实现这一目标的步骤是什么?

【问题讨论】:

    标签: ubuntu proxy http-proxy squid


    【解决方案1】:

    更新您的 APT 存储库并安装我们需要的软件

    sudo apt-get update
    sudo apt-get install squid3
    sudo apt-get install apache2-utils
    

    Squid3 是代理软件。 htpasswd 需要 apache2-utils,我们将使用它作为平面文件密码存储来保护代理。

    设置密码存储

    sudo touch /etc/squid/passwords
    sudo chmod 777 /etc/squid/passwords
    sudo htpasswd -c /etc/squid/passwords USERNAME
    [prompt for new password]
    

    在上面的行中,将 USERNAME 替换为您希望在代理上使用的用户名。执行该行时,系统会提示您输入用户密码。

    测试密码存储

    /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwords
    

    执行此行后,控制台看起来就像挂起一样,有一个提示,其中没有任何文本。输入“用户名密码”(将这些替换为您的特定用户名和密码)并按回车键。您应该收到“OK”响应。如果不是,请查看错误消息,您的用户名/密码可能不正确。它也可能 basic_ncsa_auth 位于不同的路径上(例如 lib64)。

    配置 Squid 代理

    移动默认的 squid 配置文件

    sudo mv /etc/squid/squid.conf /etc/squid/squid.conf.original
    

    现在创建一个新的 squid 配置文件

    vi /etc/squid/squid.conf
    

    应该是这样的

    http_port 3128
    dns_v4_first on
    cache deny all
    forwarded_for delete
    tcp_outgoing_address 9.9.9.9   //-- change this ip
    via off
    auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwords
    auth_param basic realm proxy
    acl authenticated proxy_auth REQUIRED
    http_access allow authenticated
    http_access deny all
    

    下面是对每一行的描述:

    • http_port:指定代理监听端口。这是必需的
    • dns_v4_first on:有效关闭 IPv6 DNS。如果没有这个,您的代理可能会运行非常缓慢。
    • cache deny all:停止代理缓存页面
    • forwarded_for 删除:删除 forwarded_for http 标头,这会将您的源暴露给目标
    • tcp_outgoing_address:将此设置为您的服务器地址。您可以使用命令“ip a”找到地址
    • 通过关闭:删除更多会暴露您的源的标头
    • auth_param:定义您创建的 basic_ncsa_auth 和密码文件的位置。请注意,您可能需要检查 basic_ncsa_auth 的位置。
    • acl authenticated:为通过密码存储验证的用户创建访问控制列表
    • http_access 允许已验证:如果用户已通过密码验证,则允许用户访问代理
    • http_access deny all:如果你没有通过密码认证,你就进不去

    重启 squid 代理

    service squid restart
    

    请注意,该服务也可以称为 squid3。代理可能需要一段时间才能重新启动。如果您愿意,可以使用命令重新加载 squid 配置

    squid -k reconfigure
    

    检查其工作情况

    service squid status
    

    服务应该正在运行。

    netstat -ltnp
    

    您应该会看到一个服务正在侦听端口 3128,或者您在配置中使用的任何端口。

    在您的桌面上,打开 Firefox,转到选项 -> 网络代理 -> 设置。选择使用手动代理配置。在 HTTP 代理字段中输入服务器的 IP 地址,并在端口字段中包含端口。单击确定。

    去谷歌,在提示时输入你的用户名和密码,搜索“我的IP地址是什么”,你应该看到你的代理服务器的IP。

    【讨论】:

    • 如果你得到“htpasswd: command not found”那么你需要做下面的“sudo apt-get install apache2-utils”
    • /usr/lib/squid3/basic_ncsa_auth: No such file or directory
    • 如答案中所述,您可能会发现 basic_ncsa_auth 安装在不同的路径上(特别是 lib64 文件夹)
    • 命令 'curl ipinfo.io/ip' 将显示你的真实 IP 地址(如果 squid 是透明的,则 Squid 客户端的 IP 地址)。不搜索“我的 IP 地址是什么”。
    • 遗憾的是它无法正常工作。
    猜你喜欢
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    • 2011-08-05
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    相关资源
    最近更新 更多