基于访问控制列表的网络访问控制方法

文档序号:7594891阅读:169来源:国知局
专利名称:基于访问控制列表的网络访问控制方法
技术领域
本发明涉及一种互联网访问控制方法,尤其是一种基于访问控制列表的网络访问控制方法。
背景技术
互联网中常说的访问控制列表(ACL,Access Control List)技术是一种访问控制技术,该技术使用包过滤技术读取数据包包头中的信息,根据预先定义好的规则对包进行过滤,达到访问控制的目的。ACL的主要功能就是一方面保护资源节点,阻止非法用户对资源节点的访问,另一方面限制特定的用户节点所能具备的访问权限。
访问控制列表规则由若干条Permit/Deny语句组成,共同构成一种规则,这种规则被引用作为对数据包的区分标准。通常,每条ACL规则可包含若干条相关的子规则,每条子规则内可以定义主机IP地址范围、端口号范围以及承载的协议类型,只要子规则中定义的IP地址及端口号的范围不同,就可以认为是不同的子规则。
ACL按内容可以分为标准访问控制列表(Standard ACL)和扩展访问控制列表(Extended ACL)。其中,标准访问控制列表仅根据源地址对数据包进行匹配,从而允许或拒绝基于网络、子网或主机的IP地址的所有通信流量通过路由器的出口;扩展访问控制列表,根据源/目的地址、源/目的端口号、承载的协议类型等信息对数据包进行匹配,从而可以对同一地址允许使用某些协议通信流量通过,而拒绝使用其他协议的流量通过。
现有的ACL技术只能定义数据包的源/目的地址、源/目的端口号、承载的协议类型等信息,所以基于现有访问控制列表的包过滤功能也只能根据这些有限的信息来达到访问控制的目的。对单连接的应用协议,其服务端口是知名的,使用现有的ACL技术即可有效对报文分类,而多连接的应用协议有共同的特点,其初始连接是基于知名端口的,在此基础上相继协商出后续连接,后续连接都是基于非知名端口的,因而现有的ACL技术对于多连接协议类型的访问控制无法构成很好的支持。
以H.323协议为例,H.323协议标准由ITU-T制定,描述在分组网络上如何实现多媒体业务,是IP电话系统的重要技术基础。H.323是一个比较复杂的协议,一个完整的呼叫主要由呼叫接纳控制、呼叫控制、媒体控制过程组成,而这几个过程是建立在不同的传输协议上的,H.323协议组由RTP、RTCP、H.225RAS、H.225、H.245、T.120几个部分构成,其中,H.225RAS通道用来进行传递呼叫接纳控制信令,H.225用来进行传递呼叫控制信令,H.245用来进行传递媒体控制信令,RTP、RTCP用来传递各种音频和视频数据,T.120用来进行数据业务。通道同时还采用不同的传输协议,有的使用UDP、有的使用TCP。在上述通信过程中,只有H.225RAS具有知名端口1719,而其他的H.225、H.245、RTP、RTCP等都在前面通信过程的通道中协商产生的,用于后续的通信,因为不知道TCP/UDP的端口是多少,而源地址和目的地址是相同的,因此依据已有ACL技术是无法完成对H.245、RTP、RTCP等协议通道进行识别的功能。
在实际的IP语音的运营环境中,为了保证视频、话音的实时性,要求实现对H.323协议中的RTCP、RTP报文具有更优先的转发机制,以提供更高的QoS保证,以上所述原因使得传统的ACL技术无法保证这一点。类似H.323的协议还有很多,比较有代表性的有FTP、SIP、MGCP等。由于这些多连接协议的存在,导致现有的ACL技术无法解决多连接协议按业务类型进行分流这一根本性的问题。

