在pfSense上安装和设置Squid代理

在本教程中,我们将学习如何在pfSense上安装和设置Squid代理。 pfSense是一种免费的开源防火墙和路由器,还具有统一的威胁管理,负载平衡,多WAN和许多其他功能,这些功能已在上全面介绍。 pfSense功能页面

乌贼 是Web的缓存代理,支持HTTP,HTTPS,FTP等。通过缓存和重用经常请求的网页,它减少了带宽并缩短了响应时间。 Squid具有广泛的访问控制,是一个出色的服务器加速器。

您可以通过以下链接了解如何在KVM Hypervisor上安装pfsense。

在KVM上安装pfSense防火墙

在pfSense上安装和设置Squid代理

假设您已经有一个正在运行的pfSense,请继续安装和配置Squid代理。

在pfSense上安装Squid软件包

可以通过以下方式将Squid软件包安装在pfSense上: 系统>程序包管理器 Web界面上的菜单。

软件包管理器打开后,单击 可用包装 然后输入 squid 作为搜索栏上的搜索词。

请点击 搜索 按钮搜索鱿鱼包。您应该能够看到与乌贼相关的软件包。

在pfSense上安装和设置Squid代理

从上面的搜索输出中,我们仅对安装Squid感兴趣。因此,通过单击最右边的安装按钮开始安装Squid代理软件包并确认安装。

安装完成后,您应该能够看到这样的屏幕。

在pfSense上安装和设置Squid代理

您现在应该可以在下面看到这两个软件包 已安装的套件 标签。

在pfSense上安装和设置Squid代理

在pfSense上配置Squid代理服务器

安装完成后,您可以继续在pfSense上配置Squid代理服务器。

导航 服务 > 鱿鱼代理服务器

配置Squid代理服务器本地缓存

点击 本地缓存 标签以定义Squid Proxy缓存管理设置。

在我们的设置中,我们仅将磁盘缓存大小更改为3GB(3000MB),并保留了其他默认设置,包括默认缓存目录, /var/squid/cache

在pfSense上安装和设置Squid代理

完成设置后,点击 保存 按钮位于页面底部。

配置Squid代理服务器常规设置

点击 一般 标签以启用Squid Proxy服务器并定义其他常规设置。

鱿鱼常规设置 部分;

  • 选中旁边的框 启用鱿鱼代理 启用鱿鱼。
  • 选择代理服务器将绑定到的接口,我们选择了 局域网 本演示中的界面。
  • 设置代理端口,我们使用默认 3128 在这个演示中
  • 选中旁边的框 允许用户进入界面 使连接到与代理LAN接口相同子网的用户选择自动访问,而无需创建允许 访问控制 清单 为他们。

在pfSense上安装和设置Squid代理

我们将跳过使用 透明代理SSL过滤 演示中的设置。

配置Squid代理日志记录设置

  • 启用记录
  • 设置日志存储目录, /var/squid/logs, 默认
  • 设置日志文件应保留的时间。

在pfSense上安装和设置Squid代理配置其他Squid代理自定义

  • 配置其他自定义项,包括可见的鱿鱼主机名,管理电子邮件,代理服务器混乱语言。这些详细信息显示在错误消息中
  • 使您的Squid代理在转发的HTTP请求中附加客户端的IP地址。
  • 在请求和回复中禁用Squid Via标头
  • 在HTTP标头和HTML错误页面中启用对鱿鱼版本字符串信息的抑制。

在pfSense上安装和设置Squid代理

您可以点击 显示高级选项 有关进一步的配置选项。

请点击 保存 完成配置后。

配置Squid代理服务器访问控制列表

现在,您可以继续配置Squid代理访问控制列表,以定义允许或拒绝代理服务器上访问的元素。

如果您在上面的常规设置中注意到,我们启用了 允许用户进入界面。这意味着,连接到代理LAN接口子网的用户将自动被允许通过代理进行连接,而无需该特定子网的ACL。

在我们的设置中,我们具有三个界面,如下所示:

在pfSense上安装和设置Squid代理

因此,我们将代理接口设置为LAN,这意味着将连接到该子网的所有用户将不需要任何ACL即可使用代理。

我们还有第三个界面 OPT1,如上面的屏幕截图所示。我们的客户将通过此子网连接到代理。让我们为此子网创建一个ACL;

