pfSense是一个非常强大的开源防火墙/路由器解决方案。基于FreeBSD,pfSense非常注重安全性。即使是在“原始”配置中,pfSense的安全性也远超你能购买的任何现成路由器。
出厂时,pfSense提供许多工具来自定义你的安全网络设置。但除了其默认工具外,pfSense还提供了一个可安装的附加包仓库,以进一步增强你的设置。
相关指南:如何使用pfSense、Squid和SquidGuard在所有设备上屏蔽广告
文章简要:
pfSense,一个源自FreeBSD的高级防火墙/路由器解决方案,提供的安全级别超过了典型的商业路由器。
它通过诸如pfBlockerNG这样的附加包增强其实用性,通过IP和DNS黑名单提供了对进出连接的精细管理,从而提高了防火墙性能。pfBlockerNG的关键特性包括使用IP地址列表和GeoIP限制过滤流量、屏蔽广告以及通过DNS过滤保护免受恶意网站的侵害。
pfBlockerNG有效地对这些黑名单中的DNS请求进行筛选,充当一个有效的内容屏蔽器和安全工具,而且不需要代理服务器。
pfBlockerNG有两个核心用途:
进出站流量过滤
pfBlockerNG能够根据IP列表过滤进出站流量,并通过允许或拒绝来自特定国家的流量应用GeoIP限制。如果你在WAN上开放端口,后者功能可能非常有用。
通过DNS黑洞阻止广告和恶意网站
pfBlockerNG能够通过DNS过滤来阻止广告和访问恶意网站。在浏览网页时,你的DNS请求会被对照一个阻止列表检查。如果发现匹配,请求就会被阻止。这是一个不使用代理服务器就能阻止广告的好方法。
我们将查看这两种用例,并在处理每一种时进一步详细说明。
本指南假设你已经设置了pfSense,并且具有功能性的WAN和LAN接口。
让我们开始吧。
首先,我们需要做的是安装pfBlockerNG。
现在pfBlockerNG-devel已经安装好了,我们需要配置我们的包。我们将从IP和GeoIP过滤开始。
我们将逐部分配置pfBlockerNG。任何未提及的设置都应保留其默认值。
正如我上面提到的,pfBlockerNG的GeoIP功能允许你过滤来往整个国家或大陆的流量。为此,pfBlocker使用MaxMind GeoIP数据库,这需要一个许可证密钥。MaxMind许可证密钥字段描述中的链接将带你到MaxMind注册页面。 MaxMind许可证密钥是免费的。
填写注册表单以获取你的许可证密钥。一旦你有了许可证密钥,就将其插入MaxMind许可证密钥字段。
并且:
此部分确定pfBlockerNG的IPv4、IPv6和GeoIP过滤应用于哪些进出接口。
现在是时候向pfBlockerNG添加一些阻止列表了。虽然你可以自由添加你的自定义源,但pfBlockerNG内置了一些我们可以启用的源(在这个上下文中,列表和源是可以互换的术语)。
这非常实用,因为在互联网上寻找阻止列表既耗时又困难,而且很多要么无法工作要么不再维护。pfBlocker内的源是实时更新的活跃列表,所以我们将使用这些。
源集合的名称和描述被填充。集合中包括的源URL及其关联描述也被填充。然而,我们的源默认设置为关闭。我们需要启用它们。
但在做那之前,我们需要从PRI1集合中删除一个源。Pulsedive,从顶部数来的第7个源,是一个需要付费API密钥的高级列表。我们在这个教程中不会获取API密钥。点击删除按钮。
如果你的ISP给你的WAN分配了IPv4和IPv6 IP地址,你可以重复相同的步骤应用于IPv6。我们大多数人仍然使用的是仅IPv4的网络。
在配置 GeoIP 过滤之前,我们首先需要强制更新 pfBlockerNG。pfBlocker 会自动在固定时间间隔内进行更新。但要配置 GeoIP 过滤,pfBlocker 首先需要拉取 MaxMind 数据库,强制更新正是为此。
IPv4 日志
GeoIP 日志
GeoIP 概览包括按大洲组织的 IP 地址源,另外还有两个额外类别:顶级垃圾邮件发送者和代理和卫星。顶级垃圾邮件发送者是已知经常源于在线攻击的国家列表。代理和卫星是已知的匿名代理和卫星提供商。
你可以过滤来自/前往整个大洲的流量,或者你可以通过仅选择你想要过滤的国家来微调源。
现在,这里有一些需要考虑的事项。如果你想封锁对一个国家或大洲的出站连接,尽管去做。然而,如果你考虑封锁来自一个政府或大洲的入站链接,需要考虑到pfSense 默认会阻止 WAN 上所有未经请求的入站流量。
这意味着,除非你在 WAN 上开放了端口,否则封锁国家或大洲是无用的,只会无谓消耗内存。如果你在 WAN 上开放了端口,请确保你不要阻止你希望允许连接到你开放端口的国家的连接。
别名本身就是 pfSense 中的 IP 地址列表。使用别名,你可以只允许你选择的特定国家访问你的开放端口。然而,在 pfBlockerNG 内部可以从 MaxMind GeoIP 数据库创建自定义别名,这些别名可以直接作为你端口转发防火墙规则中的源使用。
因为 pfSense 会自动阻止任何未在防火墙规则中明确允许的流量,我们想要创建一个国家的别名,这些国家我们将允许通过防火墙。pfSense 将默认阻止其他国家。
将操作设置为原生别名。
如果你确实有开放的端口,但想要保持简单,你可以不创建自定义别名而直接封锁来自顶级垃圾邮件发送者和代理及卫星的入站连接。记住,这只有在你的 WAN 上有开放的端口时才有用。
如果你的 WAN 上没有任何开放的端口,只需封锁出站流量或关闭 GeoIP 过滤。
为了确保我们的流量正在被过滤,我们可以尝试连接到阻止列表中的一个已知 IP 地址。如果我尝试在浏览器中访问 1.13.9.177(我的 pfBlockerNG IPv4 源中包含的一个 IP),该 IP 地址不会被转换为域名,并且我无法连接。这正是我们想要的。
现在,让我们开始配置 pfBlocker 的 DNSBL。
好的。我们已经配置了 IPv4 过滤、GeoIP 过滤和别名。现在是时候使用 pfBlockerNG 进行广告屏蔽了。pfBlockerNG 中的广告屏蔽是通过 DNS 黑洞实现的。这将你的 DNS 请求与已知的广告网络和追踪器的列表进行比对,并在匹配时在 DNS 层面阻止它们,从而实现无广告的互联网。万岁。
要在 pfBlockerNG 中使用 DNSBL 功能,你必须在 pfSense 中使用DNS 解析器进行 DNS 解析。这意味着如果你想使用 DNSBL 功能,你不能通过 DHCP 分配你的主机 DNS 或使用 DNS 转发器(dnsmasq)。
默认情况下,pfSense 在所有接口上使用 DNS 解析器。所以,如果你没有对 DNS 解析器设置进行任何更改,那你就没问题。如果你做了更改,请配置解析器以绑定到你的 LAN(出站)和你的 WAN(入站)。并选择任何其他你希望 DNSBL 过滤的 LAN 类型(OPT 接口)和 WAN 类型(多 WAN 设置,VPN 网关)接口。
我们现在需要添加一些 DNSBL 源。
现在,我们需要像之前一样强制更新 pfBlockerNG。
更新完成后,我们可以看到我们的 DNSBL 源已经更新。
为了确保 DNSBL 过滤正在工作,我们将尝试连接到我添加到DNSBL 自定义列表的域名:vungle.com。如果我尝试在我的浏览器中访问 vungle.com,将显示 DNSBL 阻止页面,并提供一些有用的信息。
注意:pfBlocker 的 DNSBL 包括一个微型网页服务器,可以提供这个阻止页面。IPv4、IPv6 和 GeoIP 过滤扩展了 pfSense 防火墙的现有功能,可以阻止或允许 IP 地址,而不显示阻止页面。
就这样了。你已经成功地在 pfSense 中安装并配置了 pfBlockerNG-devel。我们配置了 IPv4 过滤、GeoIP 过滤以及 DNSBL 过滤。这三种方法都能让你的网络更加安全和私密,同时不会减慢你的连接速度。
随着你的网络增长,如果你想运行一个 VPN 服务器,或者想要从互联网上访问一个托管的网页服务器,你可能需要在你的 WAN 上开放某些端口。当你这样做时,pfBlockerNG 将是你安全工具箱中的一个好工具,帮助你锁定你的网络并精细地控制外部的访问权限。
相关:如何找到最好的 VPN