在Ubuntu 20.04上安装和配置Squid代理服务器

这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。

以PDF格式下载指南


这是续集。

这是续集。
这是续集。

Squid是代理和缓存服务器。它通过将请求转发到所需的目的地来充当代理,但是它也保存了所请求的内容。如果另一个服务器在Squid服务器上过期之前请求相同的信息,它将为请求者提供相同的内容,这将加快下载速度并节省带宽。

Squid代理服务器支持通过各种协议(例如http,SSL请求,DNS查找,FTP等)缓存请求的内容。本指南介绍了如何在Ubuntu 20.04上安装和配置Squid Proxy

Ubuntu 20.04上的Squid代理服务器

首先,更新系统软件包。请注意,所有命令均以root用户身份运行

sudo apt-get update
sudo apt-get upgrade

接下来,在Ubuntu 20.04上安装Squid代理。在Ubuntu 20.04上安装Squid代理很容易,因为它已在Ubuntu 20存储库中提供。使用以下命令进行检查。

sudo apt-cache policy squid

输出

要安装Squid代理,请运行以下命令。您也可以在系统启动时启动它并检查状态

sudo apt-get install -y squid
sudo systemctl start squid
sudo systemctl enable squid
sudo systemctl status squid

如果已正确安装并运行了squid,您将看到类似于以下内容的输出:

在Ubuntu 20.04上安装和配置Squid代理服务器

在Ubuntu 20.04上配置Squid代理服务器

默认的Squid代理配置文件位于/etc/squid/squid.conf。该文件已经具有一些最低限度的工作设置,但是您可以根据自己的喜好更改它们。首先,备份原始文件。

sudo cp /etc/squid/squid.conf  /etc/squid/squid.conf.orig

接下来,在/etc/squid/squid.conf中进行自定义设置。使用任何文件编辑器打开文件

sudo vim /etc/squid/squid.conf

1.更改Squid的默认端口

默认的Squid tcp端口为3128。要更改此设置,请打开squid.conf文件并查找http_port行。更改为所需的端口号并保存文件。

#http_port 3128
http_port 8080

允许端口通过防火墙

sudo ufw allow 8080/tcp
sudo ufw enable

2.设置Squid缓存大小

使用以下设置来设置所需的缓存。就我而言,我正在使用256 MB

cache_mem 256 MB

3.指定要使用的DNS名称服务器

要定义自己的DNS服务器,请使用以下命令

dns_nameservers 8.8.8.8 8.8.4.4

4. Squid ACL和http_access

然后编辑squid.conf并添加所选规则。代理服务器选择要执行的操作。您可以允许来自特定网络/ IP地址的访问,而拒绝其他网络/ IP地址。您还可以通过限制访问某些网站或基于某些关键字阻止内容来使用它来过滤流量。这是使用ACL(访问控制列表)来完成的,这些ACL定义了允许和拒绝的内容。 Http_access定义基于ACL的允许或拒绝。

如何为Squid代理服务器定义ACL

ACL(访问控制列表)是一条语句,它定义了通过代理服务器允许的内容和拒绝的内容。所有陈述是 访问控制列表 规则名称如下。名字后 acltype 最后 论据 要么 文件。 如果使用文件,则文件中的每一行必须仅包含一项。

acl aclname acltype argument..
acl aclname acltpe “file”…

默认情况下定义的ACL规则是:您可以选择在每行的开头添加#来禁用它。请按照以下示例创建新规则。

示例1:通过Squid代理服务器允许LAN网络

创建一个ACL规则

acl my_lan src 192.168.100.0/24

现在根据定义的规则允许或拒绝。 http_access 命令。就我们而言,我们必须允许

http_access allow my_lan

每次创建ACL访问规则时,最后一条规则 拒绝一切..允许所有必需的站点时,需要执行此操作。否则,您可能会阻止访问所需站点。

http_access deny all

如何使用Squid代理服务器拒绝访问某些网站

与许多网站一起使用时,将所有网站都放在一个文件中并进行调用会更容易,更有条理。否则,请在acl规则中列出引号。在此示例中,在squid目录中创建一个名为dennedsites.squid的文件。

sudo vim /etc/squid/deniedsites.squid

添加网站以拒绝访问。就我而言,我使用Facebook和YouTube。以后保存文件。

.facebook.com
.youtube.com

然后打开squid.conf,为被拒绝的站点创建ACL规则,添加拒绝规则并保存文件。

acl deniedsites dstdomain “/etc/squid/deniedsites.squid”
http_access deny deniedsites

