防火墙固件
“固件(appliance)”一词自1999年底就被全球的市场人员广泛使用。有关这个词的概念一直存在着争论,通常认为防火墙固件是指在系统之外安全运行的集成有硬件和软件的监控系统。传统的防火墙一般都是指运行在某种主流操作系统之上的软件产品,在安装这些防火墙时,首先要安装并配置它所依赖的操作系统,并要保证操作系统本身的安全性;当时的防火墙固件一般凭借其“solid-state”技术和经过优化的内核来进行高级数据包的处理。
随着和厂商将硬盘和嵌入式操作系统进到防火墙中,防火墙固件的概念也发生了转变:它已经不是“固态”的同义词,BSD内核和基本防火墙代码的引入也混淆了以前优化内核的含义。不幸的是,精确一点说,现在的防火墙固件定义的只是可踢之物(2U底座的机器)与可扔之物(一本手册或一张CD)的差别(意即,可扔之物均指代传统的基于操作系统的防火墙,余者均为可踢之物,指的是防火墙固件,译者注)。
但是,这并不是说市场上没有像样的防火墙固件。例如,Nokia将CheckpointFW-1代码引入到IPSO操作系统(是一种为路由器而优化的BSD操作系统)而生产出了其“IP”系列防火墙固件,该产品非常可靠,性能也很稳定;另外,Cisco也在PIX中引入了固态设计,Cisco PIX和Nokia IP系列都采用了Intel X86硬件;像Netscreen等防火墙产品也采用了固件的形式。
那么用户到底是否应该采用防火墙固件产品呢?这完全取决于自己的需要。有些用户习惯使用标准的UNIX命令来进行日志检查等操作,因而使用固件可能会有些碍手碍脚;而如果使用诸如Microsoft Windows NT或Sum SolariS等标准操作系统,又面临着配置错误等问题。有些情况下,采用固件的方法安全性更好一些,其性能参数也可以与多数基于SPARC的防火墙相媲美;而有时在主流操作系统上运行防火墙也有一定的优点。
注意 术语“固态”(solid state)来自于电子工程界,用于表示从电子管到晶体管的转变。但现在,这个术语已经被许多厂商和市场人员拓展了,用于表示“没有移动的部分”之义。
防火墙的构架
读者可能会问,“那么哪种防火墙最好呢?怎样才能配置好防火墙呢?”关于该问题最简单的回答就是,并没有最合适的、最好的解决方案。尽管如此,我们仍然会尽力提供一些建议,以便读者可以做出明智的决定。
下面是读者在选购防火墙时应该注意的几点:
1)注意防火墙市场一直是不断变化的,不会有一直优越的防平例如,供应商X可能对其产品修订了几个版本,并计划再推出几个新的版本;同样地,供应商Y和供应商Z以前也生产出了比较出色的产品,但由于其主要开发人员都不幸在Dazakhstan中遇难,他们以后的发展计划就完全泡汤了。读者应该经常阅读诸如Network Computing和Infoworld等杂志做的各种调查,并与同事多进行交流,最重要的是能亲自测试一下各种产品。可以把防火墙想像为一辆新车:如果觉得驾驶起来不舒服,那么以后就不会再用它。
2)要清楚自己的需求并将这些需求记录下来。防火墙是要支持令牌环还是仅支持以太网?要支持网络地址解析(Network Address Translation,NAT)吗?是否运行在某种特定的平台之上呢?需要多少接口?人们往往对各种产品做一些各种各样的基准测试,但如果不必为满足某些特殊需要,就不需要为DMZ设置15个OC12连接,也不必采用最快的连接。要记住防火墙的主要用途是对进出网络的数据包进行访问控制。
3)要意识到自己现有条件的局限性。如果对Windows NT比较熟悉,而从未接触过UNIX,那么去购买需要大量命令等交互的基于UNIX的防火墙确实不是明智之举。防火墙产生的很大一部分问题都是因“人为因素”造成的——也就是说,不是防火墙本身的原因,而是人为的管理因素造成的。如果自己或职员都不知道如何使用,或者不理解其中涉及的技术,购买这样的产品只会为自己带来麻烦。既不要选择GUI特别花哨的产品,也不要选择那些只有博士才能维护的产品。
4)选择的产品至少获得了ICSA认证,而且使用该产品的用户群相对多一些。尽管名字同为“防火墙”,但并不是所有的产品都是真正安全的,要选择那些被本领域认可了的知名产品。
注意 我们的一位客户(某财富100强的公司)请求我们对一种新防火墙“固件”进行测试。这个客户想批量采购这种防火墙产品,困此在采购之前想让一个第三方公司做一下评估。我们对这种产品评估了三天,结果发现根本无法通过Web管理界面配置整个产品,而且该产品的硬盘上还盗用了一个流行的图形软件包。可见,有时候“好得无法让人相信”这句话还一点儿不错。
在决定购买防火墙之前,应该慎重地对自己的网络、用户及其需求进行研究,并以可视化的方式描述穿越防火墙的各种连执接。这不仅有利于确定自己的需求,而且有利于确定需要开放哪些端口以及在这些端口背后可以进行哪些处理,这些也为以后的管理维护工作提供了依据。
构架防火墙一般要经过5个基本步骤:
1)明确网络拓扑、应用和协议需求
2)分析企业内的信任关系和通信路径
3)评估并选择防火墙产品
4)正确规划与配置防火墙
5)严格测试防火墙
明确网络拓扑、应用和协议需求
构架防火墙的第一步是要明确网络拓朴、应用和协议的需求。根据网络规模和组成不同,实现这一步可能有些困通信难;如果要在几个同构的网络中架构防火墙,而且只需要支持几种基本协议(SMTP、HTTP、FTP等),那么这种工作量相对来说就比较小了。
但对于需要支持多平台、多协议与多种应用的企业,情况就不同了。这方面的需求往往比较笼统,例如,应用开发人员可能会要求,“我们只需要能从internet上访问Lotus Notes服务器即可”;这个要求听起来很简单,但仔细深入下去就完全是另一回事儿了。到底需要那种访问呢?应用开发人员的回答则是:“我们需要向供应商复制数据,还要能够远程使用
Lotus Notes客户端。”这种要求可不只是“访问Notes”那么简单:我们需要开放与Notes客户端相关的端口(TCP端口1352),还需要提供与复制过程相关的接口;如果开发人员想以Web方式访问数据,还要支持HTTP(通常是80端口);还有远程管理呢?他们可能回答,“哦,我们使用PCAnywhere远程管理服务器。”
由上述交互过程可以看出,一个简单的请求会引发如此复杂的结果,因此读者应该深入到企业中去,仔细地明确所有使用或依赖于本防火墙的工作人员的各种需求。
提示 尽管这是一项非常烦琐的工作,但在需求搜集阶段尽量要把这些工作做好。等防火墙配置好以后,如果有人再有特殊的需求或功能要求、而这种需求往往又得不到满足时,你就有足够的理由来向他解释;而如果这项工作做得不充分,有人可能会反问你:“为会么在需求搜集阶段不通知我这些呢?”,这时,你往往就没有申辩的余地了。
致力于提供电子商务的公司有时会把其产品网络与内部局域网分离开业。例如,你想建立一个新的电子商务网站来销售新型的基于PCS的集面包烘烤与咖啡制作于一体的多功能机器,要求的配置如下:一个能提供24×7服务的Web服务器,一个24×7服务的支付处理网关(通常称为商业网关)、邮件服务器以及支持系统(应用服务器、数据库报务器等等)。现在,你很可能想把那些运行关键任务的24×7系统与非关键任务的内部系统(如电子邮件SMTP网关、内部FTP站点、代理服务器等)分离开来,这显然要涉及到网络拓朴的问题:在这种配置中,防火墙需要支持多少种接口?需要多少防火墙?需要支持hot-standby功能吗?防火墙要支持诸如HSRP和VRRP等高可用性协议吗?
充分考虑到了上述各种问题,往往会避免网络扩展性差等情况的发生。
分析企来内的信任关系和通信路径
正如了解企业外疗的应用需求和协议需求一样,读者还需要花时间分析企业内部的需求。这样做有以下几个原因:首先,从根本上来说,防火墙支持的各种应用必须能够正常工作。如果将三层电子商务解决方案中的中间层(应用服务器)放到了防火墙之后,这些服务器就会与数据库分离开来,可能会收到很多用户的意见(应用经常中断);同时,如果将应用服务器放到防火墙之外,这样就会允许对内部网络进行未授权访问,如果这台应用服务器遭受了攻击,就会影响到这个网络的安全。
其次,这是一项需要提前确定的调研工作,其中需要不同部门的协作,因为有些网段可能要访问其他网段的资源。为了防止当前正常运行的系统发生中断,详细地分析这些关系很有必要。
提示 整个过程都要灵活处理。你可能会遇到一些固执的用户说:“我们已经这样做了10年了。”尽管不需要让这些人完整地了解整个过程,但必须要做好这些人的工作。如果在工作过程中严重地影响了他们的工作环境,你应该做出合理的解释。这时也应该采取一种“未雨绸缪”的做法—事先制定一些制度并获得上级的批准,这样在处理这种潜在的冲突时就不致于左右为难;那些经理们也会自觉的按照上级批准的这些制度去办。