基于NAT的混合型防火墙

发表于:2007-06-23来源:作者:点击数: 标签:
传统防火墙分析 包过滤防火墙位于协议网络层,按照 网络安全 策略对IP包进行选择,允许或拒绝特定的报文通过。过滤一般是基于一个IP分组的有关域(IP源地址、IP目的地址、TCP/UDP源端口或服务类型和TCP/UDP目的端口或服务类型)进行的。 基于IP源/目的地址的

   
  传统防火墙分析
  包过滤防火墙位于协议网络层,按照网络安全策略对IP包进行选择,允许或拒绝特定的报文通过。过滤一般是基于一个IP分组的有关域(IP源地址、IP目的地址、TCP/UDP源端口或服务类型和TCP/UDP目的端口或服务类型)进行的。

基于IP源/目的地址的过滤,即根据特定组织机构的网络安全策略,过滤掉具有特定IP地址的分组,从而保护内部网络;基于TCP/UDP源/目的端口的过滤,因为端口号区分了不同的服务类型或连接类型(如SMTP使用端口25,Telnet使用端口23等),所以为包过滤提供了更大的灵活性。同时由于它是位于协议的网络层,所以效率较高;但是该防火墙所依靠的安全参数仅为IP报头的地址和端口信息,若要增加安全参数,增加对数据报文的处理,则势必加大处理难度,降低系统效率,故安全性较低。同时一般的包过滤还具有泄露内部网的安全数据信息(如拓扑结构信息)和暴露内部主机的所有安全漏洞的缺点,难以抵制IP层的攻击行为。
  应用层防火墙是由一个高层的应用网关作为代理服务器,接受外来的应用连接请求,进行安全检查后,再与被保护的网络应用服务器连接,使得外部服务用户可以在受控制的前提下使用内部网络的服务。另外内部网络到外部的服务连接也可以受到监控。应用网关的代理服务实体将对所有通过它的连接作出日志记录,以便对安全漏洞进行检查和收集相关的信息。同时该实体可采取强认证技术,能对数据内容进行过滤,保证信息数据内容的安全,防止病毒以及恶意的Java Applet或ActiveX代码,具有较高的安全性;但是由于每次数据传输都要经过应用层转发,造成应用层处理繁忙,性能下降。
  在对上述两种防火墙技术分析的基础上,我们设计和开发了基于网络地址转换(Network Address Translator, NAT)的复合型防火墙系统,它融合了代理技术的高性能和包过滤技术高效性的优点。
  设计思想
  代理技术造成性能下降的主要原因在于其在指定的应用服务中,传输的每一个报文都需代理主机转发,应用层的处理量过于繁重,改变这一状况的最理想的方案是让应用层仅处理用户身份鉴别的工作,而网络报文的转发由TCP层或IP层来完成。另一方面,包过滤技术仅仅是根据IP包中源及目的地址来判定一个包是否可以通过,而这两个地址是很容易被篡改和伪造的,一旦网络的结构暴露给外界后,就很难抵御IP层的攻击行为。
  集中访问控制技术是在服务请求时由网关负责鉴别,一旦鉴别成功,其后的报文交互都直接通过TCP/IP层的过滤规则,无需象应用层代理那样逐个报文转发,这就实现了与代理方式同样的安全水平而处理量大幅下降,性能随即得到大大提高。另一方面,NAT技术通过在网关上对进出IP包源与目的地址的转换,实现过滤规则的动态化。这样,由于IP层将内部网与外部网隔离开,使得内部网的拓扑结构、域名以及地址信息对外成为不可见或不确定信息,从而保证了内部网中主机的隐蔽性,使绝大多数攻击性的试探失去所需的网络条件。
  系统设计
  图1给出了本防火墙系统的总体结构模型,由五大模块组成。
  基于NAT的混合型防火墙
  图1 防火墙系统结构模型
  NAT模块依据一定的规则,对所有出入的数据包进行源与目的地址识别,并将由内向外的数据包中源地址替换成一个真实地址,而将由外向内的数据包中的目的地址替换成相应的虚拟地址。
  集中访问控制(CAC)模块负责响应所有指定的由外向内的服务访问,通知认证访问控制系统实施安全鉴别,为合法用户建立相应的连接,并将这一连接的相关信息传递给NAT模块,保证在后续的报文传输时直接转发而无需控制模块干预。
  临时访问端口表及连接控制(TLTC)模块通过监视外向型连接的端口数据动态维护一张临时端口表,记录所有由内向外的连接的源与目的端口信息,根据此表及预先配置好的协议集由连接控制模块决定哪些连接是允许的而哪些是不允许的,即根据所制定的规则(安全政策)禁止相应的由外向内发起的连接,以防止攻击者利用网关允许的由内向外的访问协议类型做反向的连接访问。
  认证与访问控制系统是防火墙系统的关键环节,它按照网络安全策略负责对通过防火墙的用户实施用户的身份鉴别和对网络信息资源的访问控制,保证合法用户正常访问和禁止非法用户访问。
  上述几种技术都属于网络安全的被动防范技术,为了更有效的遏止黑客的恶意攻击行为,该防火墙系统采用主动防范技术——网络监控技术。网络监控系统负责截取到达防火墙网关的所有数据包,对信息包报头和内容进行分析,检测是否有攻击行为,并实时通知系统管理员。
  基于WEB的防火墙管理系统负责对防火墙系统进行远程的管理和配置,管理员可在任何一台主机上控制防火墙系统,增加系统利用的灵活性。
  系统的实现
  1、 网络地址转换模块
  NAT模块是本系统核心部分,而且只有本模块与网络层有关,因此,这一部分应和Unix系统本身的网络层处理部分紧密结合在一起,或对其直接进行修改。本模块进一步可细分为包交换子模块、数据包头替换子模块、规则处理子模块、连接记录子模块与真实地址分配子模块及传输层过滤子模块。
  2、集中访问控制模块
  集中访问控制模块可进一步细分为请求认证子模块和连接中继子模块。请求认证子模块主要负责和认证与访问控制系统通过一种可信的安全机制交换各种身份鉴别信息,识别出合法的用户,并根据用户预先被赋予的权限决定后续的连接形式。连接中继子模块的主要功能是为用户建立起一条最终的无中继的连接通道,并在需要的情况下向内部服务器传送鉴别过的用户身份信息,以完成相关服务协议中所需的鉴别流程。
  3、临时访问端口表
  为了区分数据包的服务对象和防止攻击者对内部主机发起的连接进行非授权的利用,网关把内部主机使用的临时端口、协议类型和内部主机地址登记在临时端口使用表中。由于网关不知道内部主机可能要使用的临时端口,故临时端口使用表是由网关根据接收的数据包动态生成的。对于入向的数据包,防火墙只让那些访问控制表许可的或者临时端口使用表登记的数据包通过。
  4、 认证与访问控制系统
  认证与访问控制系统包括用户鉴别模块和访问控制模块,实现用户的身份鉴别和安全策略的控制。其中用户鉴别模块采用一次性口令(One-Time Password)认证技术中Challenge/Response机制实现远程和当地用户的身份鉴别,保护合法用户的有效访问和限制非法用户的访问。它采用Telnet和WEB两种实现方式,满足不同系统环境下用户的应用需求。访问控制模块是基于自主型访问控制策略(DAC),采用ACL的方式,按照用户(组)、地址(组)、服务类型、服务时间等访问控制因素决定对用户是否授权访问。
  5、 网络安全监控系统
  监控与入侵检测系统作为系统端的监控进程,负责接受进入系统的所有信息,并对信息包进行分析和归类,对可能出现的入侵及时发出报警信息;同时如发现有合法用户的非法访问和非法用户的访问,监控系统将及时断开访问连接,并进行追踪检查。
  6、基于WEB的防火墙管理系统
  管理系统主要负责网络地址转换模块、集中访问控制模块、认证与访问控制系统、监控系统等模块的系统配置和监控。它采用基于WEB的管理模式,由于管理系统所涉及到的信息大部分是关于用户帐号等敏感数据信息,故应充分保证信息的安全性,我们采用JAVA APPLET技术代替CGI技术,在信息传递过程中采用加密等安全技术保证用户信息的安全性。
  防火墙系统的应用
  防火墙型安全保障技术假设被保护网络具有明确定义的边界和服务,并且网络安全的威胁仅来自外部网络,进而用防火墙型技术通过监测、限制、更改跨越防火墙的数据流及通过尽可能地对外部网络屏蔽有关被保护网络的信息、结构来实现对网络的安全保护。由此可见,防火墙型系统比较适合相对独立、与外部网络互联途径有限并且网络服务种类相对集中单一的网络系统。常见的Internet与Intranet的连接即属于此类。但防火墙技术原理上对来自网络内部的安全威胁不具备防范作用,并且常常需要有特殊的、相对较为封闭的网络拓扑结构来支持,因而对网络安全功能的加强往往是以网络服务的灵活性、多样性和开放性为代价的,并且需要较大的网络管理开销。由于防火墙技术的实施相对简单,因此是目前应用较广的网络安全技术。但防火墙技术的基本特征及运行代价局限了它在开放型的大规模网络系统中应用的潜力,并且由于它只在网络边界上具有安全保障功能,其实用范围相对有限,安全保障的程度也不易度量和维持在稳定水平,因而防火墙型安全系统往往是针对特定需要而专门设计实施的系统,是一类短期内实用的解决方案

原文转自:http://www.ltesting.net