且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

pfSense安装和配置pfBlockerNg

更新时间:2022-09-07 10:54:57

   pfBlockerNG是一个可以安装在pfSense中的软件包,可以将防火墙的功能扩展到L2 / L3 / L4防火墙之上。由于攻击者和网络犯罪分子的能力不断提高,管理员必须不断提高防火墙的防御能力。

   pfBlockerNG为pfSense提供了允许/拒绝决策的能力,例如IP地址的地理位置、域名或特定网站的Alexa评级等。限制域名的功能非常有用,它允许管理员阻止尝试连接到已知不良域名。

   本教程将通过配置pfSense防火墙设备来使用pfBlockerNG软件包,以及添加/配置pfBlockerNG域名阻止列表的示例。


基本要求

本教程的基本配置环境如下:


全新安装的pfSense防火墙。

一个WAN和一个LAN接口。

LAN的IP范围:192.168.0.0/24。


实验图

下图是本文将使用的pfSense环境。

pfSense安装和配置pfBlockerNg

pfSense 网络拓扑


在pfsense中安装pfBlockerNG

第一步是连接到pfSense防火墙的Web界面。 这个实验室环境使用192.168.0.0/24网络,防火墙网关地址为192.168.0.1。在浏览器地址栏输入“https://192.168.0.1”,进入pfSense登录页面。


pfSense安装和配置pfBlockerNg

pfSense 登陆窗口

登录pfSense页面后,点击‘System(系统)’菜单,进入‘Package Manager(软件包管理)’。

pfSense安装和配置pfBlockerNg

pfSense 软件包管理

单击‘Available Packages(可用软件包)’。

pfSense安装和配置pfBlockerNg

pfSense 可用软件包

找到‘pfBlockerNG软件包,单击边上的 ‘+’ 进行安装。并单击“Confirm(确认)”开始安装。

pfSense安装和配置pfBlockerNg

安装fBlockerNG

一旦确认,pfSense将开始安装pfBlockerNG。 这里注意不要离开安装页面, 等待安装结束。

pfSense安装和配置pfBlockerNg

pfBlockerNG 安装

安装完成后,我们开始pfBlockerNG配置。pfBlockerNG配置后,DNS请求的网站将会由运行pfBlockerNG软件的pfSense防火墙进行筛分和拦截。 pfBlockerNG会将已知不良域名的更新列表映射到错误IP地址。

pfSense防火墙需要拦截DNS请求,以便过滤掉不良域名,并使用UnBound的本地DNS解析器。 这意味着LAN接口上的客户端需要使用pfSense防火墙作为DNS解析器。

如果客户端请求pfBlockerNG阻止列表中的域名,那么pfBlockerNG将返回该域名的一个虚拟IP地址。

 

pfBlockerNG 配置

第一步是在pfSense防火墙上启用UnBound DNS解析器。 点击“Services(服务)”下拉菜单,然后选择“DNS Resolver(DNS解析器)”。

pfSense安装和配置pfBlockerNg

pfSense DNS 解析器

首先选中“Enable DNS resolver(启用DNS解析器)”的复选框。

Listening port(侦听端口),选53。

Network Interfaces(网络接口),一般是LAN接口和Localhost。

Outgoing Network Interfaces(出口网络接口) ,在此配置中选WAN。


pfSense安装和配置pfBlockerNg

启用DNS解析器

选择完成后,请单击页面底部的“Save(保存)”,然后点击页面顶部出现的“Apply Changes(应用更改)”按钮。

下一步是pfBlockerNG配置的第一步。 导航到“Firewall(防火墙)”菜单下的pfBlockerNG,然后单击“pfBlockerNG”。


pfSense安装和配置pfBlockerNg

配置pfBlockerNG 


单击“DNSBL(DNS阻止列表)”选项卡,开始设置DNS阻止列表,然后再激活pfBlockerNG。pfSense安装和配置pfBlockerNg

设置NS 列表

选中“Enable DNSBL(启用DNSBL)”复选框(以下以绿色突出显示)。

在“DNSBL Virtual IP(虚拟IP)”中输入虚拟的IP地址。这个地址不是正在使用的pfSense网络上的有效IP。该IP将用于收集统计信息以及监视被pfBlockerNG拒绝的域名。


pfSense安装和配置pfBlockerNg

启用NSBL 

向下滚动页面,进行其他设置。

DNSBL Listening Interface(侦听接口),设置为“LAN”。

DNSBL IP Firewall Settings(防火墙设置)下的“List Action(列表动作)”, 这个设置决定当DNSBLfeed 提供IP地址时应该做什么。

pfBlockerNG规则可以设置为执行任意数量的操作,一般情况下选择“Deny Both(拒绝两者)”, 这将阻止与DNSBL feed IP /域的入站和出站连接。。

pfSense安装和配置pfBlockerNg

配置NSBL

选择项目后,滚动到页面底部,然后单击“SAVE(保存)”按钮。 

pfBlockerNG为管理员提供了单独或一起配置的两个选项。 这两个选项是来自其他网页或EasyLists的手动Feed。

要了解有关不同EasyLists(简单列表)的更多信息,请访问:https://easylist.to/


