常见防火墙的类型主要有三种: 包过滤、电路层网关、应用层网关 ,每种都有各自的优缺点。
第一代防火墙技术,它按照安全规则,检查所有进来的数据包,而这些安全规则大都是基于底层协议的,如IP、TCP。如果一个数据包满足以上所有规则,过滤路由器把数据向上层提交,或转发此数据包,否则就丢弃此包。
包过滤的优缺点
优点:一个过滤路由器能协助保护整个网络;数据包过滤对用户透明;过滤路由器速度快、效率高。
缺点:不能彻底防止地址欺骗;一些应用协议不适合于数据包过滤;正常的数据包过滤路由器无法执行某些安全策略
代理是一种较新型的防火墙技术,这种防火墙有时也被称为应用层网关,这种防火墙的工作方式和过滤数据包的防火墙、以路由器为基础的防火墙的工作方式稍有不同。它是基于软件的。
电路层网关是建立应用层网关的一个更加灵活和一般的方法。虽然它们可能包含支持某些特定TCP/IP应用程序的代码,但通常要受到限制。如果支持应用程序,那也很可能是TCP/IP应用程序。在电路层网关中,可能要安装特殊的客户机软件,用户可能需要一个可变用户接口来相互作用或改变他们的工作习惯。
代理技术的优缺点
优点:代理易于配置;代理能生成各项记录;代理能灵活、完全地控制进出的流量、内容;代理能过滤数据内容;代理能为用户提供透明的加密机制;代理可以方便地与其他安全手段集成。
缺点:代理速度较路由器慢;代理对用户不透明;对于每项服务代理可能要求不同的服务器;代理服务不能保证你免受所有协议弱点的限制;代理不能改进底层协议的安全性。
我们的目标是设计并实现一种新型防火墙。这种防火墙既有包过滤的功能,又能在应用层进行代理。较前面分析的防火墙来说,具有先进的过滤和代理体系,能从数据链路层到应用层进行全方位安全处理。TCP/IP协议和代理的直接相互配合,使本系统的防欺骗能力和运行的健壮性都大大提高。
TCP/IP协议处理是本系统的难点和重点之一,非常复杂与庞大。实现TCP/IP的第一步必须能正确地理解定义、实现TCP/IP各协议的数据包格式。
数据链路层是TCP/IP协议的最低层,它的常规功能是对上层数据(IP或ARP)进行物理帧的封装与拆封,当然还包括硬件寻址、管理等功能。在本系统中,数据链路层除了实现上述功能外,还增加了监听网上数据、记录硬件地址和直接读写网卡的功能。
从一般的概念来说,ARP和ICMP都属于IP层,实际上,ICMP在IP层之上,利用IP层收、发数据包,而ARP/RARP则在IP层之下,它们本身并不使用IP层,而是直接在数据链路层上进行收发。
IP层的处理较复杂,且可做许多安全方面的工作。若在极端的情况下,我们可以修改IP报头,增加安全机制(如认证)。考虑到系统的性能及兼容性,我们没有选择这种方法,而是利用了包过滤技术和ICMP、ARP提供的功能,提供安全机制。当然,随着安全方面技术的发展,也许第一种方法会是一种好的选择,但前提是路由器的支持。目前,大部分路由器只能处理常规的IP包(即IPV4),对于新出台的IPV6(它提供了更多的选项,我们可在选项中增加安全机制),路由器还远未支持。
利用上述几项功能,我们能确保内部ARP欺骗的无效,查出欺骗的主机并记录,尤其能防止ARP层的拒绝服务。我们通过主机级被动检测、主机级主动检测、服务器级检测、网络级检测、查询主机硬件地址、有条件地禁止ARP等机制实现以上功能。
ICMP是为了允许路由器向主机报告投递出错的原因和一些控制而设计的。但事实上,任何一台主机都可以向任何其他机器发送ICMP报文,如Ping。
ICMP在本系统中的作用主要是:隐藏子网内主机信息和施加一些控制。ICMP虽然有一定的作用,如差错报告,但也有更大的安全隐患。一般来讲,对外部,ICMP应禁止(很多过滤路由器有此项功能)。
◆对内部主机的ICMP包,虽然转发,但改写了ICMP包中的源IP地址,使外部不能看到内部的IP地址。
◆外部ICMP请求包一律抛弃。
◆对内部有请求时,才动态地接收外部主机的响应, 且一些ICMP危胁安全的响应也抛弃,如改变路由的ICMP包。
另外,我们可以借助ICMP来获得一些参数和一些控制,如时钟同步、地址掩码,并可利用ICMP目的地不可达报文“优雅”地通知不受欢迎的主机。
IP是通信子网的最高层,它的主要任务是寻址和转发。IP层最大的安全问题是IP欺骗,且很多上层的安全隐患源于IP欺骗,如DNS欺骗。IP层常用的安全措施是根据源地址、目的地址进行过滤,这一点已在很多路由器中得到应用。在本系统的IP层主要完成以下几个功能:IP地址过滤;IP地址与MAC绑定,防止IP欺骗;为上层提供一种通道。
TCP/UDP存在数据包伪装、SYN Flood攻击等安全隐患。为避免上述情况,必须要增加一定的验证措施,我们利用TCP的特征,设计了一种较有效的过滤手段,对TCP报文的有效性进行确认。
防火墙的主要功能
以上是防火墙所应具备的一些防护特性,当然随着技术的发展中小企业防火墙的功能会变得越来越丰富;但有再多功能的防火墙如果没有合理的配置和管理,那么这只是一件IT摆设。
防火墙有很多种形式,有以软件形式运行在普通计算机之上的,也有以固件形式设计在路由器之中的。但总体来讲可分为三大类:分组过滤型防火墙、应用代理型防火墙以及状态检测防火墙。细分则还可包括电路中继型、复合型、及加密路由型号等。
分组过滤或包过滤(Packet filtering **): 通常在路由器上实现 ,**是一种通用、廉价、有效的安全手段,能很大程度地满足企业的安全要求。
分组过滤作用在网络层和传输层,它根据分组包头源地址,目的地址和端口号、协议类型等标志确定是否允许数据包通过。只有满足过滤逻辑的数据包才被转发到相应的目的地出口端,其余数据包则被从数据流中丢弃。下图是一个Cisco路由器包过滤配置实例
分组过滤型防火墙的优点
分组过滤型防火墙的缺点
应用代理(Application Proxy ):也叫应用网关(Application Gateway),它作用在应用层,其特点是完全"阻隔"了网络通信流,通过对每种应用服务编制专门的代理程序,实现监视和控制应用层的通信流。实际中的应用网关通常由一台专用服务器实现。如下图所示。
要注意的是,代理服务只有在需要严格控制内部与外部主机直接连接的场合才是一个比较有效的机制。而双宿主主机与包过滤也是具有这种特性的另外两种机制。如果内、外部主机能够直接相互通信,那么用户就没有必要使用代理服务,在这种情况下,代理服务也不可能起作用。而这种由旁路的拓扑与网络的信息安全是相悖的
代理服务器并非将用户的全部网络服务请求提交给互联网络上的真正的服务器,因为服务器能依据安全规则和用户的请求做出判断是否代理执行该请求,所以它能控制用户的请求。有些请求可能会被否决,比如:FTP代理就可能拒绝用户把文件往远程主机上送。或者它只允许用户将某些特定的外部站点的文件下载。
²几个需要了解的基本术语:
应用代理型防火的特点
灵活的安全机制。代理服务可对于不同的主机、用户及应用程序执行不同的安全规则,而不对所有对象执行同一标准。
应用代理型防火墙的缺点
客户应用可能需要修改。由于代理软件分为服务器端软件和客户端软件,故客户机需安装相应软件或作相应的网络设置。
网关防火墙的一个挑战就是吞吐量,开发状态检测功能是为了让规则能够运用到会话发起过程,从而在大为提高安全防范能力的同时也改进了流量处理速度。同时,状态检测防火墙也摒弃了包过滤防火墙仅考查数据包的 IP 地址等有限几个参数,而不关心数据包连接状态变化的缺点,在防火墙的核心部分建立状态连接表,并将进出网络的数据当成一个个的会话,并利用状态表跟踪每一个会话状态,因此提供了完整的对传输层的控制能力。由于状态监测技术采用了一系列优化技术,使防火墙性能大幅度提升,能应用在各类网络环境中,尤其是在一些规则复杂的大型网络上。
1993年,Check Point公司成功推出了世界上第一台商用的状态检测防火墙产品之后,很多厂商也相继进行了开发了,并在90年代中期得到了迅速发展。现今的防火墙市场,状态检测防火墙产品由于其在性能、部署能力和扩展能力方面的优势已成为市场上的绝对领导者。如今,任何一款高性能的防火墙,都会采用状态检测技术。
从 2000 年开始,国内的著名防火墙公司,如北京天融信等公司,都开始采用这一最新的体系架构,并在此基础上,天融信 NGFW4000 创新推出了核检测技术,在操作系统内核模拟出典型的应用层协议,在内核实现对应用层协议的过滤,在实现安全目标的同时可以得到极高的性能。目前支持的协议有 HTTP/1.0/1.1 、 FTP 、 SMTP 、 POP3 、 MMS 、 H.232 等最新和最常用的应用协议。
状态检测防火墙的工作过程
无论何时,当防火墙接收到一个初始化TCP连接的SYN包,这个带有SYN的数据包被防火墙的规则库检查。该包在规则库里依次序比较。如果在检查了所有的规则后,该包都没有被接受,那么拒绝该次连接,一个RST的数据包发送到远端的机器。如果该包被接受,那么本次会话被记录到位于内核模式中的状态监测表里,这时需要设置一个时间溢出值。随后的数据包(没有带有一个SYN标志)就和该状态监测表的内容进行比较。如果会话是在状态表内,而且该数据包是会话的一部分,该数据包被接受。如果不是会话的一部分,该数据包被丢弃。这种方式提高了系统的性能,因为每一个数据包不是和规则库比较,而是和状态监测表比较。只有在SYN的数据包到来时才和规则库比较。所有的数据包与状态检测表的比较都在内核模式下进行所以应该很快。
在连接被通讯双方关闭后,状态监测表中的连接应该被维护一段时间。当状态监测模块监测到一个FIN或一个RST包的时候,减少时间溢出值从缺省设定的值3600秒减少到50秒。如果在这个周期内没有数据包交换,这个状态检测表项将会被删除,如果有数据包交换,这个周期会被重新设置到50秒。如果继续通讯,这个连接状态会被继续地以50秒的周期维持下去。这种设计方式可以避免一些DOS攻击,例如,一些人有意地发送一些FIN或RST包来试图阻断这些连接。
由于对更高安全性的要求,如仅仅使用某种单项技术来建立正确完整防火墙是不大可能达到企业所需的安全目标的。在实际的实施方案时,经常要用若干的技术混合的复合型防火墙方可解决面对的各种问题。
在现有防火墙产品和技术中,将包过滤技术和多种应用技术融合到一起,构成复合型防火墙体系统结构是目前国内防火墙产品的一个特点,也是防火墙今后发展的主流技术。
复合型防火墙解决方案通常有如下两种:
l 屏蔽主机防火墙体系结构
l 屏蔽子网防火墙体系结构
屏蔽主机防火墙体系统结构由包过滤路由器和堡垒主机构成。其实现了网络层安全(包过滤)和应用层安全(代理服务)。
对于这种防火墙系统,堡垒主机配置在内部网络上,而包过滤路由器则放置在内部网络和Internet之间。在路由器上进行规则配置,使得进出的所有信息必须通过堡垒主机。这种路由允许堡垒主机把外部流量代理到内部网络前会进行流量分析。
由于内部主机与堡垒主机处于同一个网络,内部系统是否允许直接访问Internet,或者是要求使用堡垒主机上的代理服务来访问Internet由机构的安全策略来决定。
对于这种体系统结构常见的拓朴如下图所示。在实际的应用中,为了增强安全性,一般堡垒主机应至少有两个网卡,这样可以物理的隔离子网。
屏蔽子网防火墙体系统结构堡垒机放在一个子网内,形成“非军事化区(DMZ)”,两个分组过滤路由器放在这一子网的两端,使这一子网与Internet及内部网络分离。在屏蔽子网防火墙体系结构中,堡垒主机和分组过滤路由器共同构成了整个防火墙的安全基础。
这个防火墙系统建立的是最安全的防火墙系统,因为在定义了“非军事区”(DMZ)网络后,它支持网络层和应用层安全功能。网络管理员将堡垒主机、信息服务器、Modem组、以及其它公用服务器放在DMZ网络中。
在一般情况下对DMZ配置成使用Internet和内部网络系统能够访问DMZ网络上数目有限的系统,而通过DMZ网络直接进行信息传输是严格禁止的。
部署屏蔽子网防火墙系统的好处
防火墙有以下两种之一的默认配置:
l 拒绝所有的通信。在这种情况下,内外的通信完全被阻断,是最安全但也最不适用的形式。
l 允许所有的通信。在这种情况下,内外可以进行无限制的通信,防火墙好象不存在。
对于安全性要求比较高的防火墙,一般采用拒绝所有通信作为默认设置。一旦安装了防火墙,为了授予防火墙内的用户访问他们的被授权的系统,则需要打根据公司的安全策略只打开某些特定的端口以允许特定的内外通信,这就是需要进行相应的访问规则的配置。
访问规则定义了允许或拒绝网络之间的通信的条件。访问规则中运用的元素是防火墙中可用于创建特定访问规则的配置对象。
规则元素一般可分为以下五种类型:际工资
l 协议。此规则元素包含一些协议,可用于定义要用在访问规则中的协议。例如,您可能想要创建只允许 HTTP 通信的访问规则,则在配置时对于协议的选择则只选用HTTP即可。
l 用户集。用户集包含许多单独的用户或用户组。您可以使用 Active Directory 域用户或用户组、远程身份验证拨入用户服务 (RADIUS) 服务器组或 SecureID 组等创建用户集。在规则配置时则可以针对不同的用户集对网络资源的访问分别采用不同的规则进行访问控制。
l 内容类型。此规则元素提供您可能想要应用规则的公共内容类型。例如,您可以使用内容类型规则元素来阻止包含 .exe 或 .vbs 扩展名的所有内容下载。
l 计划。此规则元素允许您指定一个星期内要应用规则的小时时段。如果需要定义只允许在指定的小时时段内访问 Internet 的访问规则,则可以创建定义小时时段的计划规则元素,然后在创建访问规则时使用该计划规则元素。
l 网络对象。此规则元素允许您创建要应用规则的计算机集,或者将不再应用规则的计算机集。您还可以配置 URL 集和域名集,用来允许或拒绝对特定 URL 或域的访问。
创建访问规则的步骤是选择适当的访问规则元素,然后定义元素之间的关系。
所有访问规则具有相同的整体结构
防火墙并非万能,它仍然有许多在网上不能防范的攻击。