请点击 访问控制列表 标签,然后在允许的子网下,输入允许通过代理连接的子网。

在pfSense上安装和设置Squid代理

您可以进一步设置ACL,用于不受限制的IP,黑名单,白名单,被禁止的主机,被阻止的用户代理…

定义您的安全端口(如果有)以添加到已经预定义的端口。

如果您要定义其他自定义设置,请单击 显示高级选项 配置它们。

请点击 保存 配置后。

允许OPT1界面中的主机在防火墙上使用代理

接下来,您需要为代理服务器定义目标IP和端口,并将防火墙设置为允许特定子网上的所有主机通过代理服务器传递所有流量。

导航 防火墙>规则 >选择您的界面,在这种情况下, OPT1

  • 单击任一添加按钮以添加防火墙规则。
  • 通过将操作设置为允许流量通过 通过
  • 选择流量来自的接口,选择IP地址族和协议。

在pfSense上安装和设置Squid代理

定义源和目标,如下面的屏幕快照所示。 注意 我们将目标设置为配置了代理绑定的LAN接口。

在pfSense上安装和设置Squid代理

配置完规则后,点击 保存 然后 应用更改 重新加载防火墙配置。

您的规则现在应该看起来像;

在pfSense上安装和设置Squid代理

测试鱿鱼代理

从字面上看,您的代理服务器现已准备就绪。我将在具有以下IP详细信息的Ubuntu 20.04桌面上进行测试;

ip add show enp0s3
2: enp0s3:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:99:9a:af brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.10/24 brd 192.168.10.255 scope global noprefixroute enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::1b2a:9fab:fa5b:a375/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
ip route show default
default via 192.168.10.1 dev enp0s3 proto static metric 20100

测试代理IP的可达性;

ping 192.168.57.100 -c 4
PING 192.168.57.100 (192.168.57.100) 56(84) bytes of data.
64 bytes from 192.168.57.100: icmp_seq=1 ttl=64 time=1.22 ms
64 bytes from 192.168.57.100: icmp_seq=2 ttl=64 time=1.23 ms
64 bytes from 192.168.57.100: icmp_seq=3 ttl=64 time=1.09 ms
64 bytes from 192.168.57.100: icmp_seq=4 ttl=64 time=0.964 ms

--- 192.168.57.100 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3007ms
rtt min/avg/max/mdev = 0.964/1.126/1.226/0.107 ms

检查与代理端口的连接;

telnet 192.168.57.100 3128
Trying 192.168.57.100...
Connected to 192.168.57.100.
Escape character is '^]'.

在Firefox浏览器上配置代理设置。

在Firefox上,将其配置为通过Squid服务器连接外部网络。 优先 > l> 网络设置>手动代理配置。检查一下 将此代理服务器用于所有协议。

在pfSense上安装和设置Squid代理

您现在应该可以通过Squid Proxy访问互联网。

如果您使用的是Google Chrome浏览器,该如何设置代理服务器设置?通过以下链接了解如何配置系统范围的代理设置

如何在Ubuntu系统上配置系统范围代理设置

检查乌贼日志

您可以拖尾鱿鱼日志以验证连接。

tail -f /var/squid/logs/access.log

例如,以下是尝试访问YouTube的示例日志;

...
1593755589.111   1184 192.168.10.10 TCP_TUNNEL/200 9507 CONNECT yt3.ggpht.com:443 - HIER_DIRECT/216.58.223.65 -
1593755589.131   1180 192.168.10.10 TCP_TUNNEL/200 7861 CONNECT yt3.ggpht.com:443 - HIER_DIRECT/216.58.223.65 -
1593755589.133   1197 192.168.10.10 TCP_TUNNEL/200 9363 CONNECT yt3.ggpht.com:443 - HIER_DIRECT/216.58.223.65 -
1593755589.177    257 192.168.10.10 TCP_TUNNEL/200 7716 CONNECT yt3.ggpht.com:443 - HIER_DIRECT/216.58.223.65 -
1593755589.185    272 192.168.10.10 TCP_TUNNEL/200 9518 CONNECT yt3.ggpht.com:443 - HIER_DIRECT/216.58.223.65 
...

您的Squid代理服务器现在正在pfSense网关上运行。这标志着本教程有关如何在pfSense上安装和设置Squid代理的结尾。

参考

在pfSense上配置Squid代理

Sidebar