要列出ACL规则中的网站:

acl deniedsites dstdomain facebook.com youtubecom
http_access deny deniedsites

请注意,每次进行更改时都必须重新启动Squid服务器

systemctl restart squid

如何基于Squid代理服务器的某些关键字阻止流量

创建一个包含关键字的文件。创建一个ACL规则以使用文件名拒绝流量。

sudo vim /etc/squid/keywords.squid.

添加关键字并保存。

gamble
nudes

编辑squid.conf以创建ACL,拒绝保存规则, 重新启动鱿鱼。

acl keywords url_regex -i "/etc/squid/keywords.squid"
http_access deny keywords

最后,将添加文件并显示如下。

对于ACL

在Ubuntu 20.04上安装和配置Squid代理服务器

对于http_access

在Ubuntu 20.04上安装和配置Squid代理服务器

要在Squid代理服务器上打开端口,请使用以下命令语法

acl Safe_ports port 

如何在Squid代理服务器上屏蔽出站流量

代理服务器打算通过代表其公开代理IP地址来隐藏其身份。但是,代理可以通过http出站流量使IP可见。要禁用此功能,请编辑 squid.conf 通过头文件和禁用。为此,请检查以下行 #通过..取消注释后更改 关。

# via on
via off

另外,代理服务器不应将客户端的IP地址添加到它转发的http请求中。更改以下行以禁用此功能 squid.conf 文件。

要隐藏Squid代理服务器,请删除Squid代理标头。将以下行添加到TAG。 request_header_access。

request_header_access From deny all
request_header_access Server deny all
request_header_access WWW-Authenticate deny all
request_header_access Link deny all
request_header_access Cache-Control deny all
request_header_access Proxy-Connection deny all
request_header_access X-Cache deny all
request_header_access X-Cache-Lookup deny all 
request_header_access X-Forwarded-For deny all
request_header_access Pragma deny all
request_header_access Keep-Alive deny all

记住要保存squid.conf文件并重新启动squid

systemctl restart squid

如何检查Squid配置错误

以下命令将指出配置文件中可能存在错误的地方

sudo squid -k parse

如何配置客户端通过Squid代理服务器进行连接

配置用户身份验证

首先,让用户通过Squid代理进行创建和认证。您需要在squid.conf文件中启用http身份验证。安装apache2-utils。

apt install -y apache2-utils

创建一个用于存储用户的文件。该矿被称为“ passwd”。该文件必须由代理(默认的Squid用户)拥有。

touch /etc/squid/passwd
chown proxy: /etc/squid/passwd

我们添加一个名为lorna的用户

htpasswd /etc/squid/passwd lorna
New password:
Re-type new password:
Adding password for user lorna

添加以下行 squid.conf 文件。添加后,保存鱿鱼并重新启动。

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

重要的是要检查basic_ncsa_auth的位置,以确保使用正确的路径并且没有错误发生。使用以下命令。

dpkg -L squid | grep ncsa_auth

Squid文件如下所示:

在Ubuntu 20.04上安装和配置Squid代理服务器

要测试Squid代理服务器是否正常运行,请转到客户端Web浏览器,例如: 火狐浏览器,并手动配置代理身份验证。开门 火狐浏览器,点击条子 它在最右边。下面 编辑,点击 味道..点击 组态 下面 网络设置..在出现的页面上,打开时钟 手动代理配置n单击单选按钮,然后输入代理服务器详细信息。如果需要,可以排除其他IP地址的代理。没有代理

在Ubuntu 20.04上安装和配置Squid代理服务器

确保您的Squid代理设置有效。打开Firefox浏览器,然后尝试搜索受限网站,例如youtube.com。显示“代理服务器拒绝连接”页面。

在Ubuntu 20.04上安装和配置Squid代理服务器

打开另一个不受限制的站点。输入用户名和密码后,将提示您进行身份验证以访问该站点。

在Ubuntu 20.04上安装和配置Squid代理服务器

这是有关如何在Ubuntu 20.04上安装和配置Squid代理服务器的分步指南。你是否玩得开心?以下是每日Linux安装的详细指南

  • 如何在Debian 10(Buster)上安装和配置HAProxy
  • 如何为信号量Ansible Wed UI配置Nginx代理
  • 如何在Ubuntu / Debian Linux上安装Envoy代理
  • 如何从Web界面管理HAProxy服务器

这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。

以PDF格式下载指南


这是续集。

这是续集。
这是续集。

Sidebar