这篇文章简单介绍了pfSense和OPNsense的历史和不同特点,不同的用户可以根据需要选择其中之一。
历史
OPNsense®是一款基于FreeBSD 10的年轻防火墙操作系统,它一开始作为pfSense®的一个分支,都是从m0n0wall®出来的一个分支。他创立于2015年1月,2015年1月2日,它的官方网站上发布了第一个版本:15.1。OPNsense®版本分别代表年份(例15)和月份(例如1)。因此,版本15.1表示2015年1月,每年有两个主要版本:1月和7月。
基于FreeBSD的pfSense®也是m0n0wall®的一个分支,在2004年9月由Chris Buechler和Scott Ullrich负责,用以克服该嵌入式系统的一些局限性。m0n0wall®是一个嵌入式防火墙; 他的功能很强大,但可扩展性受到限制,因为操作系统完全在RAM中执行。pfSense®这个名字的由来,可以看看这篇博文。
m0n0wall®项目于2015年2月15日永久终止 。其创始人Manuel Kasper鼓励所有用户使用OPNsense®。
为什么要分支
OPNsense®开发商已经参加了多年的pfSense®项目,但是,在2014年,因为想做出一些与众不同的事情,他们决定创建自己的项目,以更好地反映他们自己的需求。一开始分支的原因在技术方面,主要是安全性和代码质量。但最后,分支是由于pfSense®CE所做的许可证更改而引起的,这引起了社区白领们的失望。
如果您希望了解分支原因的更多详细信息,请参阅以下链接:
https://docs.opnsense.org/fork/thefork.html#so-why-did-we-fork
https://m.reddit.com/r/PFSENSE/comments/3rh9dw/pfsense_vs_opnsense/
[OpnSense®:许可证]
它是在一个名为BSD 2-Clause“Simplified”或“FreeBSD”许可OSI认可的开放源代码许可下发布的(Open soruce Initiative – Approved),即由致力于推广自由软件的组织批准。
[pfSense®:许可证]
我们来谈谈这个讨论得很多的许可证。
pfSense® 在2014年使用ESF许可证更改了它的许可证,该许可证是四项许可证(原始“ BSD许可证 ”)。你可以在较旧的软件版本的COPYRIGHT文件中找到此许可证信息。
最近它又被替换了,现在也在OSI许可的Apache License 2.0下发布 。
所有希望为pfSense®项目贡献力量的人都必须订阅并以电子方式签署ICLA(个人贡献者许可协议)。
如果您希望获得更多相关信息,可以查看以下链接:
https://doc.pfsense.org/index.php/Contributor_License_Agreement_for_Developers
https://www.pfsense.org/about-pfsense/index.html#legal
在Wikipedia网页下方,其中发布了一些有关许多开源的比较表和免费许可证: 比较许多开源和免费许可证的表格。
技术差异
OPNsense® 宣称几乎所有的代码都被重写了,只保留了10%的一小部分仍然与他的哥哥共享,并解决了许多pfSense®的内核问题。
[OpnSense®:Phalcom]
新的图形用户界面是用Phalcon PHP框架编写的,据我们所知,它是市场上速度最快的开源框架。选择尝试使用该系统的用户可以使用这种新设计,该设计结合了高效的搜索系统(真正有用且功能强大)以及一个有趣的模块,称为“系统健康”。该模块是交互式的,可以让您在任何分析过程中获得图形反馈。有助于更快、更简单地查找问题或只是查看图表。进入系统健康状态后,可以隐藏视图中的一些条目,并使用图形光标/焦点(图形下方的右下角)对相关时间范围进行缩放。最后,我们可以以CSV格式从表格中导出数据(显示在激活Show Table On的图表下方)。这里有一些截图显示了这个有趣的形式。
[pfSense®:Bootstrap]
pfSense®从2.3版开始,通过将所有内容转换为Bootstrap引入了新外观。页面和菜单的布局保持不变, 方便已经熟悉“旧”GUI的众多用户使用新系统。这里可以找到在开发的最后阶段发布的图库。
[OpnSense®:嵌入式IPS]
从16.7版(2016年7月28日发布)开始,有望对称为Inline Intrusion Prevention的IPS系统进行更改。不仅限于阻止IP或端口,还可以检查数据包,并且当它检测到某种类型的流量(或连接)时,数据包/连接会在到达发送方之前立即被丢弃/停止。基于Suricata使用Netmap来提高性能并降低CPU利用率。系统使用规则集,黑名单和指纹打印。欲了解更多信息,请访问这里。
[pfSense®:IPS]
pfSense上可以安装Snort插件,Snort是一个开源(最近由思科购买)工具,它能够实时在IP网络上执行流量分析,执行协议分析,内容搜索/匹配,并可用于检测各种攻击和探测,如缓冲区溢出、隐形端口扫描、CGI攻击、SMB探测、操作系统指纹尝试等等。Snort和Suricata功能比较,可以参阅这里。
[OpnSense®:更新]
每周都会发布安全更新来适应新的威胁。
[pfSense®:更新]
pfSense®会经常发布更新,但频率没有OPNsense高。从2.3开始,已经将底层系统转换为FreeBSD®pkg,从而允许单独更新系统的某些部分,而不是单独更新过去的所有更新。
[社区]
这是两个项目之间的主要区别之一。与pfSense®政策相反,OpnSense®不支持创建和安装第三方插件。OpnSense®开发人员坚持这一选择,以避免可能的代码缺陷。详情见请点击这里。
[OpnSense®:社区]
OPNsense®取消了插件并引入了一个插件系统。所有想要参与项目的人都可以通过点击这里了解更多详细信息。
[pfSense®:社区]
正如前面提到的那样,社区必须签署一个ICLA,但可以像过去几年一样做出贡献。
有关上述信息的更多信息,请参阅以下链接:
https://docs.opnsense.org/fork/thefork.html#debunking-the-myths
https://opnsense.org/about/about-opnsense/
https://docs.opnsense.org/fork/nomoremyths.html
https://docs.opnsense.org/development/examples/helloworld.html
OPNsense®与pfSense®:功能比较
特征 | OPNsense® | pfSense® |
防火墙 | 状态检查 | 状态检查 |
基于Web的图形界面 | 基于Phalcon PHP框架的Bootstrap | *从2.3迁移到Bootstrap |
安装安装向导 | 是 | 是 |
可配置仪表板 | 是 | 是 |
IPv4和IPv6支持 | 是 | 是 |
无线接入点 | 是 | 是 |
无线客户端支持 | 是 | 是 |
设置和筛选/隔离多个 | – | 是 |
接口(LAN)DMZ等) | 是 | 是 |
流量管理 | 是 | 是 |
状态表控件 | 是 | 是 |
NAT | 是 | 是 |
冗余/高可用性 | 是 | 是 |
多WAN支持 | 是 | 是 |
服务器入站负载平衡 | 是(虚拟服务器设置) | 是 |
网络诊断工具 | 有 | 有 |
[ping] | 是 | 是 |
[跟踪路由] | 是 | 是 |
[通过GUI进行端口测试] | 是 | 更多与包]如nmap |
VPN | ||
[IPsec(包括第2阶段NAT)] | 是 | 是 |
[OpenVPN] | 是 | 是 |
[L2TP] | 是(tramite插件) | 是(tramite插件) |
[PPPoE的] | 是(tramite插件) | 是(tramite插件) |
[PPTP] | 有(不认为安全) | 无(因不确定而被删除) |
RRD图 | 否(系统健康) | 是 |
实时接口流量图 | 是 | 是 |
动态DNS | 是 | 是 |
入网门户 | 是 | 是 |
DHCP服务器和中继(IPv4和IPv6) | 是 | 是 |
命令行shell访问 | 是 | 是 |
局域网唤醒 | 是 | 是 |
内置数据包捕获/嗅探器 | 是 | 是 |
备份和恢复fw配置 | 是 | 是 |
通过Web GUI编辑文件 | 是 | 是 |
虚拟接口: | ||
[VLAN] | 是 | 是 |
[LAGG / LACP] | 是/否 | 是/是 |
[GIF] | 是 | 是 |
[GRE] | 是 | 是 |
[PPPoE / PPTP / L2TP / PPP WAN] | 是/是/是/是 | 是/是/是/是 |
[QinQ]和网桥] | 是 | 是 |
缓存DNS转发器/解析器 | 是 | 是 |
可以运行在许多虚拟化环境中。 | 是 | 是 |
代理服务器 | 是 | 使用插件 |
IPS | 是(基于Suricata) | SNORT(扩展插件) |
IDS | 是(基于Suricata) | SNORT(扩展插件) |
安全更新 | 每周 | 不定期发布修补版本 |
Raid软件 | 非正式支持* | 全面支持 |
pfSense®VS OPNsense:实际表现
为了有一个全面的比较,我们决定现场测试一些系统性能。我们选择在两个防火墙入口后面连接的两台主机之间进行文件传输测试。所使用的测试网络图如下:
从Host1到Host2的流量通过两个防火墙系统,在这两个防火墙系统上我们为所有测试设置了相同性能的硬件。测试过程中记录了以Mbps报告的数值:
- 通过OpenVPN
- 通过 IPSec VPN
- 通过直接路由
两种防火墙在所有情况下的表现都一样。以下是测试结果:
吞吐量 | OPNsense® | pfSense® |
文件传输OpenVPN | 40-42 Mbps | 40-42 Mbps |
文件传输直接(路由) | 150-330Mbps | 150-330Mbps |
文件传输IPSec VPN | 150Mbps | 150Mbps |
硬件设备配置指南对OPNsense®和pfSense都有效。可以点击这里查看。
结论
在网络上你可以看到许多针对这两个防火墙优缺点的各种评论。两者之间的竞争对于项目和最终用户都是有利的,无论你选择哪一种防火墙,他们都会是一个好产品。除了已经描述的微小差异之外,两个防火墙非常相似。系统性能基本相同,都是从同一个操作系统派生。
在硬件兼容性方面,我们没有注意到特别的差异以及特性:差不多有90%是相同的。从图形上看,OPNSense®比pfSense®更好,菜单更加直观。
或许在未来,两者的差异会更加明显,那么选择另一种解决方案相当困难。你如果在意更好看的图形布局、更具有吸引力和更令人满意的菜单,那么选择OPNSense®;如果你在意更多经验的积累、优秀的社区和更好的声誉,那么选择pfSense®。
相反,让我们感到有点困惑的是,pfSense®和Community徽标下的社区版铭文所执行的持续许可证类型修改:将来是否会有不同的政策?我们拭目以待。
其他
Scott Ulrich和Chris Buechler 于2016年7月28日正式离开 pfSense®项目,之后他接受了Ubiquiti Networks的首席工程师职位。