传统防火墙分析
包过滤防火墙位于协议网络层,按照网络安全策略对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)的复合型防火墙系统, 它融合了代理技术的高性能和包过滤技术高效性的优点。
系统设计
NAT模块依据一定的规则,对所有出入的数据包进行源与目的地址识别,并将由内向外的数据包中源地址替换成一个真实地址, 而将由外向内的数据包中的目的地址替换成相应的虚拟地址。
集中访问控制(CAC)模块负责响应所有指定的由外向内的服务访问,通知认证访问控制系统实施安全鉴别, 为合法用户建立相应的连接, 并将这一连接的相关信息传递给NAT模块,保证在后续的报文传输时直接转发而无需控制模块干预。
临时访问端口表及连接控制(TLTC)模块通过监视外向型连接的端口数据动态维护一张临时端口表, 记录所有由内向外的连接的源与目的端口信息, 根据此表及预先配置好的协议集由连接控制模块决定哪些连接是允许的而哪些是不允许的, 即根据所制定的规则(安全政策)禁止相应的由外向内发起的连接, 以防止攻击者利用网关允许的由内向外的访问协议类型做反向的连接访问。
认证与访问控制系统是防火墙系统的关键环节, 它按照网络安全策略负责对通过防火墙的用户实施用户的身份鉴别和对网络信息资源的访问控制, 保证合法用户正常访问和禁止非法用户访问。
上述几种技术都属于网络安全的被动防范技术,为了更有效的遏止黑客的恶意攻击行为, 该防火墙系统采用主动防范技术--网络监控技术。 网络监控系统负责截取到达防火墙网关的所有数据包,对信息包报头和内容进行分析, 检测是否有攻击行为,并实时通知系统管理员。
基于WEB的防火墙管理系统负责对防火墙系统进行远程的管理和配置,管理员可在任何一台主机上控制防火墙系统, 增加系统利用的灵活性 。