(转至中国IT实验室)
有一些问题常令用户困惑:在产品的功能上,各个厂商的描述十分雷同,一些“后起之秀”与知名品牌极其相似。面对这种情况,该如何鉴别?描述得十分类似的产品,即使是同一个功能,在具体实现上、在可用性和易用性上,个体差异也十分明显。
一、网络层的访问控制
所有防火墙都必须具备此项功能,否则就不能称其为防火墙。当然,大多数的路由器也可以通过自身的ACL来实现此功能。
1.规则编辑
对网络层的访问控制主要表现在防火墙的规则编辑上,我们一定要考察:对网络层的访问控制是否可以通过规则表现出来?访问控制的粒度是否足够细?同样一条规则,是否提供了不同时间段的控制手段?规则配置是否提供了友善的界面?是否可以很容易地体现网管的安全意志?
2.IP/MAC地址绑定
同样是IP/MAC地址绑定功能,有一些细节必须考察,如防火墙能否实现IP地址和MAC地址的自动搜集?对违反了IP/MAC地址绑定规则的访问是 否提供相应的报警机制?因为这些功能非常实用,如果防火墙不能提供IP地址和MAC地址的自动搜集,网管可能被迫采取其他的手段获得所管辖用户的IP与 MAC地址,这将是一件非常乏味的工作。
3、NAT(网络地址转换)
这一原本路由器具备的功能已逐渐演变成防火墙的标准功能之一。但对此一项功能,各厂家实现的差异非常大,许多厂家实现NAT功能存在很大的问题:难于 配置和使用,这将会给网管员带来巨大的麻烦。我们必须学习NAT的工作原理,提高自身的网络知识水平,通过分析比较,找到一种在NAT配置和使用上简单处 理的防火墙。
二、应用层的访问控制
这一功能是各个防火墙厂商的实力比拼点,也是最出彩的地方。因为很多基于免费操作系统实现的防火墙虽然可以具备状态监测模块(因为Linux、FreeBSD等的内核模块已经支持状态监测),但是对应用层的控制却无法实现“拿来主义”,需要实实在在的编程。
对应用层的控制上,在选择防火墙时可以考察以下几点。
1.是否提供HTTP协议的内容过滤?
目前企业网络环境中,最主要的两种应用是WWW访问和收发电子邮件。能否对WWW访问进行细粒度的控制反映了一个防火墙的技术实力。
2.是否提供SMTP协议的内容过滤?
对电子邮件的攻击越来越多:邮件炸弹、邮件病毒、泄漏机密信息等等,能否提供基于SMTP协议的内容过滤以及过滤的粒度粗细成了用户关注的焦点。
3. 是否提供FTP协议的内容过滤?
在考察这一功能时一定要细心加小心,很多厂家的防火墙都宣传说具备FTP的内容过滤,但细心对比就会发现,其中绝大多数仅实现了FTP协议中两个命令的控制
三、管理和认证
这是防火墙非常重要的功能。目前,防火墙管理分为基于WEB界面的WUI管理方式、基于图形用户界面的GUI管理方式和基于命令行CLI的管理方式。
各种管理方式中,基于命令行的CLI方式最不适合防火墙。
WUI和GUI的管理方式各有优缺点。
WUI的管理方式简单,不用专门的管理软件,只要配备浏览器就行;同时,WUI的管理界面非常适合远程管理,只要防火墙配置一个可达的IP,可实现在美国管理位于中国分公司的防火墙。
WUI形式的防火墙也有缺点:首先,WEB界面非常不适合进行复杂、动态的页面显示,一般的WUI界面很难显示丰富的统计图表,所以对于审计、统计功 能要求比较苛刻的用户,尽量不要选择WUI方式;另外,它将导致防火墙管理安全威胁增大,如果用户在家里通过浏览器管理位于公司的防火墙,信任关系仅仅依 赖于一个简单的用户名和口令,黑客很容易猜测到口令,这增加了安全威胁。
GUI是目前绝大多数防火墙普遍采用的方式。这种方式的特点是专业,可以提供丰富的管理功能,便于管理员对防火墙进行配置。但缺点是需要专门的管理端软件,同时在远程和集中管理方面没有WUI管理方式灵活。
四、审计和日志以及存储方式
目前绝大多数防火墙都提供了审计和日志功能,区别是审计的粒度粗细不同、日志的存储方式和存储量不同。
很多防火墙的审计和日志功能很弱,这一点在那些以DOM、DOC等电子盘(并且不提供网络数据库支持)为存储介质的防火墙中体现得尤为明显,有些甚至 没有区分事件日志和访问日志。如果需要丰富的审计和日志功能,就需要考察防火墙的存储方式,如果是DOM、DOC等Flash电子盘的存储方式,将可能限 制审计和日志的功能效果。
目前绝大多数防火墙审计日志采用硬盘存储的方式,这种方式的优点是可以存储大量的日志(几个G到几十个G),但是在某些极端的情况下,如异常掉电,硬盘受到的损坏往往要比电子盘的损坏严重。
好的防火墙应该提供多种存储方式,便于用户灵活选择和使用。
五、如何区分包过滤和状态监测
一些小公司为了推销自己的防火墙产品,往往宣称采用的是状态监测技术; 从表面上看,我们往往容易被迷惑。这里给出区分这两种技术的小技巧。
1. 是否提供实时连接状态查看?
状态监测防火墙可以提供查看当前连接状态的功能和界面,并且可以实时断掉当前连接,这个连接应该具有丰富的信息,包括连接双方的IP、端口、连接状态、连接时间等等,而简单包过滤却不具备这项功能。
2. 是否具备动态规则库?
某些应用协议不仅仅使用一个连接和一个端口,往往通过一系列相关联的连接完成一个应用层的操作。比如FTP协议,用户命令是通过对21端口的连接传 输,而数据则通过另一个临时建立的连接(缺省的源端口是20,在PASSIVE模式下则是临时分配的端口)传输。对于这样的应用,包过滤防火墙很难简单设 定一条安全规则,往往不得不开放所有源端口为20的访问。
状态监测防火墙则可以支持动态规则,通过跟踪应用层会话的过程自动允许合法的连接进入,禁止其他不符合会话状态的连接请求。对于FTP来说,只需防火 墙中设定一条对21端口的访问规则,就可以保证FTP传输的正常,包括PASSIVE方式的数据传输。这一功能不仅使规则更加简单,同时消除了必须开放所 有20端口的危险。
本人对Linux下的Netfilter理解还不深,还处于起步阶段,能否请版主和各个高手说一下Iptables能做到上面所说的对应用层的访问控制的那三点吗?
还有就是现在的软防火墙对比硬防火墙劣势还明显吗?
platinum:
稳定性
软件防火墙是放在自己的 PC 上的,PC 的质量和各个厂家经过严格测试过的硬件产品来比,稳定性可能差一些,比如软件与硬件的兼容性、网卡性能等
性能
我们目前使用的软件防火墙全是放在 PC 里面的,大多是在装好系统后再装软件,或直接利用系统的一些功能来实现防火墙的功能,PC 属于 X86 构架,而真正的防火墙如果想性能好的话,比如达到千兆线速水平,必须用 NP 或 ASIC 构架才可以,因为 X86 从总线设计上来讲就无法达到千兆线速,市面是凡是说 X86 构架的千兆防火墙其实都是假的,他们也许可以跑满千兆,但绝对达不到线速
再比如,很多防火墙都支持 VPN 功能,但是负责 VPN 加密的部分(IPSEC/SSL)如果用软件来实现的话恐怕就太慢了,效率太低,所以很多专业的防火墙使用加密芯片,自己写程序,把数据加密解密那部分原 来用软件函数来实现的转交给硬件芯片去处理,这样性能就大大提高了,但是开发难度也较大,即使是修改现在的部分开源代码,改代码、调试、排错的工作量也不 小
品牌
这个就不用说了,即使有的厂家的性能一般,但是招标的话,即使你做的 PC 的软件防火墙再好也无法用于生产,别人不敢去用
功能
比如上面说内容过滤,还有比如抗 DOS 攻击,反扫描等功能,目前 Linux 自带的功能还无法实现,需要后期开发,在这点上,确实没有专业的经过后期开发的防火墙好
我就想到这么多,不知道对不对,还请大家指正 ^_^
JohnBull:
软防火墙根本弱点在于“延迟”。延迟比硬防火墙大很多很多。
除此之外,软的都比(相同价位的)硬的强得多得多得多。
如果对延迟没有要求(没有大吞吐量的实时应用),软的绝对够用。
wheel:
稳定性,,,这东西都是用嘴说的。。现在的PC开始用PCI-E 和STAT等串行技术后,传扰小的多,稳定也不高了一点。
X86 从总线设计上来讲就无法达到千兆线速。。。这我就不太同意。。其实AMD64的939的裸总线比NP不见的慢的。。ASIC那的确比同级的CPU快的多, 可是同价位CPU的级别都高阿,所以同价格是CPU>ASIC>NP (主要是ASIC量不够,还有ASIC的内存也是定死的)同级别ASIC>NP>cpu
不过专用处理器的每瓦功率时高的多,所以在高温下漂移小的多,并且不用硬盘所以没机械结构所以稳定。
JohnBull:
简单地说,就是硬防火墙工作的时候能够减少大量的数据拷贝和传输过程。
想想linux的数据转发:
NIC收到数据/发出irq----内核响应irq(驱动程序通过PCI总线把NIC的buffer里的frame复制到主存(这步虽然可以DMA,但是 要在irq前完成,时间还是省不下来,更何况还要考虑DMA对SMP性能的影响)----内核的协议栈分析frame(协议分拣/处理报头...)查路由 表)----修改报头/组装L2报文/报文进入网卡驱动的队列----网卡驱动通过PCI把数据交给NIC。
所有的----都是异步环节,或多或少都要引入延迟的。这也解释了前面大包和小包的问题,因为不论大包小包,那些异步开销都是一样的,相同流速下,包越小意味着包越多,包越多异步开销越大。所以软防火墙希望每次处理越多数据越好。
而ASIC体系的话,全省了,可以想像成在数据进入网卡后就地处理然后发出,根本没CPU什么事,也不用考虑总线吞吐。CPU只负责系统自举、监视管理、固件升级就行了。
depthblue_xsc:
对于普通用户来说鉴别性能的差异是很困难的,因为性能是测试出来的,很多厂家的性能参数都是夸大了的,
测试的工具可以使用smartbit,ixia等等,对于网络产品而言,我们关心的是四个参数: throughput,latency,pakcetloss,backtoback,这些都是标准的东西,可以上网查.
传统x86结构的防火墙,除了带宽的限制以外,另外pps的性能也是个大问题.
接下来就该看pci-e的表现了,不过我现在还没测试过,估计下周就能测试了.
np在很多地方并不比x86强,asic的确有速度的优势,可是如果要处理高层协议,无论asic,np,x86对系统的消耗都是非常大的.
真的是一帮牛人