状态检测防火墙原理
- 格式:doc
- 大小:110.50 KB
- 文档页数:3
防火墙分类及原理防火墙是一种网络安全设备,其主要功能是控制和监控进出网络的数据流量,并根据预设的安全策略,允许或阻止数据包的传输。
根据实现技术和工作层次的不同,防火墙可以分为以下几类:1. 包过滤型防火墙:包过滤型防火墙是最基础的防火墙形式之一。
它基于规则集,对进出网络的数据包进行检查和过滤,只允许符合规则的数据包通过,其他数据包则被阻止。
这些规则通常基于源IP地址、目的IP地址、端口号等信息进行过滤。
2. 应用代理型防火墙:应用代理型防火墙可以被看作是在主机和网络之间建立的一种应用层代理。
它在网络连接的两端同时建立代理服务器,并对通过代理服务器传输的应用数据进行检查和过滤。
应用代理型防火墙能够提供更加细粒度的控制,因为它能够深入到应用层进行检查。
3. 状态检测型防火墙:状态检测型防火墙是一种综合了包过滤和应用代理两种方式的防火墙。
它通过监控网络连接的状态信息,对通过连接传输的数据包进行检查和过滤。
状态检测型防火墙能够识别和跟踪会话状态,从而提供较高的安全性和性能。
防火墙的原理主要基于以下几个方面:1. 访问控制:防火墙根据预设的安全策略,对进出网络的数据流进行访问控制。
通过基于规则或状态的检查,防火墙可以决定是否允许数据包通过。
2. 包过滤和检查:防火墙对进出网络的数据包进行检查,以确定是否满足规则集中的要求。
这些规则可以基于源地址、目的地址、端口号等信息进行过滤,以及可以检查应用层协议的合规性。
3. 网络地址转换(NAT):NAT 是防火墙中常用的一项技术,它可以将内部网络中的私有IP地址转换为公有IP地址,以隐藏内部网络的真实拓扑结构。
NAT 还可以实现端口映射,将来自外部网络的数据包转发到内部网络中的特定主机和端口。
4. 安全日志和审计:防火墙会生成安全日志,记录经过它的网络流量和所做决策的基本信息。
这些安全日志对于网络管理员来说非常重要,可以用于监控和审计网络的安全状态。
总的来说,防火墙通过限制和检查进出网络的数据流,保护网络免受潜在的威胁和攻击。
状态检测防火墙(Stateful Inspection Firewall)是一种常见的网络安全设备,用于监控和控制网络数据包的流动。
其原理是基于对网络连接状态的检测和跟踪,以确定数据包是否属于已建立的合法连接。
下面是状态检测防火墙的原理和优缺点:原理:连接跟踪:状态检测防火墙会跟踪网络连接的建立、终止和数据传输过程。
它维护一个状态表,记录已建立的连接的相关信息,如源IP地址、目标IP地址、端口号等。
数据包过滤:对于每个进入防火墙的数据包,状态检测防火墙会检查其与状态表中已建立连接的匹配程度。
如果数据包匹配到已建立的连接,则被认为是合法的,并允许通过。
否则,它可能被视为潜在的恶意流量,并根据设定的策略进行处理,如丢弃或拒绝。
状态维护:状态检测防火墙会定期更新状态表,删除已关闭的连接,确保状态信息的及时和准确。
优点:高效性:状态检测防火墙能够快速识别和处理已建立连接的数据包,减少了不必要的分析和处理开销,提高了网络性能。
灵活性:由于状态检测防火墙维护了连接状态信息,它可以根据特定的连接状态进行更加精确的访问控制,提供更灵活的安全策略配置。
安全性:状态检测防火墙能够阻止未经授权的访问和恶意流量,保护网络免受潜在威胁。
缺点:有限的应用层检测:状态检测防火墙主要关注网络连接的状态,对于应用层协议的深度检测能力相对较弱,可能无法完全防范一些高级攻击。
状态表资源消耗:随着连接数量的增加,状态表的大小和资源消耗也会增加。
这可能对防火墙设备的性能和可扩展性产生影响。
对非标准协议的支持有限:某些非标准的或定制的协议可能无法被状态检测防火墙准确识别和处理,从而可能影响到特定应用的正常运行。
综上所述,状态检测防火墙通过跟踪网络连接状态,能够有效地监控和控制网络流量。
它具有高效性、灵活性和一定程度的安全性,但也存在一些限制和缺点。
因此,在选择防火墙技术时,需要根据具体的网络环境和安全需求进行评估和权衡。
状态防火墙工作原理状态防火墙(stateful firewall)是一种常见的网络安全设备,用于保护私有网络免受未经授权的访问。
它的工作原理如下:1. 连接跟踪:状态防火墙会在网络层和传输层之间建立一个连接跟踪表,用于记录网络连接的状态。
当一个新的连接请求到达防火墙时,它会检查连接请求的源IP地址、目标IP地址、源端口和目标端口,并将这些信息与跟踪表中的记录进行比较。
如果在跟踪表中找到匹配的记录,防火墙将判断此连接请求是属于一个已建立的连接,然后根据预先定义的安全策略来决定是否允许此连接通过。
2. 状态维护:一旦状态防火墙确认一个连接请求是合法的,它会在跟踪表中创建一条新的记录,并将连接的状态设置为“已建立”。
在随后的数据传输过程中,防火墙会持续监控连接的状态。
如果传输过程中检测到任何异常,如连接中断、数据包丢失等,防火墙将更新连接的状态,并且根据安全策略来采取相应的动作,如关闭连接或发送警报。
3. 安全策略:状态防火墙会根据预先定义的安全策略来判断允许或拒绝连接请求。
这些安全策略通常包括访问控制列表(ACL)和其他设置,用于限制不同层级的访问权限。
例如,防火墙可以根据源IP地址、目标IP地址、源端口、目标端口等参数来过滤和管理入站和出站的数据流量。
4. 网络地址转换(NAT):一些状态防火墙还具备网络地址转换功能。
当数据包从内部网络发送到外部网络时,防火墙会将内部网络的私有IP地址映射为外部网络的公有IP地址,以提供网络访问的安全性和隐私保护。
综上所述,状态防火墙通过建立连接跟踪表、维护连接状态、根据安全策略控制访问权限等方法,实现了对网络流量的监控和过滤,提供了较为可靠的网络安全保护。
防火墙的基本工作原理引言概述:防火墙是一种网络安全设备,用于保护计算机网络免受未经授权的访问和恶意攻击。
它通过监控网络流量并根据预先设定的规则进行过滤,从而实现对网络流量的控制和保护。
本文将详细介绍防火墙的基本工作原理。
一、数据包过滤1.1 源地址过滤:防火墙会检查数据包的源IP地址,如果源地址不在允许的范围内,则防火墙会阻止该数据包通过。
1.2 目标地址过滤:防火墙会检查数据包的目标IP地址,如果目标地址不在允许的范围内,则防火墙会阻止该数据包通过。
1.3 端口过滤:防火墙会检查数据包的源端口和目标端口,如果端口不在允许的范围内,则防火墙会阻止该数据包通过。
二、状态检测2.1 连接状态检测:防火墙会检查数据包的连接状态,例如TCP连接的建立、终止和保持等。
如果连接状态不符合规则,则防火墙会阻止该数据包通过。
2.2 应用层状态检测:防火墙会检查数据包的应用层协议状态,例如HTTP请求和响应的状态码、FTP的命令和响应等。
如果应用层状态不符合规则,则防火墙会阻止该数据包通过。
2.3 会话状态检测:防火墙会检查数据包的会话状态,例如检查是否有多个数据包属于同一个会话。
如果会话状态不符合规则,则防火墙会阻止该数据包通过。
三、网络地址转换3.1 IP地址转换:防火墙可以实现源地址和目标地址的转换,将内部私有IP地址转换为外部公共IP地址,以保护内部网络的隐私和安全。
3.2 端口地址转换:防火墙可以实现源端口和目标端口的转换,将内部使用的私有端口映射到外部公共端口,以提供对外服务的安全性和可访问性。
3.3 地址伪装:防火墙可以伪装内部网络的真实IP地址,使外部网络无法直接访问内部网络,从而增加了网络的安全性。
四、安全策略管理4.1 访问控制列表:防火墙可以根据管理员设定的规则,对网络流量进行过滤和控制。
管理员可以通过访问控制列表来允许或禁止特定的IP地址、端口或协议通过防火墙。
4.2 安全策略更新:防火墙需要及时更新安全策略,以应对新的威胁和攻击方式。
防火墙的原理
随着互联网的发展,网络安全问题日益突出。
为了保护网络系统的安全和稳定运行,防火墙成为了网络安全的重要组成部分。
防火墙是一种网络安全设备,它能够监控和控制网络流量,以阻止未经授权的访问和恶意攻击。
那么,防火墙的原理是什么呢?
首先,防火墙的原理是基于网络包过滤技术。
网络包是网络传输中最小的数据单位,防火墙通过检查网络包的源地址、目的地址、端口号等信息,来判断是否允许通过。
如果网络包符合规则,则被允许通过防火墙;如果不符合规则,则被阻止或丢弃。
其次,防火墙的原理还包括状态检测技术。
状态检测是指防火墙能够记录和跟踪网络连接的状态,包括建立、维护和关闭连接。
通过状态检测,防火墙可以对已建立的合法连接进行监控和管理,同时对于未建立的连接进行拦截和检测,从而提高网络的安全性。
另外,防火墙的原理还包括应用层代理技术。
应用层代理是指防火墙可以代理网络应用程序的通信,对通信内容进行检查和过滤。
通过应用层代理,防火墙可以深入到应用层进行检测,对于恶意攻击和非法访问进行拦截和防范。
总的来说,防火墙的原理是基于网络包过滤、状态检测和应用层代理等技术,通过对网络流量进行监控和控制,来保护网络系统的安全。
防火墙的原理不仅能够阻止未经授权的访问和恶意攻击,还可以提高网络的稳定性和可靠性,是网络安全的重要保障。
随着网络安全威胁的不断增加,防火墙的原理也在不断发展和完善,以应对日益复杂的网络安全挑战。
状态检测防火墙原理防火墙发展到今天,虽然不断有新的技术产生,但从网络协议分层的角度,仍然可以归为以下三类:1.包过滤防火墙;2.基于状态检测技术(Stateful-inspection)的防火墙;3.应用层防火墙这三类防火墙都是向前兼容的,即基于状态检测的防火墙也有一般包过滤防火墙的功能,而基于应用层的防火墙也包括前两种防火墙的功能。
由于<<浅>>文已讲了第一类防火墙,在这里我就讲讲基于状态检测技术的防火墙的实现原理。
为什么会有基于状态检测的防火墙呢?这就要先看看第一类普通包过滤防火墙的主要缺点,比如我们要允许内网用户访问公网的WEB服务,来看看第一类普通包过滤防火墙是怎样处理的呢?那首先我们应该建立一条类似图1所示的规则:但这就行了吗?显然是不行的,因为这只是允许我向外请求WEB服务,但WEB服务响应我的数据包怎么进来呢?所以还必须建立一条允许相应响应数据包进入的规则。
好,就按上面的规则加吧,在动作栏中我们填允许,由于现在数据包是从外进来,所以源地址应该是所有外部的,这里不做限制,在源端口填80,目标地址也不限定,这个这个目标端口怎么填呢?因为当我访问网站时本地端口是临时分配的,也就是说这个端口是不定的,只要是1023以上的端口都有可能,所以没有办法,那只有把这些所有端口都开放了,于是在目标端口填上1024-65535,这样规则就如图2所示了,实际上这也是某些第一类防火墙所采用的方法。
想一想这是多么危险,因为入站的高端口全开放了,而很多危险的服务也是使用的高端口啊,比如微软的终端服务/远程桌面监听的端口就是3389,当然对这种固定的端口还好说,把进站的3389封了就行,但对于同样使用高端口但却是动态分配端口的RPC服务就没那么容易处理了,因为是动态的,你不便封住某个特定的RPC服务。
上面说了这是某些普通包过滤防火墙所采用的方法,为了防止这种开放高端口的风险,于是一些防火墙又根据TCP连接中的ACK位值来决定数据包进出,但这种方法又容易导致DoS 攻击,何况UDP协议还没有这种标志呢?所以普通包过滤防火墙还是没有解决这个问题,我们仍然需要一种更完美的方法,这时就有了状态检测技术,我们先不解释什么是状态检测防火墙,还是来看看它是怎样处理上面的问题的。
防火墙的基本工作原理防火墙是一种网络安全设备,用于保护计算机网络免受未经授权的访问和恶意攻击。
它通过监控网络流量并根据预先设定的规则进行过滤,从而控制网络通信的进出。
1. 包过滤防火墙包过滤是防火墙最基本的工作原理之一。
它基于网络数据包的源地址、目的地址、端口号和协议类型等信息,对数据包进行检查和过滤。
防火墙根据预先设定的规则,决定是否允许数据包通过。
例如,可以设置规则禁止来自特定IP地址的数据包进入网络,或者只允许特定端口的数据包通过。
2. 状态检测防火墙状态检测是一种高级的防火墙工作原理。
它不仅基于包过滤的规则进行过滤,还会检测数据包的状态和连接信息。
防火墙会建立一个状态表,记录网络连接的状态,例如TCP连接的建立、终止和数据传输等。
通过检测连接的状态,防火墙可以更准确地判断是否允许数据包通过。
例如,可以设置规则只允许已建立的合法连接的数据包通过。
3. 应用层防火墙应用层防火墙是一种更高级的防火墙工作原理。
它能够分析和过滤应用层协议的数据,例如HTTP、FTP和SMTP等。
应用层防火墙可以检测和阻止恶意软件、网络攻击和数据泄露等。
例如,可以设置规则阻止包含恶意代码的HTTP请求,或者阻止发送敏感信息的邮件。
4. NAT技术网络地址转换(NAT)是防火墙的一种重要工作原理。
NAT技术可以将内部网络的私有IP地址转换为公共IP地址,从而隐藏内部网络的真实IP地址。
这样可以提高网络安全性,同时也可以节省公共IP地址的使用。
防火墙通过NAT技术,将内部网络和外部网络隔离开来,只允许经过转换的数据包进出内部网络。
5. VPN支持虚拟私有网络(VPN)是一种通过公共网络建立安全连接的技术。
防火墙可以提供VPN支持,允许远程用户通过加密的隧道连接到内部网络。
通过VPN,远程用户可以安全地访问内部资源,同时也可以保护数据的机密性和完整性。
防火墙会对VPN连接进行认证和加密,确保连接的安全性。
6. 日志记录和报警防火墙还可以进行日志记录和报警。
防火墙的基本工作原理防火墙是一种网络安全设备,用于保护计算机网络免受未经授权的访问和恶意攻击。
它通过监控和控制网络流量,实施访问控制策略,以阻挠不安全的网络连接和数据包进入或者离开受保护的网络。
防火墙的基本工作原理可以概括为以下几个方面:1. 包过滤:防火墙根据预先设定的规则,检查数据包的源地址、目的地址、端口号等信息,决定是否允许通过。
数据包可以是传入网络或者传出网络的。
这种基于包头信息的过滤方式被称为静态过滤。
2. 状态检测:防火墙可以检测网络连接的状态,包括建立、终止和维持连接等。
它可以跟踪网络连接的状态表,并根据预先设定的规则来判断是否允许该连接通过。
这种基于连接状态的过滤方式被称为动态过滤。
3. 代理服务:防火墙可以作为客户端和服务器之间的中间人,代理网络连接。
当内部网络的用户请求外部资源时,防火墙会代表用户与外部服务器进行通信,并检查数据的合法性和安全性,然后再将响应传递给用户。
这种方式可以有效隐藏内部网络的真实地址和拦截恶意代码。
4. 地址转换:防火墙可以执行网络地址转换(NAT),将内部网络的私有IP地址转换为公共IP地址,以便与外部网络进行通信。
这样可以增加网络的安全性,同时解决了IP地址不足的问题。
5. 虚拟专用网络(VPN)支持:防火墙可以提供VPN功能,通过加密和隧道技术,实现远程用户与内部网络的安全通信。
VPN可以在公共网络上创建一个安全的隧道,确保数据的机密性和完整性。
6. 日志记录和报警:防火墙可以记录所有进出网络的数据包信息,包括源地址、目的地址、端口号、协议等。
这些日志可以用于网络故障排查、安全审计和事件响应。
防火墙还可以根据设定的规则,触发报警机制,及时通知管理员网络中的安全事件。
总结起来,防火墙的基本工作原理包括包过滤、状态检测、代理服务、地址转换、VPN支持以及日志记录和报警等功能。
它可以通过限制网络流量和控制访问策略,提供网络安全保护,减少网络攻击的风险。
防火墙的基本工作原理防火墙是一种网络安全设备,用于保护计算机网络免受未经授权的访问、攻击和恶意软件的侵害。
它通过检查网络流量并根据预定义的规则集来允许或者阻挠数据包的传输。
防火墙的基本工作原理包括以下几个方面:1. 包过滤:防火墙通过检查数据包的源地址、目的地址、端口号和协议类型等信息,根据预先设定的规则集来决定是否允许数据包通过。
例如,可以设置规则禁止外部网络对内部网络的直接访问,只允许特定的端口和协议通过。
2. 状态检测:防火墙可以跟踪网络连接的状态,例如TCP连接的建立、终止和保持。
它可以根据连接状态来决定是否允许数据包通过。
例如,惟独在建立了有效的连接之后,防火墙才会允许传输数据。
3. 网络地址转换(NAT):防火墙可以执行网络地址转换,将内部网络的私有IP地址映射为公共IP地址,以隐藏内部网络的真实拓扑结构。
这样可以增加网络的安全性,同时也可以解决IP地址不足的问题。
4. 应用层代理:防火墙可以作为客户端和服务器之间的代理,对应用层数据进行深度检查。
它可以防止恶意软件通过应用层协议传播,例如通过HTTP、SMTP 和FTP等协议传输的病毒和木马。
5. 虚拟专用网络(VPN):防火墙可以支持VPN连接,通过加密和隧道技术来保护远程用户和分支机构与总部之间的通信安全。
它可以防止敏感数据在互联网上被窃听和篡改。
6. 日志记录和报警:防火墙可以记录所有的网络活动和安全事件,并生成详细的日志文件。
它可以根据预先设定的规则对异常事件进行报警,以及提供审计和调查所需的信息。
总之,防火墙的基本工作原理是通过对网络流量进行检查和控制,以保护计算机网络的安全。
它可以阻挠未经授权的访问、攻击和恶意软件的传播,提供安全的远程访问和通信,以及记录和报警网络安全事件。
防火墙是网络安全的重要组成部份,广泛应用于企业和个人网络中。
防火墙的基本工作原理防火墙是一种网络安全设备,用于保护计算机网络免受未经授权的访问、恶意软件和网络攻击的侵害。
它通过监控网络流量并根据预设的安全策略来控制数据包的传输,从而实现网络的安全防护。
下面将详细介绍防火墙的基本工作原理。
1. 包过滤防火墙通过包过滤技术对网络流量进行筛选和过滤。
它会检查每一个数据包的源地址、目的地址、端口号等信息,并根据预设的规则集来决定是否允许该数据包通过。
这些规则可以基于IP地址、端口号、协议类型等进行过滤,以限制网络流量的访问权限。
2. 状态检测防火墙可以对网络连接的状态进行检测。
它会跟踪每一个网络连接的状态,并根据预设的规则集来判断是否允许该连接继续进行。
例如,防火墙可以检测到一个网络连接是否是由内部主机发起的,以及该连接是否已经建立或者已经关闭。
通过状态检测,防火墙可以有效地防止一些网络攻击,如拒绝服务攻击和端口扫描。
3. NAT(网络地址转换)防火墙还可以使用网络地址转换技术(NAT)来隐藏内部网络的真实IP地址。
NAT将内部网络的私有IP地址转换为公共IP地址,使得外部网络无法直接访问内部网络的真实地址。
这种方式可以提高网络的安全性,并减少受到攻击的风险。
4. VPN(虚拟专用网络)防火墙可以支持虚拟专用网络(VPN)的建立和管理。
VPN通过加密和隧道技术,在公共网络上创建一个安全的通信通道,使得远程用户可以安全地访问内部网络资源。
防火墙可以对VPN连接进行身份验证和加密,从而保护数据的安全性和完整性。
5. 应用层代理防火墙还可以提供应用层代理服务。
它会在网络应用层对数据进行解析和处理,以确保数据的合法性和安全性。
例如,防火墙可以检查邮件的内容和附件,过滤垃圾邮件和恶意软件。
它还可以对网页内容进行检查,防止访问不安全的网站和下载恶意文件。
6. IDS/IPS(入侵检测与谨防系统)防火墙可以集成入侵检测与谨防系统(IDS/IPS),用于检测和谨防网络中的入侵行为。
浅谈状态检测防火墙和应用层防火墙的原理(结合ISA SERVER)
防火墙发展到今天,虽然不断有新的技术产生,但从网络协议分层的角度,仍然可以归为以下三类:
1,包过滤防火墙;
2,基于状态检测技术(Stateful-inspection)的防火墙;
3,应用层防火墙。
这三类防火墙都是向前包容的,也就是说基于状态检测的防火墙也有一般包过滤防火墙的功能,而基于应用层的墙也包括前两种防火墙的功能。
在这里我将讲讲后面两类防火墙的实现原理。
先从基于状态检测的防火墙开始吧,为什么会有基于状态检测的防火墙呢?这就要先看看第一类普通包过滤防火要缺点,比如我们要允许内网用户访问公网的WEB服务,来看看第一类普通包过滤防火墙是怎样处理的呢?那们应该建立一条类似图1所示的规则:
但这就行了吗?显然是不行的,因为这只是允许我向外请求WEB服务,但WEB服务响应我的数据包怎么进来呢还必须建立一条允许相应响应数据包进入的规则。
好吧,就按上面的规则加吧,在动作栏中我们填允许,由于现据包是从外进来,所以源地址应该是所有外部的,这里不做限制,在源端口填80,目标地址也不限定,这个这端口怎么填呢?因为当我访问网站时本地端口是临时分配的,也就是说这个端口是不定的,只要是1023以上的有可能,所以没有办法,那只有把这些所有端口都开放了,于是在目标端口填上1024-65535,这样规则就如图示了,实际上这也是某些第一类防火墙所采用的方法。
想一想这是多么危险的,因为入站的高端口全开放了,而很多危险的服务也是使用的高端口啊,比如微软的终端远程桌面监听的端口就是3389,当然对这种固定的端口还好说,把进站的3389封了就行,但对于同样使用高但却是动态分配端口的RPC服务就没那么容易处理了,因为是动态的,你不便封住某个特定的RPC服务。
上面说了这是某些普通包过滤防火墙所采用的方法,为了防止这种开放高端口的风险,于是一些防火墙又根据T 接中的ACK位值来决定数据包进出,但这种方法又容易导致DoS攻击,何况UDP协议还没有这种标志呢?所包过滤防火墙还是没有解决这个问题,我们仍然需要一种更完美的方法,这时就有了状态检测技术,我们先不解么是状态检测防火墙,还是来看看它是怎样处理上面的问题的。
同上面一样,
首先我们也需要建立好一条类似图1的规则(但不需要图2的规则),通常此时规则需要指明网络方向,即是进还是出,然后我在客户端打开IE向某个网站请求WEB页面,当数据包到达防火墙时,状态检测检测到这是一个发起连接的初始数据包(由SYN标志),然后它就会把这个数据包中的信息与防火墙规则作比较没有相应规则允许,防火墙就会拒绝这次连接,当然在这里它会发现有一条规则允许我访问外部WEB服务,于允许数据包外出并且在状态表中新建一条会话,通常这条会话会包括此连接的源地址、源端口、目标地址、目标连接时间等信息,对于TCP连接,它还应该会包含序列号和标志位等信息。
当后续数据包到达时,如果这个数
含SYN标志,也就是说这个数据包不是发起一个新的连接时,状态检测引擎就会直接把它的信息与状态表中的目进行比较,如果信息匹配,就直接允许数据包通过,这样不再去接受规则的检查,提高了效率,如果信息不匹数据包就会被丢弃或连接被拒绝,并且每个会话还有一个超时值,过了这个时间,相应会话条目就会被从状态表除掉。
就上面外部WEB网站对我的响应包来说,由于状态检测引擎会检测到返回的数据包属于WEB
那个会话,所以它会动态打开端口以允许返回包进入,传输完毕后又动态地关闭这个端口,这样就避免了普通包防火墙那种静态地开放所有高端端口的危险做法,同时由于有会话超时的限制,它也能够有效地避免外部的DoS 并且外部伪造的ACK数据包也不会进入,因为它的数据包信息不会匹配状态表中的会话条目。
上面虽然是讲的针对TCP(WEB服务)连接的状态检测,但这同样对UDP有效,虽然UDP不是像那样有连接的协议,但状态检测防火墙会为它创建虚拟的连接。
相对于TCP和UDP来说,ICMP的处理要难一些,但它仍然有一些信息来创建虚拟的连接,关些ICMP数据包是单向的,也就是当TCP和UDP传输有错误时会有一个ICMP数据包返回。
对于ICMP的处同的防火墙产品可能不同的方法,在ISA SERVER 2000中,不支持ICMP的状态检查,只能静态地允许或拒绝包的进出。
从上面可以看出,基于状态检测的防火墙较好的解决了第一类普通包过滤防火墙的问题,为了更直解状态检测防火墙,我们还来看看一些实际例子,这些例子都是在ISA SERVER 2000上的表现。
(1)感受会话超时的限制
还是举一个能说明问题的例子,比如大家熟悉的QQ(QQ2003II),为什么你一直不聊天和做其仍然能够收到从腾讯服务器上发来的广告信息呢?肯定不是这个连接到腾讯服务器的QQ会话永不超时,其实你sniffer软件一看就知道了,这是因为QQ每到一分钟时(但还没到一分钟)就会主动与腾讯服务器联系一次,这对防火墙后的QQ是非常重要的,通常来说,对于UDP协议,会话超时都是一分钟或小于一分钟,另外windows 中UDP端口的NAT映射期也只有一分钟,它在一分钟之内联系,这样就会在防火墙状态表中保持它的会话,会话被删除,想像一下,如果它不这样联系的话,一分钟后这条会话被删除,而刚好此时腾讯有个广告要传给你么你是不能收到的,当然其他从腾讯服务器上来的消息也不能收到,这是因为会话中已没有了匹配的条目,而规又没有静态打开的入站端口。
当然上面的分析是从用户的角度来说的,从腾讯的角度来说,它也需要获知用户的状态,所以也需要定时通信,这已不在我们的讨论范围之内了。
除了QQ,MSN Messenger也是这样的。
(2)动态地打开入站端口
首先我已在ISA SERVER 2000中的protocol rules下定义了一条允许所有客户端访问外部WE 的规则,如图3,
注意上面只明确定义了出站的规则,没有明确定义入站的规则,这是因为有状态检测技术起作用,我们用不着为的规则配套一条明确的入站规则。
图4是我在客户端打开网页时在ISA服务器上进行sniffer的结果,第一行是带有SYN标志的初始化连接的数据包,本地端口是22870,第二行是对方回应的数据包,由于与第一行属于同会话,防火墙已经为它动态地打开端口22870以便进入。
上面我们感受了状态检测防火墙的强大功能,但由于状态检测防火墙毕竟是工作在网络层和传输层的,所以它仍一些不能解决的问题需要在应用层来进行解决,比如对于动态分配端口的RPC就必须作特殊处理;另外它也不掉应用层中特定的内容,比如对于http内容,它要么允许进,要么允许出,而不能对http内容进行过滤,这样就不能控制用户访问的WEB内容,也不能过滤掉外部进入内网的恶意HTTP内容,另外,它也不能对用户进行为了解决这些问题,我们还必须把防火墙的过滤层次扩展到应用层,这就是应用层防火墙,不过这种称呼似乎有准,也许叫应用层级的状态检测防火墙更合适,其实今天比较大型的商业防火墙都应该是这个级别的防火墙了,微软的ISA SERVER 2000就是,在ISA中这种应用层的过滤就表现为应用程序过滤器(Application Filters)来看看应用层防火墙的处理过程。
如前文所述,当数据包在网络层和传输层通过检查之后,它就被送到应用层继续进行检查,不同的应用协议送到的应用协议过滤器,比如是SMTP数据包,它就会送到SMTP过滤器,在ISA SERVER 2000中,该筛选器拦核对SMTP 电子邮件通信,保护邮件服务器免受攻击。
该筛选器识别不安全的命令并且可以筛选电子邮件信息或者大小,在未经同意的电子邮件到达邮件服务器之前将其拒绝。
只有匹配过滤器规则的数据包才会允许通过防
但应用层的过滤也有缺点,就是得针对每种应用协议开发一种过滤器,而对于一种具体的应用协议过滤器,它也要不断发展的,因为应用协议在发展,再说还不断有新的应用协议产生,并且由于数据包要经过应用层过滤器的检查,这无疑会降低网络传输效率。
而对于使用动态端口协议的处理这种防火墙最头痛的事情,即使在应用层上决也不是一件容易的事,RPC也许不是问题了,因为它使用了这么多年,各种防火墙对它都已经有了比较成熟方案,比如ISA SERVER 2000中就有专门的RPC filter来对它进行处理,但对于一些比较新的且也使用动态协议就不好办了,比如用于即时通信中的SIP协议等诸多协议都要使用动态端口,由于没有即时的过滤器推出这些协议的网络应用程序在防火墙后通常都会有连接故障,我想那些在防火墙后使用MSN Messenger的朋友有体会(当使用除即时文字聊天和文件传输以外的功能时),不过,现在也有了一种比较全面地来解决这种使用动口协议的方案,那就是在防火墙中添加UPnP协议的支持,这样那些支持UPnP的网络应用程序(如MSN Mess 6.1)就能够自动去发现防火墙并在防火墙上动态地打开端口,这样就无需在防火墙上去进行进退两难的手动配置过遗憾的是,虽然UPnP有效的解决了动态端口的问题,但它也带来了新的安全问题,所以在安全性要求较高的中是不适宜开启UPnP功能的。
可能也是由于安全原因吧,现在支持UPnP的防火墙还很少,据我所知,Kerio win firewall5和windows XP上的ICF是支持UPnP的。
注:本文未探讨另一类工作在应用层的防火墙,即代理服务器,也被称做应用代理网关.。