发明内容
本发明所要解决的技术问题是提供一种基于访问控制列表的网络访问控制方法,该方法能够满足多连接协议按业务类型分流的需求。
为解决上述问题,本发明提供的技术方案是一种基于访问控制列表的网络访问控制方法。首先建立知名端口列表,将知名端口与应用协议标识对应注册;而后建立动态端口注册表以及对报文进行匹配,具体为在动态端口注册表的建立过程中,将用于后续连接的地址、端口以及其所对应的应用协议标识对应注册于动态端口注册表中,在对报文的匹配过程中,如果报文访问的是知名端口,则从知名端口列表中获取该端口对应的应用协议标识,如果报文访问的不是知名端口,则从动态端口注册表中获取用于后续连接的端口对应的应用协议标识,得到应用协议标识后,在访问控制列表中进行查找,根据预先制定的访问规则对该报文进行匹配处理。
在上述基于访问控制列表的网络访问控制方法中,所述的建立动态端口注册表的过程包括以下步骤首先获取报文的应用协议标识,其方法是根据知名端口列表和收到的报文判断收到的报文访问的端口是否是知名端口,若该报文访问的是知名端口,则直接从知名端口列表中获得应用协议标识,否则查找动态端口注册表中该端口是否已经进行过注册,若查到该端口的表项则从动态端口注册表中获得应用协议标识,若动态端口注册表中没有该端口注册过的表项则直接结束注册;获得应用协议标识后,可以对是否需要进行该端口的动态注册进行判断,若需要进行后续的注册则对报文进行解码,解码后判断报文中是否有用于后续连接的地址和端口,若报文中没有用于后续连接的地址和端口的信息则结束注册,否则将获取的用于后续连接的地址和端口在动态端口注册表中进行注册,并在注册的表项内标明地址及端口对应的应用协议标识。
在基于访问控制列表技术的网络访问控制方法中,所述的对报文进行匹配的过程包括以下步骤根据知名端口列表和收到的报文判断收到的报文是否访问的是知名端口,若是则从知名端口列表中获取该端口对应的应用协议标识,否则查找动态端口注册表,若在动态端口注册表中查到该端口的表项则从动态端口注册表中获得应用协议标识,若动态端口注册表中没有该端口注册过的表项,则将该应用协议类型标识为未知;在预置的访问控制列表中查找获取的应用协议标识对应的访问规则,如果预先制定的规则中定义了该应用协议标识所表示的应用协议的访问规则,则根据访问规则对报文进行处理;否则结束该报文的匹配。
对应于本发明提供的网络访问控制方法,该方法所应用到的访问控制列表中应该由访问规则的标准命令和应用协议标识构成访问控制规则,也可以由访问规则的标准命令、应用协议标识和网段地址及网段地址所对应的掩码构成访问控制规则。
相对于现有技术,本发明带来的有益效果是由于在本发明提供的网络访问控制方法中主要依据应用协议的类型对报文进行匹配,因此,特别对于多连接的协议,即使后续连接的端口是非知名的,也可以根据访问控制规则对报文进行精确匹配。因而利用本发明的方法可精确识别多连接应用协议后续连接报文的协议类型,使ACL规则能够支持多连接协议按业务分流的需求。利用本发明所提供的方法可实现按业务类型进行策略路由、策略NAT、QOS等功能。