配置 pfBlockerNG EasyList(简单列表)

我们首先讨论并配置EasyLists,一般用户有这些列表就已经可以了,而且容易管理。

pfBlockerNG中的两个EasyLists是“EasyList w/o Element Hiding”和“EasyPrivacy”。 要使用这些列表,请首先点击页面顶部的“DNSBL EasyList”。


pfSense安装和配置pfBlockerNg

配置 DNSBL EasyList

需要进行以下设置:

  • DNS Group Name(DNS组名) – 用户自定义,不能使用特殊字符。

  • Description(描述) – 输入一个描述说明,供管理员参考。

  • EasyList Feed – 选择添加哪个列表(EasyList或EasyPrivacy)

  • Header/Label – 用户自定义,不能使用特殊字符。

pfSense安装和配置pfBlockerNg

配置EasyList 

下面的设置部分都是用户的个人偏好,可以根据需要选择多个。 “DNSBL - EasyList Settings”中比较重要的设置如下:

  • Categories(分类) – 用户选择的列表种类,可以多选。

  • List Action(列表动作) – 为了回应DNS请求,这里请设置为“Unbound”

  • Update Frequency (更新频率)– 列表更新的频率。

pfSense安装和配置pfBlockerNg

DNSBL EasyList 设置

当EasyList设置完成,请单击页面底部的“Save(保存)”按钮, 页面将会重新加载后,然后再单击“Update(更新)”选项卡。

在更新选项卡上,选中“Reload(重新加载)”选项,然后选中“ALL(所有)”选项, 来下载EasyList配置页面上选择的阻止列表。

以上这些,必须手动完成,否则只能在设定的更新频率后自动下载列表。更改设置后(添加或删除列表)确保运行这个步骤。

更新asyList 设置

注意查看下面的日志窗口是否有错误, 如果一切顺利,防火墙的LAN端的客户端机器通过pfSense防火墙应该可以查询已知的不良站点,并收到不良IP地址的信息。 注意,客户端机器必须设置使用pfsense作为其解析器!

pfSense安装和配置pfBlockerNg

检查Nslookup的错误 

请注意上面的nslookup,网址返回的结果是我们在pfBlockerNG配置的伪IP, 这是我们期望的结果。 这将导致对“100pour.com”网址的任何请求被指向虚拟IP地址10.0.0.1。

为pfSense配置DNSBL Feed

与AdBlock EasyLists相反,我们可以在pfBlockerNG中使用其他的DNS黑名单。 这些列表通常可以被拉入pfBlockerNG。 下面是这些可用资源的列表:

  • https://forum.pfsense.org/index.php?topic=114499.0

  • https://forum.pfsense.org/index.php?topic=102470.0

  • https://forum.pfsense.org/index.php?topic=86212.0

 个人最喜爱的一些列表包括以下内容:

  • http://adaway.org/hosts.txt

  • http://www.malwaredomainlist.com/hostslist/hosts.txt

  • http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&mimetype=plaintext

  • https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist

  • https://gist.githubusercontent.com/BBcan177/4a8bf37c131be4803cb2/raw


下面我们来配置添加DNSBL Feed:

首先导航到‘Firewall’ -> ‘pfBlockerNG’ ->DSNBL’。

在DNSBL配置页面上,点击“DNSBL Feeds”,然后单击“Add(添加)”按钮。

pfSense安装和配置pfBlockerNg

配置DNSBL Feeds

在这里允许向pfBlockerNG添加其他不良IP地址或DNS名称列表。

pfSense安装和配置pfBlockerNg

配置DNS 不良列表

这里的一些重要设置如下:

  • DNS Group Name(DNS组名) – 用户自定义。

  • Description (描述)– 便于管理使用。

  • DNSBL Settings(DNS黑名单设置)

    • State(状态) – 运行状态。

    • Source(源) – DNS黑名单的链接/来源

    • Header/Label – 用户自定义,注意不能使用特殊字符。

  • List Action(列表动作) –  设置为“nbound”。

  • Update Frequency(更新频率) – 设置列表多久更新一次。

设置完以后,点击页面底部的保存按钮。 与pfBlockerNG的任何修改一样,此次修改也将在下一个更新频率到达时自动生效。也可以手动强制重新加载,方法是导航到“Update(更新)”选项卡,选中“Reload(重新加载)”选项,选中“All(全部)” 选项,点击“Run(运行)”按钮。

pfSense安装和配置pfBlockerNg

DNSBL Feeds 更新设置

查看下面的日志窗口是否有任何错误, 如果一切顺利,可以从lan侧的客户端测试一个DNSBL配置中使用的一个域名进行nslookup,以测试列表是否正常工作。

pfSense安装和配置pfBlockerNg

查看DNS查询结果

从上面的输出结果可以看出,pfSense正在将在pfBlockerNG中配置的虚拟IP地址作为黑名单域名的不良IP返回。

在日常的管理中,管理员可以通过添加更多列表或创建自定义域/ IP列表来继续调整列表。pfBlockerNG会将这些受限域名重定向到一个假的IP地址。











本文转自 鐵血男兒 51CTO博客,原文链接:http://blog.51cto.com/fxn2025/1946870,如需转载请自行联系原作者