发明内容
有鉴于此,本发明的主要目的在于提供一种连接速率限制方法,使其能对网络设备或服务的访问须率进行限制。
本发明的另一目的在于提供一种防火墙***上的访问限制方法,使其能对网络设备或服务的访问频率进行限制,并防止网络垃圾的扩散。
本发明进一步的目的在于提供一种防火墙***,使其能对网络设备或服务的访问频率进行限制,并防止网络垃圾的扩散。
为达到上述目的,本发明的技术方案是这样实现的:
本发明公开了一种连接速率限制方法,该方法为连接限制功能配置连接限制资源,该方法包括以下步骤:
A.判断新建数据连接是否符合连接限制资源中设定的连接特征,如果是,则根据所配置的连接限制资源对该数据连接进行连接速率的统计,继续执行步骤B;否则允许该新建数据连接的数据包通过;
B.判断统计得到的连接速率是否超过指定阈值,如果是,则阻断该数据连接的数据包通过;否则根据所配置的连接限制资源,允许或阻断该新建数据连接的数据包通过。
其中,所述连接限制资源包括:连接特征、指定统计周期、指定阈值、阻断周期、连接限制类型、连接限制统计方式。所述连接限制类型为保护主机、或保护服务、或限制主机、或限制服务。所述连接限制统计方式为共享方式或独享方式。所述连接特征为数据包的目的IP地址、或目的IP地址和目的端口、或源IP地址、或源IP地址和目的端口。所述连接特征中数据包的源IP地址、目的IP地址为单一IP地址、或一段IP地址范围。
上述方案的步骤B中,所述统计得到的连接速率超过指定阈值时,该方法进一步包括:启动阻断周期和新的统计周期;
相应地,在后续数据连接处理中,如果统计得到的连接速率不超过指定阈值,则所述根据所配置的连接限制资源允许或阻断数据包通过具体为:判断该数据连接是否在阻断周期内,如果是,则阻断该新建数据连接的数据包通过;否则允许该新建数据连接的数据包通过。
其中,在所述阻断周期内,该方法进一步包括:判断统计得到的新的连接速率是否超过指定阈值,如果是,则启动新的阻断周期和新的统计周期;否则不处理。
或者也可以是,在步骤B中,所述统计得到的连接速率超过指定阈值时,该方法进一步包括:开始进行阻断,并启动新的统计周期;
相应地,在后续数据连接处理中,如果统计得到的连接速率不超过指定阈值,则所述根据所配置的连接限制资源允许或阻断数据包通过具体为:在阻断过程中,当统计得到的连接速率小于指定阈值时,停止阻断,启动新的统计周期,并允许后面的数据连接的数据包通过,直到统计得到的连接速率超过指定阈值。
本发明还一种防火墙***上的访问限制方法,在安全规则中设置连接限制功能,并配置连接限制资源;该方法包括以下步骤:
a.防火墙***根据收到的数据包信息和连接状态表信息,允许或阻断该数据包通过,或继续执行步骤b;
b.判断收到的数据包信息是否符合安全规则,如果是,则对当前收到的数包进行连接速率限制,并根据连接速率限制的处理结果允许或阻断该数据包通过;否则阻断该数据包通过。
其中,所述步骤a包括:
防火墙***根据收到的数据包信息检索连接状态表,并判断该数据包是否属于连接状态表中的已建数据连接,如果是,则允许该数据包通过,并更新连接状态表;否则判断该数据包是否为新建数据连接的第一个数据包,如果是,则继续执行步骤b,否则阻断该数据包通过。其中,所述数据包信息包括:源IP地址、目的IP地址、源端口、目的端口、协议。
上述方案步骤b中,所述进行连接速率限制处理包括以下步骤:
b1.判断新建数据连接是否符合连接限制资源中设定的连接特征,如果是,则根据所配置的连接限制资源对该数据连接进行连接速率的统计,继续执行步骤b2;否则允许该新建数据连接的数据包通过;
b2.判断统计得到的连接速率是否超过指定阈值,如果是,则阻断该新建数据连接的数据包通过;否则根据所配置的连接限制资源,允许或阻断该新建数据连接的数据包通过。
其中,所述统计得到的连接速率超过指定阈值时,该方法进一步包括:启动阻断周期和新的统计周期;
相应地,在后续数据连接处理中,如果统计得到的连接速率不超过指定阈值,则所述根据所配置连接限制资源允许或阻断数据包通过具体为:判断该数据连接是否在阻断周期内,如果是,则阻断该数据连接的数据包通过;否则允许该数据连接的数据包通过。
上述方案中,所述连接限制资源包括:连接特征、指定统计周期、指定阈值、阻断周期、连接限制类型、连接限制统计方式。所述连接限制类型为保护主机、或保护服务、或限制主机、或限制服务。所述连接限制统计方式为共享方式或独享方式。所述连接特征为数据包的目的IP地址、或目的IP地址和目的端口、或源IP地址、或源IP地址和目的端口。所述连接特征中数据包的源IP地址、目的IP地址为单一IP地址、或一段IP地址范围。
本发明进一步公开了一种防火墙***,至少包含:数据包接收模块、存储器、配置管理模块、数据包发送模块和数据包处理模块;所述配置管理模块用于配置安全规则,并将所配置的安全规则保存在存储器中;所述数据包处理模块至少包含状态表处理单元、安全规则处理单元,所述状态表处理单元根据状态表信息将数据包信息转发给安全规则处理单元;
所述数据包处理模块进一步包含:连接速率限制处理单元;
所述配置管理模块进一步用于设置安全规则的连接速率限制功能,配置连接限制资源,并将所配置的连接限制资源保存到存储器中;
所述安全规则模块用于接收状态表处理模块发送来的数据包信息,并进行安全规则检查,且根据检查结果将数据包信息转发给连接速率限制处理模块;
所述连接速率限制处理模块用于接收安全规则处理模块发来的数据包信息,并进行连接速率限制处理,根据连接速率限制处理结果通知存储器丢弃或转发该数据包;且根据数据包的处理结果通知状态表处理模块更新连接状态表。
由上述方案可以看出。本发明的关键在于:在现有防火墙***的数据包处理模块中增加连接速率限制处理单元,该连接速率限制处理单元对符合连接特征的数据连接进行连接速率统计、并根据统计结果及指定阈值对数据包进行转发或丢弃。
因此,本发明所提供的这种防火墙***及其访问限制方法,提出了一种连接速率限制的概念,在防火墙***上增加连接速率限制功能模块,可以实现防火墙***对数据连接访问频度的限制,进而可以限制外网的一些主机恶意访问内网,很好地保护内网的服务器或者某些服务的安全,也可以对内网访问外网特定地址、特定服务进行限制。本发明提供的连接速率限制功能区别于传统抗攻击功能,该功能定义了防火墙***可以为单个IP地址或一组IP地址建立的最大会话频率。
例如,在网络用户希望某些服务被限量访问的情况下,根据本发明提供的方法将访问频率设定在服务器允许的范围内,就可以防止同一客户端发送过多的请求而耗尽Web服务器上的会话资源,进而可以保护内部服务器。再比如,在防火墙***保护的内网主机感染病毒时,为内部主机访问外网的连接数设定一个阈值,可以在一定程度上控制网络垃圾的扩散。因此,在防火墙***上引入连接速率限制功能,可以提高整个网络的安全性。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明在安全规则基础上,增加了对数据连接频率的限制。在硬件实现上,数据包处理模块除了包含状态表处理单元、安全规则处理单元外,还包括连接速率限制处理单元。该连接速率限制处理单元对符合连接特征的数据连接进行连接速率统计,并根据统计结果和阈值对数据包进行转发或丢弃。
图2为本发明防火墙***的结构示意图,包括:数据包接收模决201、存储器202,配置管理模块203、数据包发送模块204和数据包处理模块210,数据包处理模块210包括状态表处理单元211、安全规则处理单元212和连接速率限制处理单元213。其中,防火墙***管理员根据用户的要求通过配置管理模块203设置安全规则和连接限制资源,并将所配置的安全规则和连接限制资源保存在存储器202中。
数据包接收模块201接收数据包,并将收到的数据包保存到存储器202中。数据包处理模块210中的状态表处理单元211从存储器202中读取数据包的信息,并根据获得的数据包信息检索存储器202中的连接状态表,根据检索结果通知存储器202将该数据包转发给数据包发送模块204,然后更新存储器202中的连接状态表信息,或根据检索结果将该数据包信息转发给安。全规则处理单元212或直接丢弃。
安全规则处理单元212接收状态表处理单元211转发来的数据包信息,并根据收到的数据包信息进行安全规则检查。接着,安全规则处理单元212根据检查结果,在符合安全规则但在安全规则内未开启连接限制功能时,通知存储器202将该数据包转发给数据包发送模块204,然后通知状态表处理单元211更新存储器202中的连接状态表信息;在符合安全规则并在其安全规则内开启连接限制功能时,将该数据包信息转发给连接速率限制处理单元213;在不符合安全规则时,将存储器202中的该数据包丢弃。
连接速率限制处理单元213接收安全规则处理单元212转发来的数据包信息,并根据收到的数据包信息进行连接限制资源匹配。接着,连接速率限制处理单元213根据匹配结果通知存储器202将该数据包转发给数据包发送模块204,或根据匹配结果进行数据连接速率统计,在统计结果没有超过指定阈值时且没有处于阻断周期内时,通知存储器202将该数据包转发给数据包发送模块204,并通知状态表处理单元211更新存储器202中的连接状态表信息,在统计结果超过指定阈值或处于阻断周期内时,将存储器202中的该数据包删除。同时将统计结果保存在存储器202中。其中,阻断周期是指防火墙发现统计得到的连接速率超过指定阈值后,阻断新建数据连接通过所持续的一段时间。
数据包发送模块204接收存储器202发送来的数据包,并将收到的数据包转发出去。
基于上述装置,预先在安全规则中设置连接限制功能,并配置连接限制资源,则本发明对数据包进行连接限制的方法如图3所示,包括如下步骤:
步骤300、防火墙接收数据包,并提取数据包中的信息,根据获得的数据包信息检索连接状态表。
其中,数据包中的信息包括:源IP地址、目的IP地址、源端口、目的端口、传输协议等。源IP地址是指数据包来源于哪个IP地址;目的IP地址是数据包发往哪个IP地址;源端口和目的端口分别表示发送方和接收方的端口号,其中的目的端口代表数据包访问目的IP地址的哪个服务;传输协议包括IP协议族,比如TCP协议或UDP协议等。
步骤301、判断该数据包是否属于连接状态表包含的已建数据连接,如果是,则直接执行步骤309;否则继续执行步骤302。
步骤302~303、判断该数据包是否是新建数据连接的第一个数据包,如果是,则防火墙进行安全规则检查,继续执行步骤304;否则执行步骤308。
按TCP协议约定,具有相同源IP地址、目的IP地址、源端口、目的端口的一系列数据包属于同一数据连接。源IP地址和目的IP地址、源端口和目的端口恰好相反的数据包也属于同一数据连接。新建数据连接是指防火墙收到的每个数据连接的第一个数据包。
步骤304、判断收到的数据包是否符合安全规则,如果是,则继续执行步骤305,否则执行步骤308。
其中,进行安全规则检查的依据是数据包的源IP地址、目的IP地址、源端口、目的端口、协议等特征。如果数据包的信息符合安全规则的所配置的匹配特征,则该数据包符合安全规则;否则该数据包不符合安全规则。另外,安全规则中还包含对数据包的处理方法,比如,是否启动连接限制功能。
步骤305;判断该数据包所符合的安全规则是否已开启连接限制功能,如果是,则继续执行步骤306;否则执行步骤309。
其中,连接速率限制就是指在任意指定统计周期内,通过防火墙的具有相同特征的新建数据连接数目不能超过指定阈值。当防火墙发现连接速率超过指定阈值时,开始阻断新建数据连接的通过,从该时刻开始一直持续阻断新建数据连接的通过的一段时间称为阻断周期。
步骤306~307、进行连接速率限制处理,并根据数据包中的信息判断该数据包是否落入连接速率限制,如果是,则执行步骤308;否则执行步骤309。
其中,判断数据包是否落入连接速率限制的依据是连接限制资源。连接限制资源包括:连接特征、指定统计周期、指定阈值、阻断周期、连接限制类型、连接限制统计方式等配置信息。连接速率超过指定阈值和该数据连接在阻断周期内均属于落入连接速率限制。
步骤308、阻断该数据包通过,结束流程。
步骤309、允许该数据包通过,并更新连接状态表。
由上述方案可以知道,如果连接限制功能拒绝数据连接的数据包通过,就不会为该数据连接建立连接状态表,这样可以保证正常连接访问的资源。
上述方案中,所述步骤306~307中进行连接速率限制处理的方法如图4所示,包括以下步骤:
步骤401~402、根据收到的数据包的信息判断该新建数据连接是否符合连接特征,如果是,则对该数据连接进行连接速率的统计,继续执行步骤403;否则执行步骤407。
其中,连接特征包括数据包的源IP地址、目的IP地址、目的端口等。连接特征中数据包的源IP地址、目的IP地址可定义为单一IP地址、一段IP地址范围或不限制。连接特征中数据包的目的端口可定义为单一端口或不限制。连接速率是指在指定统计周期内,防火墙收到的符合连接特征的数据连接的数目。同一数据连接的多个数据包只计算一次。进行连接速率统计的方式可以为共享方式或独享方式。
步骤403~404、判断统计得到的连接速率是否超过指定阈值,如果是,则阻断该数据包通过,并启动阻断周期,同时启动新的统计周期;否则继续执行步骤405。
其中,阻断周期是指防火墙发现连接速率超过指定阈值后,阻断新建数据连接通过所持续的一段时间。也就是说,当防火墙发现连接速率超过阈值时,开始阻断新建数据连接的数据包的通过,同时对阻断周期的计时,直到阻断周期到期。阻断数据包通过就相当于将数据包丢弃。
本实施例中,在阻断周期内,防火墙持续监控连接速率,即使发现连接速率不再超过阈值,但仍需要阻断新建数据连接通过,直到阻断周期到期。每次统计得到的连接速率达到指定阈值时,需要启动新的统计周期,重新开始对连接速率进行统计。在阻断周期内,如果统计得到的新的连接速率超过指定阈值,则需要启动新的阻断周期和新的统计周期。
步骤405~406、判断该数据连接是否在阻断周期内,如果是,则阻断该数据包通过,结束流程;否则执行步骤408。
步骤407、允许该数据包通过。
在某些实施例中,如果连接限制资源中没有配置阻断周期,防火墙持续监视连接速率,当连接速率超过指定阈值时,开始阻断新的数据连接的数据包通过,并进行下一轮的连接速率统计,直到统计得到的连接速率小于指定阈值时,停止阻断,允许后面的数据连接的数据包通过,并开始进行下一轮的连接速率统计。或者说,这种实施方式可以实现动态的阻断周期。
在另一些实施例中,防火墙持续监视连接速率,如果发现连接速率超过阈值,则阻断新的数据连接的数据包通过,否则允许新的数据连接的数据包通过。可以说,这种实施方式可以实现防火墙对访问数据的实时监控,保证受保护的主机或服务的被访问频率在任何时刻均不超过指定阈值。然而,这种实施方式实质上需要监视每个瞬时的连接速率,实现起来比较复杂,需要占用防火墙较多的***资源。因此,图4所示的实施例为本发明的较佳实施方式。
本发明中,连接限制资源中还包括对连接限制类型和连接限制统计方式的配置。其中,连接限制类型包括:保护主机、保护服务、限制主机、限制服务。
1)保护主机指的是:来自指定区域的主机在任意指定统计周期内发起向被保护主机的连接次数不能超过指定阈值。一旦连接次数超过指定阈值,则指定区域的主机再次对被保护主机发起的数据连接将被防火墙阻断,直到阻断周期到期,指定区域的主机才可再次对被保护主机发起连接。对于保护主机类型的连接限制,连接特征为目的IP地址。
2)保护服务指的是:来自指定区域的主机在任意指定统计周期内发起向被保护主机上的指定服务的连接次数不能超过指定阈值。一旦连接次数超过指定阈值,则指定区域的主机再次对被保护主机的指定服务发起的数据连接将被防火墙阻断,直到阻断周期到期,指定区域的主机才可再次对被保护主机的指定服务发起连接。指定区域的主机对被保护主机的其它服务发起连接不受此限制。对于保护服务类型的连接限制,连接特征为目的IP地址和目的端口。
3)限制主机指的是:来自指定区域的主机在任意指定统计周期内对任意主机发起的连接次数不能超过指定阈值。一旦连接次数超过指定阈值,则指定区域的主机再次对任意主机发起的数据连接将被防火墙阻断,直到阻断周期到期,指定区域的主机才可再次对任意主机发起连接。对于限制主机类型的连接限制,连接特征为源IP地址。
4)限制服务指的是:来自指定区域的主机在任意指定统计周期内对任意主机的指定服务发起的连接次数不能超过指定阈值。一旦连接次数超过指定阈值,则指定区域的主机再次对任意主机的指定服务发起的数据连接将被防火墙阻断,直到阻断周期到期,指定区域的主机才可再次对任意主机的指定服务发起连接。指定区域的主机对任意主机的其它服务发起连接不受此限制。对于限制服务类型的连接限制,连接特征为源IP地址和目的端口。
在实际应用中,保护主机和保护服务主要用于保护内网的服务器。外网机器访问内网的服务器时,可以通过防火墙设定允许外网访问内部服务器的频率,来保护内部服务器的安全,拒绝一些恶意功能内网的机器。保护主机和保护服务的区别在于:保护主机功能是保护指定主机上的所有服务,只要外网访问的地址是指定主机的地址,则保护功能就会生效;保护服务功能是保护指定主机上的指定服务,比如http服务、ftp服务,当外网访问指定主机的指定服务时,保护功能就会生效。
限制主机和限制服务主要是在受防火墙保护的内网主机访问外网时需要定义的控制策略。限制主机和限制服务的区别在于:限制主机功能是对内部特定主机访问外网的频率进行限制,实际应用中可以用于限制特定主机访问外网的流量;限制服务是对内网特定主机访问外网的特殊服务时进行的连接限制,比如内网主机访问www服务、ftp服务。实际应用中,考虑到蠕虫病毒是通过特殊端口进行传输的,如果受防火墙保护的内网主机受到蠕虫病毒的攻击,则可以通过启用限制服务功能,减少内网中已经中病毒的机器对外扩散病毒。
实际应用中,可以单独开启上述四种类型的连接限制功能中一种,也可以同时开启其中的几种,还可以同时开启所有类型,这时,只要有一项连接速率超过指定阈值,就阻断所有符合对应类型的连接特征的数据连接。
连接限制统计方式是指在对具有相同连接特征的数据连接进行统计时,可以采用统计方式。通常包括两种连接限制统计方式:共享方式和独享方式。比如,对于保护主机类型的连接限制,共享方式是指区域内所有主机对被保护主机的连接总数超过指定阈值后,指定区域内的任意主机对被保护主机的连接都被阻断,直到阻断周期到期;独享方式是指区域内的某一主机对被保护主机的连接数超过指定阈值后,该主机对被保护主机的连接被阻断,直到阻断周期到期,而该区域内的其它主机继续进行统计。也就是说,对每个主机对被保护主机的连接单独进行统计,彼此之间互不影响。上述四种连接限制类型均可以采用共享方式和独享方式。
下面举一些具体的例子进行说明。
如图5所示,在防火墙没有开启保护主机功能时,只要防火墙安全规则允许通过,Internet中主机就可以随意访问内网主机A。如果Internet中主机对主机A进行恶意攻击,当Internet中主机对主机A的访问次数超过一定的界限时,主机A就可能瘫掉。在防火墙上开启保护主机A的连接限制功能,并设置连接特征为主机A的IP地址,这时,如果Internet中主机访问内网主机A的连接速率超过了连接限制的指定阈值,Internet中主机发送来的数据包就会被防火墙阻断,而不会威胁到主机A的安全。
如图5所示,在防火墙没有开启保护服务功能时,只要防火墙安全规则允许,Internet中主机就可以随意访问主机A上的服务。如果Internet中主机对主机A进行恶意攻击,就会消耗主机A的资源,同时消耗防火墙的对话资源,影响其它主机对主机A上的web服务的正常访问,严重时甚至会导致主机A瘫痪。在防火墙上开启保护主机A上的web服务,并设置连接特征为主机A的IP地址和web服务对应的端口,这时,如果Internet中主机访问内网主机A的web服务的连接速率超过了连接限制的指定阈值,其访问的数据包就会被防火墙阻断,而不会威胁到主机A的安全,也不会占用防火墙太多的资源,保证正常连接访问。
如图6所示,在防火墙没有开启限制主机功能时,内网的机器可以随意访问Internet资源。实际网络应用中,经常发现上网速度变慢或者连接时断时续,这是由于客户内部网络的一台或多台主机被网络蠕虫感染所造成的。假设工作组A的机器被蠕虫病毒感染,工作组A中的机器就会向外发大量的数据包,消耗大量的网络资源。如果在防火墙上开启限制主机功能限制工作组A,并设置连接特征为工作组A中的所有机器的IP地址,则从工作组A中的机器发出的蠕虫包就会被防火墙阻断,保证病毒不会大量扩散。
总之,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。