fSense:开源防火墙打造固若金汤网络作者: 落英缤纷, 出处:51cto, 责任编辑: 张帅, 2008-11-28 11:26
pfsense是开源的、经过改造的FreeBSD的定制版本,其最新版本包括了商业防火墙中的许多特性,包括基于Web的图形用户管理界面。本文将带用户一起体验pfsense。
严格说来,pfsense是一个免费的、 开源的、经过改造的FreeBSD的定制版本,它主要用作防火墙和路由器。除了可以作为一个强健而灵活的防火墙和路由平台,它还包括其它的许多相关特性和程序包,可以进一步扩展性能而不会增加潜在的安全漏洞。据悉,pfSense已经被下载了几百万次,被许多家庭、公司、大学等的网络采用来保护其计算机及其它的网络设备。 此项目是作为m0n0wall的一个子项目于2004年开始的,它着重于完整的PC安装而不是m0n0wall的嵌入式硬件系统。此外,pfSense还提供了基于安装的Compact Flash嵌入镜像,但这并不是其最关注的问题。
其最新版本为1.2,包括了商业防火墙或路由器设备中的许多特性,它包括了一个易管理的基于Web的图形用户界面。虽然它拥有免费防火墙、路由器的一些不错的特性,但也并非完美无缺。笔者将在后面有所阐述。
pfsense技术特征
pfSense作为一个防火墙,支持根据IP地址、源地址、目的地址、源端口、目标端口等进行过滤。例如,如果我们使用源地址过滤,并设置对内部网络的子网IP地址进行监视,那么源自此地址的通信或请求将根据防火墙规则进行分析。如果我们使用目标过滤,那么防火墙将监视数据通信将要到达的IP地址。如果目标地址位于防火墙规则中,防火墙就会实施恰当的行动。
最好的防火墙特性之一是其被动的操作系统指纹识别功能,此功能可以被动地检测某个连接的操作系统,并准许防火墙根据连接节点的操作系统来阻止连接。它支持策略路由,可通过桥接或透明模式运行,准许用户将pfSense置于网络设备中,而不要求额外的配置。pfSense提供了网络地址转换(NAT)和端口转发功能,但在使用NAT时,有PPTP、GRE、SIP等协议的限制。
还有一点,pfSense支持多个广域网连接,它可以执行外发的和进入的负载平衡。唯一的限制是它只能在广域网连接之间实现通信的均等分配,而且用户不能根据选定的连接区分特定通信的优先次序。
pfSense使用IPSec、OpenVPN、PPTP,它支持虚拟私有网络(VPN)。因为有NAT的限制,在连接是通过NAT实现时,IPSec VPN也受到了限制,从而缺乏对远程或移动VPN客户端的支持。此软件还支持一些高级的IPSec特性,如网际密钥交换(IKE)中的NAT Traversal,这称为NAT-T,还支持Xauth。用户可以选择OpenVPN来突破这方面的一些限制,不过仍会存在一些限制。虽然开发团队承诺在其未来的版本中将解决这些限制。
软件安装
pfSense的下载地址是:http://www.pfsense.org/index.php?option=com_content&task=view&id=58&Itemid=46可以选择嵌入式程序包,也可以选择CD ISO程序包。如果用户仅打算将此软件用在一个精简网络设备(利用闪存技术进行存储)上,可以选择嵌入式程序包。不过,多数人可能需要在一台普通的电脑上选择CD ISO程序包。此软件至少要求128MB的内存,并要求至少有两个网卡,分别用作广域网和局域网接口。这种最低要求对于吞吐量少于10Mbps的系统来说很有用处。随着用户的网络吞吐量和功能使用的增加,pfSense的要求也会同样如此。
安装界面如下图1所示:
图1 笔者下载了60MB的CD ISO,将其烧录到一光盘上。在用此CD启动时,用户面临着几种选择。如果用户初次安装此软件,可以选择默认选项。初始的启动过程主要设置VLAN,并选择LAN和WAN的接口。用户可以自动地检测接口设置,不过需要确保接口已经连接。如果没有连接,用户就必须手动输入接口名称。笔者为局域网选择了le0,WAN设置为le1。VLAN配置界面如下图2所示:
图2 在最初的配置之后,启动过程继续进行,然后我们就会看到软件的控制台,也就是一个简单的菜单,它允许用户配置接口设置,激活Web配置和其它服务,重置到出厂时的状态,将pfSsense安装到硬盘。pfSense自动地将一个IP地址分配给局域网接口,不过笔者想使用一个特定的IP地址,所以必须改变IP地址,只有这样才能在安装期间可以使用新IP地址。
如果用户选择了推荐的分区,pfSense将为用户创建此分区。不过,用户仍然可以拥有创建自己分区的选择。笔者选择了推荐的分区选择,在安装期间,pfSense会询问用户要安装在何种类型的平台上(是单处理器还是多处理器)。笔者选择了单处理器系统。在安装完成后,重新启动机器,使用局域网的IP地址进行配置,访问Web配置接口。 |