2010年第11期福建电脑
49
防火墙包过滤技术分析
赵
辉,冯东栋
(河南大学计算中心河南开封475004)
【摘要】:在网络边界设置防火墙是进行网络防护的有效手段。本文首先介绍了防火墙及其功能,然后分析了防火墙所使用的最基本的技术手段--包过滤技术,给出了它对应各个传输协议的应用,并对其局限性提出了一种解决方法。
【关键词】:网络安全,防火墙,包过滤
1、引言
近年来,Internet的快速增长促进了信息技术的飞速发展,它的迅猛成长正在使世界成为一个整体。随着Internet的日益普及,通过浏览访问互联网,不仅使人们更容易的获得各种信息,也使网络被攻击的可能性大大增加,随之而来的是数据的完整性与安全性问题。人们一方面要把自己的内部网接入Internet,以便成员可以最大可能地利用Internet上的资源,同时又需要把自己的数据有意识地保护起来,以防数据泄密及受到外界对内部系统的恶意破坏。由于Internet的开放性,网络安全防护的方式发生了根本变化,使得安全问题更为复杂。传统的网络强调统一而集中的安全管理和控制,可采取加密、认证、访问控制、审计以及日志等多种技术手段,且它们的实施可由通信双方共同完成。而由于Internet是一个开放的全球网络,其网络结构错综复杂,因此安全防护方式截然不同。Internet的安全技术涉及传统的网络安全技术和分布式网络安全技术,且主要是用来解决如何利用Internet进行安全通信,同时保护内部网络免受外部攻击。在此情形下,防火墙技术应运而生。防火墙与包过滤技术是当前能采用的一个有效措施,通过精心设置访问策略,可以得到资源共享与信息安全的均衡。2、防火墙及其功能
用专业术语来说,防火墙是指在可信的内部网络和不安全的外部网络之间设置的一种或多种部件的集合(由软件和硬件组成)。防火墙的作用是防止不希望的、未经授权的通信进入,保护的内部网络。防火墙可以实施网络之间访问控制,限制内外网之间的交流,最终达到保护内部网的目的。对于普通用户来说,所谓"防火墙",指的就是一种被放置在自己的计算机与外界网络之间的防御系统,从外部网络交给计算机的所有数据都要经过它的判断处理后,才会决定能不能把这些数据交给计算机,一旦发现有害数据,防火墙就会将其拦截下来,实现了对计算机的保护功能。
如果没有防火墙,整个内部网络的安全性就完全依赖于每一个主机。所以,所有的主机都必须达到一个相当的安全水平。否则,安全水平最低的那台主机一旦被攻克,整个内部网络就会完全的暴露在攻击者面前。这就是所谓的"木桶原理",木桶能装多少水由最短的那块板决定。网络规模越大,要使网络中所有主机都达到一个相当的安全水平就越困难。
防火墙还可以对网络存取和访问进行监控审计。如果所有的访问都经过防火墙,那么,防火墙就能记录下这些访问并作出日志记录,同时也能提供网络使用情况的统计数据。当发生可疑动作时,防火墙能进行适当的报警,并提供网络是否受到监测和攻击的详细信息。
3、包过滤技术
包过滤(PacketFiltering)技术是最早使用的一种防火墙技术,也是防火墙所要实现的最基本功能。防火墙根据数据包中包头信息有选择的实施允许通过或阻断,将不符合要求的包过滤掉。它的第一代模型是"静态包过滤",使用包过滤技术的防火墙通常工作在OSI模型中的网络层上,后来发展更新的"动态包过滤"增加了传输层。简言之,包过滤技术工作的地方就是各种基于TCP/IP协议的数据报文进出的通道,它把这两层作为数据监控的对象,依据防火墙内事先设定的过滤规则,检查数据流中每个数据包头部,根据数据包的源地址、目的地址、TCP/UDP源端口号、TCP/UDP目的端口号及数据包头中的各种标志位等因素来确定是否允许数据包通过,一旦发现某个包的某个或多个部分与过滤规则匹配并且条件为"阻止"的时候,这个包就会被丢弃。
包过滤是在网络层实现的,因此,它可以只用路由器完成。其工作原理是系统在网络层检查数据包,与应用层无关,包过滤器的应用非常广泛,因为CPU用来处理包过滤的时间可以忽略不计。而且这种防护措施对用户透明,合法用户在进出网络时,根本感觉不到它的存在,使用起来很方便。这样系统就具有很好的传输性能,易于扩展。
50
3.1包过滤的应用
福建电脑2010年第11期
包过滤的安全策略基于用来传送数据包的协议。现在Internet广泛采用TCP/IP协议族。在TCP/IP协议族中,用来传送数据包的核心协议有IP、TCP、UDP、ICMP等几个协议。下面分析数据包在各个协议中的应用。
2.1.1IP协议
对于包过滤,IP协议有几个重要的信息,可以依据这些信息制定相应的安全策略:
(1)IP源地址,32bit。(2)IP目的地址,32bit。
(3)IP协议类型,用来辨别IP包中运输的数据包类型。是TCP协议数据包,还是UDP协议数据包,或者是ICMP协议数据包。
(4)IP选项字段。
对IP协议的包过滤规则可以制定按地址过滤策略。例如,如果认为具有某个IP地址的网络设备是不安全的,可以通过设置包过滤规则来阻止源地址是该IP地址的包通过防火墙;如果认为具有某个IP地址的网络设备是非常重要的,不允许外部网络的设备访问,则可以通过设置包过滤规则来阻止目的地址是该IP地址的包通过防火墙。
IP地址欺骗是黑客比较常用的一种攻击手段。黑客封装一个数据包,在IP源地址处填上一个内部网络的地址,以欺骗目的主机,使之以为在和内部网络的另一台主机通信,而给与黑客较高的访问权限。而作为网络边界的防火墙可以很容易判断出数据包是来自于外部还是内部。防火墙通过阻止所有来自于外部,却具有内部源地址的数据包,就可以阻挡IP地址欺骗的攻击。
而对于IP选项字段,数据包过滤面对的最常见的IP选项字段是源地址路由。源地址路由是由数据包的发送方来指明数据包到达目的地的路由,而不是由路由器根据自己的路由表来选择路由。这样有一定的作用,比如可以绕开某些"不好"的网络。但有时候也会被黑客所利用,不走正常的路由路径,用来绕开安全检测,另外它还能成为IP地址欺骗攻击的辅助手段。用来欺骗目的主机,使之认为黑客伪造的IP地址能够正常路由,且能够收到回应。要应对这种问题,只要检查IP选项,阻止所有包含源路由选项的数据包即可。这样既能保证安全,也不会对正常的网络访问造成影响。2.1.2TCP/UDP协议
针对包过滤,TCP/UDP有几个重要的信息:(1)TCP/UDP源端口。(2)TCP/UDP目的端口。(3)TCP标志字段。
对TCP/UDP协议的包过滤规则可以制定按服务过滤策略。可以根据TCP/UDP协议中的源端口和目的端
口来制定安全规则,进行相应的过滤。比如如果要禁止外部网络对内部网络的Telnet访问,只需要将进入内部网络的,目的端口是23的数据包阻止即可。
因为TCP/UDP的源端口通常是随机的,所以通常不使用源端口进行控制。TCP是面向连接的协议,主机在通信之前要先通过3次握手建立连接。TCP标志字段会表明这个TCP数据包是SYN包,还是非SYN包。如果一个TCP数据包的标志字段仅SYN位置1,就可知这是TCP3次握手中的第一个请求,如果要禁止此次连接,只需要阻止这个包就可以了。2.1.3ICMP协议
ICMP即Internet控制与报文协议,主要用来进行错误信息和控制信息的传递。例如,著名的Ping和TraceRoute工具就是利用ICMP协议来测试设备的连通性和检测数据包的路由路径的。
ICMP协议是无连接的。这个特点使得ICMP协议非常灵活快捷,但同时也易于伪造,ICMP报文的源地址是可以随便写的,这样黑客可以直接在ICMP和IP协议的首部填上虚假的地址,在目的端根本无法追查。基于这个特点,出现了许多基于ICMP的攻击手段,可以通过网络架构缺陷制造ICMP风暴,可以使用非常大的报文阻塞网络,也可以利用ICMP碎片攻击消耗服务器的资源,甚至可以制作基于ICMP通信,不需要任何TCP/UDP端口的木马。
包过滤防火墙可以直接丢弃外部网络来的ICMP包,这样就能避免许多风险。3.2包过滤技术的局限性
包过滤也是有局限的。其中主要的一点就是不能进行内容级控制。比如不能针对用户身份进行的限制。如果有一个服务器,允许用户user1登录而禁止用户user2登录;因为用户名在数据包的数据内容部分,包过滤就无能为力了。
对于这种情况,一般的解决办法是增加防火墙的协议层次,使其具有查看高层协议内容的功能。但是如果对于每一个进出防火墙的数据包,都要对包内的所有数据进行查验的话,一方面会大大增加防火墙的负担,造成数据包在防火墙内的拥塞,严重影响网络性能;另一方面要使防火墙能够查看某一高层协议内容,就需要在防火墙上配置该协议,这样防火墙上配置的高层协议将会非常多,管理困难且进一步影响性能。而且如今随着网络应用的日益增多,新的协议层出不穷,给防火墙配置所有的网络协议不可能也不现实。
为了解决这一矛盾。可以在防火墙中维护一张"高层协议表",只将需要查看内容的协议如需用户登录的协议等记录在该表内,并在防火墙中配置该协议。当防火墙收到一个数据包后,先以防火墙配置的基本包过滤原则(IP地址,IP选项,端口号等)进行检测,如果检测不通过则丢弃该数据包;如果检测通(下接第83页)
2010年第11期
5.常用对外服务端口和对外请求端口设置
福建电脑
83
而打造低成本的网站信息安全。
设置如下防火墙,主要是设置入站筛选,限制外网对内网访问,也限制内网对外网访问,只允许下面的规则入站。
5.1.限制对外提供服务
通过设置入站筛选,限制对外提供服务。表一列出网站常用对外服务的入站筛选列表。
表二对外请求服务的入站筛选器列表
表一对外提供服务的入站筛选器列表
5.2.限制对外请求服务
通过设置入站筛选,限制对外请求服务。表二列出网站常用对外请求服务的入站筛选列表。表三列出网站如果有在线支付时候需求的对外请求服务入站筛选列表。6.结论
利用Windows2003自带功能,通过对入站筛选器端口和指定IP的限制,限制对外服务端口与IP,及限制对外访问IP与端口,基本可保证网站信息安全,从
表三:在线支付对外请求服务的入站筛选器列表
参考文献:
[1]查看端口,博客,http://blog.sina.com.cn/s/blog_4a8e1cc60100cz8h.html
[2]深入理解路由和远程访问服务中的筛选器和基本防火墙,博客,
http://www.cnttr.com/105348/viewspace_5387.html
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(上接第50页)
过,再判断其所用高层协议是否在"高层协议表"中,如果不在,则直接放行,如果数据包所用高层协议在表中,则进一步查看数据内容以确定是否放行该包。此时防火墙工作流程如下图:
一般来说,对于一个特定的网络,需要查看哪些高层协议的数据内容是可知的,且数量不会太多。这样,对于网络边界的防火墙来说,所需配置的网络协议并不多,增加的负担也在可承受的范围之内,对网络性能影响不大。4、结语
综上所述,包过滤技术简单灵活,资源占用较少,对用户透明,使用起来很方便,具有很好的传输性能,易于扩展。但同时它也有不能进行内容级控制等局限性。只有把包过滤技术和其他应用级、内容级防护手段综合应用,才能更好的构建网络防护体系,保障网络的安全。
参考文献:
[1]AndrewSTanenbaum.ComputerNetworks(FourthEdtion)[M],北京:清华大学出版社,2004.
[2]谢希仁.计算机网络(第5版)[M],北京:电子工业出版社,2007.
[3]刘鹏远,孙宝林,桂超.Windows平台通用个人防火墙的分析与设计[J],计算机工程,2009.6.
[4]安金萍,张景,李军怀.状态检测包过滤技术在Linux下的实现[J],计算机工程,2005.1.
2010年第11期福建电脑
49
防火墙包过滤技术分析
赵
辉,冯东栋
(河南大学计算中心河南开封475004)
【摘要】:在网络边界设置防火墙是进行网络防护的有效手段。本文首先介绍了防火墙及其功能,然后分析了防火墙所使用的最基本的技术手段--包过滤技术,给出了它对应各个传输协议的应用,并对其局限性提出了一种解决方法。
【关键词】:网络安全,防火墙,包过滤
1、引言
近年来,Internet的快速增长促进了信息技术的飞速发展,它的迅猛成长正在使世界成为一个整体。随着Internet的日益普及,通过浏览访问互联网,不仅使人们更容易的获得各种信息,也使网络被攻击的可能性大大增加,随之而来的是数据的完整性与安全性问题。人们一方面要把自己的内部网接入Internet,以便成员可以最大可能地利用Internet上的资源,同时又需要把自己的数据有意识地保护起来,以防数据泄密及受到外界对内部系统的恶意破坏。由于Internet的开放性,网络安全防护的方式发生了根本变化,使得安全问题更为复杂。传统的网络强调统一而集中的安全管理和控制,可采取加密、认证、访问控制、审计以及日志等多种技术手段,且它们的实施可由通信双方共同完成。而由于Internet是一个开放的全球网络,其网络结构错综复杂,因此安全防护方式截然不同。Internet的安全技术涉及传统的网络安全技术和分布式网络安全技术,且主要是用来解决如何利用Internet进行安全通信,同时保护内部网络免受外部攻击。在此情形下,防火墙技术应运而生。防火墙与包过滤技术是当前能采用的一个有效措施,通过精心设置访问策略,可以得到资源共享与信息安全的均衡。2、防火墙及其功能
用专业术语来说,防火墙是指在可信的内部网络和不安全的外部网络之间设置的一种或多种部件的集合(由软件和硬件组成)。防火墙的作用是防止不希望的、未经授权的通信进入,保护的内部网络。防火墙可以实施网络之间访问控制,限制内外网之间的交流,最终达到保护内部网的目的。对于普通用户来说,所谓"防火墙",指的就是一种被放置在自己的计算机与外界网络之间的防御系统,从外部网络交给计算机的所有数据都要经过它的判断处理后,才会决定能不能把这些数据交给计算机,一旦发现有害数据,防火墙就会将其拦截下来,实现了对计算机的保护功能。
如果没有防火墙,整个内部网络的安全性就完全依赖于每一个主机。所以,所有的主机都必须达到一个相当的安全水平。否则,安全水平最低的那台主机一旦被攻克,整个内部网络就会完全的暴露在攻击者面前。这就是所谓的"木桶原理",木桶能装多少水由最短的那块板决定。网络规模越大,要使网络中所有主机都达到一个相当的安全水平就越困难。
防火墙还可以对网络存取和访问进行监控审计。如果所有的访问都经过防火墙,那么,防火墙就能记录下这些访问并作出日志记录,同时也能提供网络使用情况的统计数据。当发生可疑动作时,防火墙能进行适当的报警,并提供网络是否受到监测和攻击的详细信息。
3、包过滤技术
包过滤(PacketFiltering)技术是最早使用的一种防火墙技术,也是防火墙所要实现的最基本功能。防火墙根据数据包中包头信息有选择的实施允许通过或阻断,将不符合要求的包过滤掉。它的第一代模型是"静态包过滤",使用包过滤技术的防火墙通常工作在OSI模型中的网络层上,后来发展更新的"动态包过滤"增加了传输层。简言之,包过滤技术工作的地方就是各种基于TCP/IP协议的数据报文进出的通道,它把这两层作为数据监控的对象,依据防火墙内事先设定的过滤规则,检查数据流中每个数据包头部,根据数据包的源地址、目的地址、TCP/UDP源端口号、TCP/UDP目的端口号及数据包头中的各种标志位等因素来确定是否允许数据包通过,一旦发现某个包的某个或多个部分与过滤规则匹配并且条件为"阻止"的时候,这个包就会被丢弃。
包过滤是在网络层实现的,因此,它可以只用路由器完成。其工作原理是系统在网络层检查数据包,与应用层无关,包过滤器的应用非常广泛,因为CPU用来处理包过滤的时间可以忽略不计。而且这种防护措施对用户透明,合法用户在进出网络时,根本感觉不到它的存在,使用起来很方便。这样系统就具有很好的传输性能,易于扩展。
50
3.1包过滤的应用
福建电脑2010年第11期
包过滤的安全策略基于用来传送数据包的协议。现在Internet广泛采用TCP/IP协议族。在TCP/IP协议族中,用来传送数据包的核心协议有IP、TCP、UDP、ICMP等几个协议。下面分析数据包在各个协议中的应用。
2.1.1IP协议
对于包过滤,IP协议有几个重要的信息,可以依据这些信息制定相应的安全策略:
(1)IP源地址,32bit。(2)IP目的地址,32bit。
(3)IP协议类型,用来辨别IP包中运输的数据包类型。是TCP协议数据包,还是UDP协议数据包,或者是ICMP协议数据包。
(4)IP选项字段。
对IP协议的包过滤规则可以制定按地址过滤策略。例如,如果认为具有某个IP地址的网络设备是不安全的,可以通过设置包过滤规则来阻止源地址是该IP地址的包通过防火墙;如果认为具有某个IP地址的网络设备是非常重要的,不允许外部网络的设备访问,则可以通过设置包过滤规则来阻止目的地址是该IP地址的包通过防火墙。
IP地址欺骗是黑客比较常用的一种攻击手段。黑客封装一个数据包,在IP源地址处填上一个内部网络的地址,以欺骗目的主机,使之以为在和内部网络的另一台主机通信,而给与黑客较高的访问权限。而作为网络边界的防火墙可以很容易判断出数据包是来自于外部还是内部。防火墙通过阻止所有来自于外部,却具有内部源地址的数据包,就可以阻挡IP地址欺骗的攻击。
而对于IP选项字段,数据包过滤面对的最常见的IP选项字段是源地址路由。源地址路由是由数据包的发送方来指明数据包到达目的地的路由,而不是由路由器根据自己的路由表来选择路由。这样有一定的作用,比如可以绕开某些"不好"的网络。但有时候也会被黑客所利用,不走正常的路由路径,用来绕开安全检测,另外它还能成为IP地址欺骗攻击的辅助手段。用来欺骗目的主机,使之认为黑客伪造的IP地址能够正常路由,且能够收到回应。要应对这种问题,只要检查IP选项,阻止所有包含源路由选项的数据包即可。这样既能保证安全,也不会对正常的网络访问造成影响。2.1.2TCP/UDP协议
针对包过滤,TCP/UDP有几个重要的信息:(1)TCP/UDP源端口。(2)TCP/UDP目的端口。(3)TCP标志字段。
对TCP/UDP协议的包过滤规则可以制定按服务过滤策略。可以根据TCP/UDP协议中的源端口和目的端
口来制定安全规则,进行相应的过滤。比如如果要禁止外部网络对内部网络的Telnet访问,只需要将进入内部网络的,目的端口是23的数据包阻止即可。
因为TCP/UDP的源端口通常是随机的,所以通常不使用源端口进行控制。TCP是面向连接的协议,主机在通信之前要先通过3次握手建立连接。TCP标志字段会表明这个TCP数据包是SYN包,还是非SYN包。如果一个TCP数据包的标志字段仅SYN位置1,就可知这是TCP3次握手中的第一个请求,如果要禁止此次连接,只需要阻止这个包就可以了。2.1.3ICMP协议
ICMP即Internet控制与报文协议,主要用来进行错误信息和控制信息的传递。例如,著名的Ping和TraceRoute工具就是利用ICMP协议来测试设备的连通性和检测数据包的路由路径的。
ICMP协议是无连接的。这个特点使得ICMP协议非常灵活快捷,但同时也易于伪造,ICMP报文的源地址是可以随便写的,这样黑客可以直接在ICMP和IP协议的首部填上虚假的地址,在目的端根本无法追查。基于这个特点,出现了许多基于ICMP的攻击手段,可以通过网络架构缺陷制造ICMP风暴,可以使用非常大的报文阻塞网络,也可以利用ICMP碎片攻击消耗服务器的资源,甚至可以制作基于ICMP通信,不需要任何TCP/UDP端口的木马。
包过滤防火墙可以直接丢弃外部网络来的ICMP包,这样就能避免许多风险。3.2包过滤技术的局限性
包过滤也是有局限的。其中主要的一点就是不能进行内容级控制。比如不能针对用户身份进行的限制。如果有一个服务器,允许用户user1登录而禁止用户user2登录;因为用户名在数据包的数据内容部分,包过滤就无能为力了。
对于这种情况,一般的解决办法是增加防火墙的协议层次,使其具有查看高层协议内容的功能。但是如果对于每一个进出防火墙的数据包,都要对包内的所有数据进行查验的话,一方面会大大增加防火墙的负担,造成数据包在防火墙内的拥塞,严重影响网络性能;另一方面要使防火墙能够查看某一高层协议内容,就需要在防火墙上配置该协议,这样防火墙上配置的高层协议将会非常多,管理困难且进一步影响性能。而且如今随着网络应用的日益增多,新的协议层出不穷,给防火墙配置所有的网络协议不可能也不现实。
为了解决这一矛盾。可以在防火墙中维护一张"高层协议表",只将需要查看内容的协议如需用户登录的协议等记录在该表内,并在防火墙中配置该协议。当防火墙收到一个数据包后,先以防火墙配置的基本包过滤原则(IP地址,IP选项,端口号等)进行检测,如果检测不通过则丢弃该数据包;如果检测通(下接第83页)
2010年第11期
5.常用对外服务端口和对外请求端口设置
福建电脑
83
而打造低成本的网站信息安全。
设置如下防火墙,主要是设置入站筛选,限制外网对内网访问,也限制内网对外网访问,只允许下面的规则入站。
5.1.限制对外提供服务
通过设置入站筛选,限制对外提供服务。表一列出网站常用对外服务的入站筛选列表。
表二对外请求服务的入站筛选器列表
表一对外提供服务的入站筛选器列表
5.2.限制对外请求服务
通过设置入站筛选,限制对外请求服务。表二列出网站常用对外请求服务的入站筛选列表。表三列出网站如果有在线支付时候需求的对外请求服务入站筛选列表。6.结论
利用Windows2003自带功能,通过对入站筛选器端口和指定IP的限制,限制对外服务端口与IP,及限制对外访问IP与端口,基本可保证网站信息安全,从
表三:在线支付对外请求服务的入站筛选器列表
参考文献:
[1]查看端口,博客,http://blog.sina.com.cn/s/blog_4a8e1cc60100cz8h.html
[2]深入理解路由和远程访问服务中的筛选器和基本防火墙,博客,
http://www.cnttr.com/105348/viewspace_5387.html
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(上接第50页)
过,再判断其所用高层协议是否在"高层协议表"中,如果不在,则直接放行,如果数据包所用高层协议在表中,则进一步查看数据内容以确定是否放行该包。此时防火墙工作流程如下图:
一般来说,对于一个特定的网络,需要查看哪些高层协议的数据内容是可知的,且数量不会太多。这样,对于网络边界的防火墙来说,所需配置的网络协议并不多,增加的负担也在可承受的范围之内,对网络性能影响不大。4、结语
综上所述,包过滤技术简单灵活,资源占用较少,对用户透明,使用起来很方便,具有很好的传输性能,易于扩展。但同时它也有不能进行内容级控制等局限性。只有把包过滤技术和其他应用级、内容级防护手段综合应用,才能更好的构建网络防护体系,保障网络的安全。
参考文献:
[1]AndrewSTanenbaum.ComputerNetworks(FourthEdtion)[M],北京:清华大学出版社,2004.
[2]谢希仁.计算机网络(第5版)[M],北京:电子工业出版社,2007.
[3]刘鹏远,孙宝林,桂超.Windows平台通用个人防火墙的分析与设计[J],计算机工程,2009.6.
[4]安金萍,张景,李军怀.状态检测包过滤技术在Linux下的实现[J],计算机工程,2005.1.