Linux 服务器Squid代理

举报
kaliarch 发表于 2022/06/11 12:16:10 2022/06/11
【摘要】 前言代理服务器是一种服务器应用程序,作为最终用户和互联网资源之间的网关。通过代理服务器,终端用户能够控制和监视他们的 web 流量,用于各种用途,包括隐私、安全和缓存。例如,您可以使用代理服务器从不同的 IP 地址发出 web 请求。你也可以使用代理服务器来研究不同司法管辖区域的网络服务是如何不同的,或者避免一些监视或网络流量节流的方法。Squid 是一个稳定的、流行的、开源的 HTTP ...

前言

代理服务器是一种服务器应用程序,作为最终用户和互联网资源之间的网关。通过代理服务器,终端用户能够控制和监视他们的 web 流量,用于各种用途,包括隐私、安全和缓存。例如,您可以使用代理服务器从不同的 IP 地址发出 web 请求。你也可以使用代理服务器来研究不同司法管辖区域的网络服务是如何不同的,或者避免一些监视或网络流量节流的方法。

Squid 是一个稳定的、流行的、开源的 HTTP 代理。在本教程中,您将安装和配置 Squid 以在 Ubuntu 20.04 服务器上提供 HTTP 代理。

一 应用场景

除了路由单个用户的出站流量之外,Squid 还有许多用例。在大规模服务器部署的上下文中,它可以用作分布式缓存机制、负载均衡器或路由堆栈的另一个组件。然而,一些水平扩展服务器流量的方法,通常涉及代理服务器,已经超过了流行的集装箱化框架,如 Kubernetes,分发更多的组件的应用程序。与此同时,使用代理服务器作为个人用户重定向 web 请求已经变得越来越流行,以保护您的隐私。这有助于在使用开放源代理服务器时牢记这一点,这些代理服务器在低优先级维护模式下可能具有许多特性。随着时间的推移,代理的用例已经发生了变化,但是基础技术并没有变化。

二 安装配置

  • yum安装
yum -y install squid

squid的配置文件默认安装在 /etc/squid/squid.conf , 最简单配置:

  • 配置

默认情况下,Squid 不允许任何客户端从此服务器外部连接到它。为了实现这一点,您需要对其配置文件进行一些更改,该文件存储在/etc/squid/squid.conf 中。

# 默认是禁止所有代理连接的,我们设置为允许所有代理均可连接
# http_access deny all
http_access allow all

# 端口设置
http_port 0.0.0.0:3128

# 缓存设置打开
cache_dir ufs /var/spool/squid 100 16 256

这样的配置危险性太高,你可以在 http/access allow localhost 上面添加一行,包含你自己的 IP 地址,如下所示:

acl localnet src your_ip_address
  • acl 表示访问控制列表,权限策略的通用术语 在这种情况下,
  • localnet 是您的 ACL 的名称。
  • src 是此 ACL 下请求的来源,即您的 IP 地址。

执行初始化缓存目录命令:

三 测试验证

curl  -x http://43.155.77.244:3128 https://registry.terraform.io -v

或者

export https_proxy=43.155.77.244:3128
export http_proxy=43.155.77.244:3128

四 安全加固

大多数代理和大多数连接到代理的客户端应用程序(如 web 浏览器)都支持多种认证方法。这些方法可以包括共享密钥,或者单独的身份验证服务器,但最常见的方法是使用常规的用户名-密码对。Squid 允许您使用内置的 Linux 功能创建用户名-密码对,作为通过 IP 地址限制对代理的访问的附加或替代步骤。为此,您需要创建一个名为/etc/Squid/password 的文件,并将 Squid 的配置指向该文件。

  • 安装htpasswd工具
yum install httpd-tools
  • 生成用户名密码
# 生成用户信息
htpasswd -b /etc/squid/passwords squiduser xxzx789
# 查看
cat /etc/squid/passwords

  • 将用户信息添加进squid配置文件
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated

五 安全测试链接

export http_proxy=http://squiduser:xxzx789@43.155.80.32:3128
export https_proxy=http://squiduser:xxzx789@43.155.80.32:3128

六 其他

  • 应使用acl进行安全访问控制
  • 应使用用户名密码对认证进行加密

参考链接

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。