图1为建立动态端口注册表流程图;图2为报文匹配流程图。
具体实施例方式
本发明提供一种支持多连接协议的网络访问控制方法,此方法依据应用协议类型对报文进行访问控制,其主要包括注册端口和ACL匹配两个过程。ACL匹配完成ACL规则的匹配功能;注册端口使得能精确识别后续连接的应用协议类型,注册端口中又包括建立知名端口列表和建立动态端口注册表的过程。
首先,为了实现本发明所提供的网络访问控制方法,需要在原有“标准访问控制列表”和“扩展访问控制列表”的基础上,增加一类“应用协议访问控制列表”。“应用协议访问控制列表”支持的规则有(1)rule permit application-protocol(2)rule deny application-protocol(3)rule permit x.x.x.x y.y.y.y application-protocol(4)rule deny x.x.x.x y.y.y.y application-protocolapplication-protocol是应用协议的名称,例如H.323,应用时为每一个协议分配一个唯一的标识,与应用协议名称一一对应。x.x.x.x y.y.y.y是网段地址及其对应的掩码,表示ACL允许或禁止该网段的访问。由于某些应用协议涉及多种承载协议,如H.323,其中H.225/H.245的承载协议是TCP协议,而RTP/RTCP的承载协议是UDP协议,因而“应用协议访问控制列表”中不对承载协议的类型定义。
建立知名端口列表是指在列表中注册知名的端口,标明该端口对应的应用协议类型,并且指定一套编解码函数用于识别该应用协议的报文。由于所注册的端口是知名的,所以建立知名端口列表的工作可以在本方法所应用的系统初始化时进行。本方法所应用的系统是指可实现路由功能的系统或设备,如路由器等。建立知名端口列表就是在这些系统或设备进行初始化时完成的。
图1为建立动态端口注册表的一实施例流程图。首先,步骤11为根据知名端口列表和收到的报文判断该报文访问的端口是否是知名端口,如果访问的是知名端口,由于知名端口列表中已经将知名的端口及应用协议类型进行了注册,因而可以从知名端口列表中直接获取该端口对应的应用协议标识。如果报文访问的不是知名端口,则该报文所访问的端口有可能在前面的访问控制过程中已经在动态端口注册表中进行过注册,因而如步骤12,需要在动态端口注册表中进行查找,步骤13为判断在动态端口注册表中是否能够找到该端口,如果在动态端口注册表中未查找到该端口,说明该非知名端口还没有进行注册,使得无法确定该报文的应用协议类型,则应该进行步骤19结束此次注册;如果所要查找的端口已经在动态端口注册表中进行了注册,则获取所述动态端口注册表中的该端口对应的应用协议标识。步骤14为最终从知名端口列表或动态端口注册表中获取该端口的应用协议标识。
确定是何种应用协议后,进行步骤15,即可以对是否需要进行该端口的动态注册进行判断,即如果不需要动态注册,则不必识别用于后续连接的协议类型,可以进行步骤19结束此次注册,如果需要识别后续连接的协议类型,则继续注册过程。
步骤16为对当前应用协议的报文内容进行解码,并且进行步骤17,判断报文中是否有协商好的用于后续连接的地址和端口,如果没有则进行步骤19结束此次注册,如果报文中含有用于后续连接的地址和端口,则进行步骤18,将该地址和端口注册到动态端口注册表中,并在对应的表项内标识该地址和端口对应的应用协议类型。应该说明,该表项既可以是一个独立的表项,也可以与网络地址转换(NAT)共用一个表项。注册时可使用HASH方法以确保查找端口表项的效率。这样,进行后续连接时,可查找到动态注册的端口表项,从该表项内可获得后续连接报文的应用协议类型。
本文中所述的建立动态端口注册表可以理解为通常情况认为的动态端口注册表的建立和更新两个部分的内容。本发明的网络访问控制方法是不断循环进行的,动态端口注册表中也不断对新的端口、地址及所对应的应用协议的信息进行注册,同时由于该表的更新与该表的建立方法是相同的,因而该动态端口注册表实际上不存在建立完成的情况。由上述原因,应该将本发明中的对用于后续连接的端口、地址及对应的应用协议在动态端口注册表中的注册过程理解为该表的建立。
下面以FTP协议为例,介绍如何建立动态端口注册表,以能够动态的得到后续报文的应用协议的标识(ID)。
FTP协议具有两个连接控制连接和数据连接,其中控制连接具有知名端口21,而数据连接是依靠控制连接上的报文中的命令协商得到的。为了达到能动态识别FTP的后续数据连接,需要按照如下的步骤进行首先,把TCP协议的21端口注册成一个知名端口。并且给这个知名端口指定协议的ID为FTP,并且标识FTP协议中会具有协商后续端口的报文,为FTP控制通道指定一套编解码函数,用来识别FTP协议的报文内容。因为21端口是预知的,因此这一步可以在系统初始化的时候就完成。
当FTP的控制报文经过的时候,因为已经预先注册过21为一个知名端口,通过端口21就可以找到其协议ID,同时利用协议ID可以知道FTP报文会具有协商后续端口的报文,因此调用对应的解码函数,对报文进行解码以识别FTP协议的报文内容。如果发现报文内容就是协商端口的交换数据,则就可以预知FTP数据连接的端口信息,这样把从报文内容中得到的端口信息在动态端口注册表中注册成一个动态注册端口,并为这个端口指定一个协议ID为FTP-DATA,由于FTP的数据通道中不会再进一步的协商端口,因此我们指定FTP的数据报文中不会再具有协商后续端口的报文,也不需要为FTP数据通道指定编解码函数了。这样通过注册,使得后续的FTP数据报文通过的时候,通过端口信息查找对应的动态端口注册表,就可以知道这个报文属于一个FTP数据报文,并且得到这个报文的协议ID。
图2为报文匹配的一实施例流程图。步骤21为收到报文的过程,在收到报文后进行步骤22,根据知名端口列表和收到的报文判断该报文访问的端口是否是知名端口,如果访问的是知名端口,则从知名端口列表中获取对应的应用协议标识;如果报文访问的不是知名端口,则该报文访问的端口有可能在动态端口注册表中已经进行过注册,因而需要进行步骤23,在动态端口注册表中继续查找该端口,(动态注册的端口是终端之间通过应用协议协商得到的端口,用于后续的访问。只有多连接协议才会需要端口的动态注册,其注册过程如上文中所述。)并且如步骤24判断动态端口注册表中是否有该端口的注册,如果在动态端口注册表中未查找到该端口,则无法确定该报文的应用协议类型,如步骤25将该报文的应用协议标识为未知,如果所要查找的端口已经在动态端口注册表中进行了注册,则获取其对应的应用协议标识,步骤26为从知名端口列表或动态端口注册表中获取应用协议标识的过程。步骤27为判断获取的应用协议标识是否是访问规则中进行定义过的,如果规则中定义了该协议类型报文的访问控制规则,则执行步骤28,根据获取的当前报文的应用协议标识,按照预置的访问控制列表中的访问控制规则,对报文进行匹配,如果规则中未定义对该协议类型(包括标识为未知的情况)报文的访问控制规则,则执行步骤29,结束对当前报文的匹配。
在本发明的实现过程中,动态端口注册表的建立与更新和报文的匹配并不是相互独立的过程。初期,多数应用协议标识是通过知名端口列表获取的,同时动态端口注册表中也不断对在知名端口基础上用于后续连接的地址、端口及其对应的应用协议进行注册,随着后续连接的增多,再进行的后续连接中的一部分可能已经不是在知名端口的基础上进行的后续连接,而是在已经进行动态端口注册的非知名端口的基础上进行的后续连接,因而这个时候在动态端口注册表建立的过程中,就会有一些应用协议的标识是从当前的动态端口注册表中获取的,用来对后续连接端口的注册,而在报文匹配的过程中,一些报文也是依据在动态端口注册表中的用于后续连接的应用协议类型进行匹配。
以上对本发明所提供的网络访问控制方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;另外,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种基于访问控制列表的网络访问控制方法,其特征在于,包括1)建立包含有知名端口与应用协议标识对应关系的知名端口列表;2)建立包含有用于后续连接的地址、端口与应用协议标识对应关系的动态端口注册表;3)接收数据报文,如果该报文访问的是知名端口,则从知名端口列表中获取该端口对应的应用协议标识;否则从动态端口注册表中获取用于后续连接的应用协议标识;4)根据所述应用协议标识查找访问控制列表,根据访问规则对该报文进行匹配转发处理。
2.如权利要求1所述的基于访问控制列表的网络访问控制方法,其特征在于,步骤2)建立动态端口注册表具体为21)获取报文的应用协议标识;22)判断报文中是否存在用于后续连接的地址和端口,若是则执行步骤23),否则结束注册;23)获取用于后续连接的地址和端口,并在动态端口注册表中进行注册,在注册的表项内标明对应的应用协议标识。
3.如权利要求2所述的基于访问控制列表的网络访问控制方法,其特征在于,步骤21)获取报文的应用协议标识进一步为211)根据知名端口列表和收到的报文判断该报文访问的端口是否是知名端口,若是则进行步骤213),否则进行步骤212);212)查找动态端口注册表中是否有该端口的表项,若查到则进行步骤213),否则结束注册;213)获取对应的应用协议标识。
4.如权利要求2或3所述的基于访问控制列表的网络访问控制方法,其特征在于步骤21)与22)之间判断是否需要进行动态端口的注册,若需要则继续进行步骤22),否则结束注册。
5.如权利要求1所述的基于访问控制列表的网络访问控制方法,其特征在于,步骤3)获得应用协议标识的步骤具体为31)根据知名端口列表和收到的报文判断该报文访问的端口是否是知名端口,若是则进行步骤33),否则进行步骤32);32)查找动态端口注册表中是否注册有该端口的表项,若查到则进行步骤33),否则将该应用协议类型标识为未知;33)获取该端口对应的应用协议标识。
6.如权利要求1所述的基于访问控制列表的网络访问控制方法,其特征在于,步骤4)中匹配转发处理具体为如果预先制定的规则中定义了获取的应用协议标识所表示的应用协议的访问规则,则根据访问规则对报文进行处理;否则结束该报文的匹配。
7.如权利要求1所述的基于访问控制列表的网络访问控制方法,其特征在于步骤1)之前还包括应用访问规则的标准命令和应用协议标识制定报文的访问控制规则。
8.如权利要求1所述基于访问控制列表的网络访问控制方法,其特征在于步骤1)之前还包括应用访问规则的标准命令、应用协议标识和网段地址及网段地址所对应的掩码制定报文的访问控制规则。
全文摘要
本发明涉及一种基于访问控制列表的网络访问控制方法。该方法为建立包含有知名端口与应用协议标识对应关系的知名端口列表;建立包含有用于后续连接的地址、端口与应用协议标识对应关系的动态端口注册表;接收数据报文,如果该报文访问的是知名端口,则从知名端口列表中获取该端口对应的应用协议标识;否则从动态端口注册表中获取用于后续连接的应用协议标识;根据上述应用协议标识查找访问控制列表,根据访问规则对该报文进行匹配处理。利用本发明的方法可精确识别多连接应用协议后续连接报文的协议类型,使访问控制列表中的访问规则能够支持多连接协议按业务分流的需求。
文档编号H04L12/28GK1738290SQ200410058550
公开日2006年2月22日 申请日期2004年8月18日 优先权日2004年8月18日
发明者王宁 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1