浅析防火墙技术原理
数据包过滤技术工作在OSI网络参考模型的网络层和传输层,它是个人防火墙技术的第二道
防护屏障。
数据包过滤技术在网络的入口,根据数据包头源地址,目的地址、端口号和协议
类型等标志确定是否允许通过。
只有满足过滤条件的数据包才被转发到相应的目的地,其余
数据包则被从数据流中丢弃。
所谓的数据包过滤技术。
又称“报文过滤”技术,它是防火墙最传统、最基本的过滤技术。
防
火墙的产生也是从这一技术开始的,最早是于1989所提出的。
防火墙的包过滤技术就是对
通信过程中数据进行过滤(又称筛选),使符合事先规定的安全规则(或称“安全策略”)的数据包
通过,而使那些不符合安全规则的数据包丢弃。
这个安全规则就是防火墙技术的根本,它是
通过对各种网络应用、通信类型和端口的使用来规定的。
包过滤方式是一种通用、廉价和有效的安全手段。
它的优点是它对于用户来说是透明的,处
理速度快而且易于维护,通常被做为一道基本防线。
不用改动客户机和主机上的应用程序,
因为它工作在网络层和传输层,与应用层无关。
之所以通用,是因为它不是针对各个具体的
网络服务采取特殊的处理方式,适用于所有网络服务;之所以廉价,是因为大多数路由器都提
供数据包过滤功能,所以这类防火墙多数是由路由器集成的;之所以有效,是因为它能很大程
度上满足了绝大多数企业安全要求。
防火墙对数据的过滤,首先是根据数据包中包头部分所包含的源IP地址、目的IP地址、协
议类型(TCP包、UDP包、ICMP包)、源端口、目的端口及数据包传递方向等信息,判断是否
符合安全规则,以此来确定该数据包是否允许通过。
在这个网络结构中防火墙位于内、外部网络的边界,内部网络可能包括各种交换机、路由器
等网络设备。
而外部网络通常是直接通过防火墙与内部网络连接,中间不会有其它网络设备。
防火墙作为内、外部网络的唯一通道,所以进、出的数据都必须通过防火墙来传输的。
这就
有效地保证了外部网络的所有通信请求,当然包括黑客所发出的非法请求都能在防火墙中进
行过滤。
包过滤技术最先使用的是在路由器上进行的,它也是最原始的防火墙方案。
实现起来非常容易,只需要在原有的路由器上进行适当的配置即可实现防火墙方案。
在整个防火墙技术的发
展过程中,包过滤技术出现了两种不同版本,称为“第一代静态包过滤”和“第二代动态包过滤”。
①第一代静态包过滤类型防火墙
这类防火墙几乎是与路由器同时产生的,它是根据定义好的过滤规则审查每个数据包,以便
确定其是否与某一条包过滤规则匹配。
过滤规则基于数据包的报头信息进行制订。
报头信息
中包括IP源地址、IP目标地址、传输协议(TCP, UDP,ICMP等等)、TCP/UDP目标端口、ICMP
消息类型等。
②第二代动态包过滤类型防火墙
这类防火墙采用动态设置包过滤规则的方法,避免了静态包过滤所具有的问题。
这种技术后
来发展成为包状态监测技术。
采用这种技术的防火墙对通过其建立的每一个连接都进行跟踪,并且根据需要可动态地在过滤规则中增加或更新条目。
2应用网关技术
应用级网关可以工作在OSI七层模型的任一层上,能够检查进出的数据包,通过网关复制传
递数据,防止在受信任服务器和客户机与不受信任的主机间直接建立联系。
应用级网关能够
理解应用层上的协议,能够做复杂一些的访问控制,并做精细的注册。
通常是在特殊的服务
器上安装软件来实现的。
电路级网关也是一种代理。
电路级网关用来监控受信任的客户或服务器与不受信任的主机间
的TCP握手信息,这样来决定该会话是否合法,电路级网关是在OS工模型中会话层上来过
滤数据包,这样比包过滤防火墙要高两层。
另外,电路级网关还提供一个重要的安全功能,
即网络地址转移(NAT)将所有公司内部的IP地址映射到一个“安全”的IP地址,这个地址是由
防火墙使用的。
有两种方法来实现这种类型的网关,一种是由一台主机充当筛选路由器而另
一台充当应用级防火墙。
另一种是在第一个防火墙主机和第二个之间建立安全的连接。
这种
结构的好处是当一次攻击发生时能提供容错功能。
3地址翻译技术
地址翻译技术NAT是将一个IP地址用另一个IP地址代替。
地址翻译技术主要模式有以下几种。
(1)静态翻译。
按照固定的翻译表,将主机的内部地址翻译成防火墙的外网接口地址。
(2)动态翻译。
为隐藏内部主机或扩展的内部网络地址之间,一个大的用户群共享一个或一组小的Internet IP地址。
(3)负载平衡翻译。
一个IP地址和端口被翻译为同等配置的多个服务器。
当请求到达时,防
火墙按照一个算法平衡所有连接到内部的服务器。
这样,向一个合法的IP地址请求,实际上
有多台服务器在提供服务。
(4)网络冗余翻译。
多个连续被附结在一个NAT防火墙上,防火墙根据负载和可用性对连接
进行选择和使用。
4状态检测技术
状态检测防火墙采用基于连接的状态检测机制,将属于同一连接的所有包作为一个整体的数
据流看待,构成连接状态表,通过规则表与状态表的共同配合,对表中的各个连接因素加以
识别。
当一个状态检测防火墙收到一个初始化TCP连接的SYN包该包被防火墙规则库检查,如果检查了所有规则后,该包都没有被接受,那么拒绝该次连接。
如该包被接受,那么本次会话被
记录到状态监测表里。
并设置一个合适的时间溢出值,当防火墙收到返回的含有SYN/ACK标
志的确认连接数据包,防火墙调整时间溢出值到合适大小,否则拒绝服务攻击马上就会将防
火墙陷入瘫痪。
随后的数据包就和该状态监测表的内容进行比较,通过比较源地址、目的地
址和端口号来区分是否是同一个会话。
如果该数据包是状态表内的会话的一部分,该包被接受,如果不知则该包被丢弃。
这种方式提高了系统性能,因为每个数据包不是和规则库比较,而是和状态表比较,只有在SYN数据包到来时才和规则库比较。
参考文献:
[1]阎慧.防火墙原理与技术[M].北京:机械工业出版社.
[2]朱树人.防火墙HTTP代理用户认证的实现技术[J].计算机工程与应用, 2011.
[3]杨璐.网络安全理论与技术[M].北京:人民邮电出版社,2013,160-166.。