防火墙是一类防范措施的总称,它使得内部网络与Internet之间或者与其他外部网络互相隔离、限制网络互访,用来保护内部网络。设置防火墙目的都是为了在内部网与外部网之间设立惟一的通道,允许网络管理员定义一个中心“扼制点”提供两个网络间的访问控制,使得只有被安全策略明确授权的信息流才被允许通过,对两个方向的信息流都能控制,它的主要作用是防止发生网络安全事件引起的损害,使入侵更难实现,来防止非法用户,比如防止黑客、网络破坏者等进入内部网络。禁止存在安全脆弱性的服务进出网络,并抗击来自各种路线的攻击。Internet防火墙能够简化安全管理,网络的安全性是在防火墙系统上得到加固,而不是分布在内部网络的所有主机上。
高级一些的防火墙提供信息流过滤功能到个人终端和端口,更高级的防火墙提供基于讯息内容的信息流过滤功能。一般来说,防火墙还包括稽核和对网络信息流进行监控,为管理人员提供对下列问题的答案:谁在使用网络,他们在网上做什么,他们什么时间使用过网络,他们上网时去了何处,谁要上网但没有成功。
围绕着防火墙出现了一些常用的概念,它们是:
1)外网(非受信网络):防火墙外的网络,一般为Internet。
2)内网(受信网络):防火墙内的网络。受信主机和非受信主机分别对照内网和外网的主机。3)非军事化区(DMZ):为了配置管理方便,内网中需要向外提供服务的服务器往往放在一个单独的网段,这个网段便是非军事化区(DMZ区)。非军事化区把互联网与公司的内部网隔离成两个网络。通常的做法是设置两道防火墙,使互联网与内部网“间隔”成一块非管制区。一般在非管制区设置访问控制,当然,对非管制区的访问并不意味着对可信任的网络的访问。
在没有防火墙的环境中,网络安全性完全依赖主系统安全性。在一定意义上,所有主系统必须通力协作来实现均匀一致的高级安全性。子网越大,把所有主系统保持在相同安全性水平上的可管理能力就越小。随着安全性的失误和失策越来越普遍,闯入时有发生,这不是因为受到多方的攻击,而仅仅是因为配置错误、口令不适当而造成的。因此,虽然防火墙的概念很简单,却是网络安全措施中最基础的也是非常重要的一个环节。
防火墙可以大大提高网络安全性,并通过过滤不安全的服务来降低子网上主系统所冒的风险。因此,子网网络环境可经受较少的风险,因为只有经过选择的协议才能通过防火墙。防火墙可以禁止某些易受攻击的服务(如NFS)进入或离开受保护的子网。这样得到的好处是可防护这些服务不会被外部攻击者利用,而同时允许在大大降低被外部攻击者利用的风险情况下使用这些服务。防火墙还可以防护基于路由选择的攻击,如源路由选择和企图通过ICMP改向把发送路径转向遭致损害的网点。防火墙可以排斥所有源点发送的包和ICMP改向,然后把偶发事件通知管理人员。
防火墙还有能力控制对网点系统的访问。例如,某些主系统可以由外部网络访问,而其他主系统则能有效地封闭起来,从而防止有害的访问。除了邮件服务器或信息服务器等特殊情况外,网点可以防止外部对其主系统的访问。这就把防火墙特别擅长执行的访问政策置于重要地位:不访问不需要访问的主系统或服务。
如果一个子网的所有或大部分需要改动的软件以及附加的安全软件能集中地放在防火墙系统中,而不是分散到每个主机中,防火墙的保护就相对集中一些,也相对便宜一点。尤其对于密码口令系统或其他的身份认证软件等等,放在防火墙系统中更是优于放在每个Internet能访问的机器上。
如果通过互联网的往返访问都通过防火墙,那么,防火墙可以记录各次访问,并提供有关网络使用率的有价值的统计数字。如果一个防火墙能在可疑活动发生时发出报警,则还提供防火墙和网络是否受到试探或攻击的细节。采集网络使用率统计数字和试探的证据是很重要的,这有很多原因。最为重要的是可知道防火墙能否抵御试探和攻击,并确定防火墙上的控制措施是否得当。网络使用率统计数字也是很重要的,因为它可作为网络需求研究和风险分析活动的输入。
综上所述,防火墙之所以重要,是因为它是提供实施和执行网络访问安全策略的工具。事实上,在一个与互联网相连的网络当中,都是由防火墙向用户和服务提供访问控制。然而企业网络的整体安全涉及的层面相当广,防火墙不仅无法解决所有的安全问题,防火墙所使用的控制技术、自身的安全保护能力、网络结构、安全政策等因素也都会影响企业网络的安全性。
虽然防火墙可以很方便的监视网络的安全性,但是网络管理员必须审查并记录所有通过防火墙的重要信息。如果网络管理员不能及时响应报警并审查常规记录,防火墙就形同虚设。在这种情况下,网络管理员永远不会知道防火墙是否受到攻击。
防火墙无法防范通过防火墙以外的其他途径的攻击。例如,在一个被保护的网络上有一个没有限制的拨出存在,内部网络上的用户就可以直接通过SLIP或PPP连接进入Internet,从而绕过精心构造的防火墙系统,这就为从后门攻击创造了极大的可能。
防火墙不能防止来自内部变节者和不经心的用户带来的威胁。防火墙无法禁止心怀不满的员工或公司内部的间谍将敏感数据拷贝到软盘或PCMCIA卡上,并将其带出公司。防火墙也不能防范这样的攻击:伪装成超级用户或诈称新雇员,从而劝说没有防范心理的用户公开口令或授予其临时的网络访问权限。所以必须对雇员们进行教育,让他们了解网络攻击的各种类型,并懂得保护自己的用户口令和周期性变换口令的必要性。
防火墙也不能防止传送已感染病毒的软件或文件。这是因为病毒的类型太多,操作系统也有多种,编码与压缩二进制文件的方法也各不相同。所以不能期望防火墙去对每一个文件进行扫描,查出潜在的病毒。对病毒特别关心的机构应在每个桌面部署防病毒软件,防止病毒从软盘或其他来源进入网络系统。
防火墙无法防范数据驱动型的攻击。数据驱动型的攻击从表面上看是无害的数据被邮寄或拷贝到Internet主机上,但一旦执行就开始攻击。一个数据型攻击可能导致主机修改与安全相关的文件,使得入侵者很容易获得对系统的访问权。
在众多影响防火墙安全性的因素中,有些是管理人员可以控制的,但是有些却是在选择了防火墙之后便无法改变的特性,其中一个很重要的关键在于防火墙所使用的存取控制技术。目前防火墙的控制技术大概可分为:包过滤型(PacketFilter)、包检验型(StatefulInspectionPacketFilter)以及应用层网关型(ApplicationGateway)三种。这三种技术分别在安全性或效率上有其特别的优点。不过一般人往往只注意防火墙的效率而忽略了安全性与效率之间的冲突。
包过滤型:包过滤型的控制方式会检查所有进出防火墙的包标头内容,如来源及目的地IP,使用协定,TCP或UDP的Port等信息。现在的路由器、交换式路由器以及某些操作系统已经具有用包过滤控制的能力。包过滤型的控制方式最大的好处是效率最高,但却有几个严重缺点:管理复杂、无法对连线作完全的控制、规则设置的先后顺序会严重影响结果、不易维护以及记录功能少。
包检验型:包检验型的控制机制是通过一个检验模组对包中的各个层次作检验。包检验型可谓是包过滤型的加强版,目的在增加包过滤型的安全性,增加控制“连线”的能力。但由于包检验的主要检查对象仍是个别的包,不同的包检验方式可能会产生极大的差异。其检查层面越广越安全,但其相对效率也越低。包检验型防火墙在检查不完全的情况下,可能会造成原来以为只有特定的服务可以通过,通过精心设计的数据包,可在到达目的地时因重组而被转变成原来并不允许通过的连线请求。2001年被公布的有关防火墙的FastModeTCPFragment的安全弱点就是其中一例。这个为了增加效率的设计反而成了安全弱点。
应用层网关型:应用层网关型的防火墙采用将连线动作拦截,由一个特殊的代理程序来处理两端间的连线的方式,并分析其连线内容是否符合应用协定的标准。
这种方式的控制机制可以从头到尾有效的控制整个连线的动作,而不会被客户或服务器端欺骗,在管理上也不会像包过滤型那么复杂,但可能必须针对每一种应用写一个专属的代理程序,或用一个一般用途的代理程序来处理大部分连线。这种运作方式是最安全的方式,但也是效率最低的一种方式。
因此,作为网络安全的一个重要技术手段,防火墙是不可或缺的。但是,日常的管理、维护,比如根据网络结构的变化而及时调整防火墙的安全策略等,却是更加重要的。不能因为有了防火墙而万事大吉,否则反而会导致更严重的安全问题。