CN111107101A - 一种用于nginx的多维过滤请求的防火墙系统及方法 - Google Patents
一种用于nginx的多维过滤请求的防火墙系统及方法 Download PDFInfo
- Publication number
- CN111107101A CN111107101A CN201911398317.4A CN201911398317A CN111107101A CN 111107101 A CN111107101 A CN 111107101A CN 201911398317 A CN201911398317 A CN 201911398317A CN 111107101 A CN111107101 A CN 111107101A
- Authority
- CN
- China
- Prior art keywords
- request
- filtering
- network
- rule
- filtering rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
Abstract
本发明实施例提供本发明实施例提供一种用于nginx的多维过滤请求的防火墙系统及方法,过滤规则生成单元:用于提取防火墙系统访问日志网络请求的请求参数;根据某个特定类型的请求参数为第一过滤条件,根据其他类型的请求参数设定第二过滤条件,基于第一过滤条件和第二过滤条件共同生成过滤规则;Redis存储单元:用于获取过滤规则生成单元生成的过滤规则并保存;nginx服务器:用于当新的网络请求访问本nginx服务器时,提取该网络请求中的请求参数并与过滤规则比对,当与某一过滤规则相匹配时,拒绝该网络请求。对防火墙访问日志分析,动态配置过滤规则以对访问进行过滤。
Description
技术领域
本发明涉及网络安全领域,具体涉及一种用于nginx的多维过滤请求的防火墙系统及方法。
背景技术
现有技术一般使用nginx作为服务器,当有网络请求访问服务器时,为保证服务器的安全,通常需要对访问请求是否为正常访问进行判断,禁止非正常访问请求。
在实现本发明过程中,申请人发现现有技术中至少存在如下问题:
目前惯用的做法为在lua脚本中配置ip的黑白名单,当用户访问请求进来的时候,nginx服务器依照预先配置的黑白名单进行匹配,如果为黑名单则拒绝此次请求,如果是白名单则此请求可以正常进行业务访问。
发明内容
本发明实施例提供一种用于nginx的多维过滤请求的防火墙系统及方法,基于对防火墙访问日志来分析访问行为,多维度动态的配置形成过滤规则,动态生成过滤规则,使得过滤规则更加丰富和多样,能够从多角度对网络请求进行过滤,过滤效果更加显著,提高过滤的有效性。
为达上述目的,一方面,本发明实施例提供一种用于nginx的多维过滤请求的防火墙系统,包括:
过滤规则生成单元:用于提取防火墙系统访问日志中网络请求的请求参数,并获取每个请求参数在各自预定时间段内的请求次数;所述请求参数的类型包括:网络层协议ip、身份标识id、统一资源定位符url或请求域名加端口号host;
当某个设定类型的请求参数在预定时间段内的请求次数不小于其相应的设定阈值时,根据该请求参数设定第一过滤条件,并针对其他类型的请求参数,当其他类型的请求参数在预设时间段内的请求次数不小于其相应的设定阈值时,根据该请求参数设定第二过滤条件,基于第一过滤条件和第二过滤条件共同生成过滤规则;
Redis存储单元:用于获取过滤规则生成单元生成的过滤规则并保存;
nginx服务器:用于当新的网络请求访问本nginx服务器时,提取该网络请求中的各请求参数;并将该网络请求中的各请求参数与过滤规则进行比对,当与过滤规则相匹配时,拒绝该网络请求;否则通过该网络请求。
另一方面,本发明实施例还提供一种用于nginx的多维过滤请求的方法,包括:
提取防火墙系统访问日志中网络请求的请求参数,所述请求参数的类型包括:网络层协议ip、身份标识id、统一资源定位符url或请求域名加端口号host,并获取每个请求参数在各自预定时间段内的请求次数;
当某个设定类型的请求参数在预定时间段内的请求次数不小于其相应的设定阈值时,根据该请求参数设定第一过滤条件,并针对其他类型的请求参数,当其他类型的请求参数在预设时间段内的请求次数不小于其相应的设定阈值时,根据该请求参数设定第二过滤条件;基于第一过滤条件和第二过滤条件共同生成过滤规则;
通过Redis存储单元接收过滤规则并保存;以及;
当新的网络请求访问nginx服务器时,nginx服务器提取该网络请求中的各请求参数;并将该网络请求中的请求参数与过滤规则进行比对,当与过滤规则相匹配时,拒绝该网络请求;否则通过该网络请求。
上述技术方案具有如下有益效果:基于对防火墙访问日志来分析访问行为,动态的配置形成过滤规则,将某个设定类型的请求参数作为第一过滤条件,其他类型的请求参数作为第二过滤条件,将第一过滤条件和第二过滤条件形成过滤规则,多维度动态生成过滤规则,使得过滤规则更加丰富和多样,能够从多角度对网络请求进行过滤,过滤效果更加显著,提高过滤的有效性。另外,避免了将过滤规则直接写在脚本中所导致过滤规则维度单一、无法动态的针对某个请求参数等更深的多维度进行过滤的问题发生。使用redis对过滤规则进行长久存储,提高过滤规则有效期内的安全持久。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种用于nginx的多维过滤请求的防火墙系统的结构示意图;
图2是本发明实施例的一种用于nginx的多维过滤请求的方法的流程示意图;
图3是本发明实施例的一种用于nginx的多维过滤请求的方法的具体实施流程。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,结合本发明的实施例,提供一种用于nginx的多维过滤请求的防火墙系统及方法,其实就是一种用于nginx的多维度过滤网络请求的防火墙系统,请求指网络请求,具体包括:
过滤规则生成单元11:
用于提取防火墙系统访问日志中网络请求的请求参数,并获取每个请求参数在各自预定时间段内的请求次数;所述请求参数的类型包括:网络层协议ip、身份标识id、统一资源定位符url或请求域名加端口号host;当某个设定类型的请求参数在预定时间段内的请求次数不小于其相应的设定阈值时,根据该请求参数设定第一过滤条件,并针对其他类型的请求参数,当其他类型的请求参数在预设时间段内的请求次数不小于其相应的设定阈值时,根据该请求参数设定第二过滤条件,基于第一过滤条件和第二过滤条件共同生成过滤规则;
Redis存储单元12:用于获取过滤规则生成单元11生成的过滤规则并保存;
nginx服务器13:用于当新的网络请求访问本nginx服务器时,提取该网络请求中的各请求参数;并将该网络请求中的各请求参数与过滤规则进行比对,当与过滤规则相匹配时,拒绝该网络请求;否则通过该网络请求。
优选地,所述过滤规则生成单元11,具体用于:
将第一过滤条件作为键,以及将第二过滤条件作为值;基于第一过滤条件的键和第二过滤条件的值所形成的键值对表示过滤规则。
优选地,所述过滤规则生成单元11,还用于:
当过滤规则具有多条第二过滤条件时,则将该过滤规则中所有的第二过滤条件合并为json数据串,将json数据串作为该过滤规则键值对的值。
优选地,所述nginx服务器13,还用于:
定期访问Redis存储单元12,获取访问到的新的过滤规则并保存在nginx服务器13的缓存中;以及,
在提取该网络请求中的各请求参数后,将该网络请求中的各请求参数与缓存中的过滤规则进行比对,当与过滤规则相匹配时,拒绝该网络请求;否则通过该网络请求。
优选地,所述过滤规则生成单元11具体用于:生成多条所述过滤规则;
所述nginx服务器13,具体用于:
通过ngx_lua模块调取lua脚本,通过lua脚本提取该网络请求中的各网络参数,并将该网络请求中的各请求参数与每条过滤规则逐一进行比对,当与其中任一过滤规则内的各条过滤条件均匹配时,拒绝该网络请求;否则通过该网络请求。
如图2所示,结合本发明的实施例,还提供一种用于nginx的多维过滤请求的防火墙系统及方法,也就是一种用于nginx的多维度过滤网络请求的方法,包括:
S201:提取防火墙系统访问日志中网络请求的请求参数,所述请求参数的类型包括:网络层协议ip、身份标识id、统一资源定位符url或请求域名加端口号host,并获取每个请求参数在各自预定时间段内的请求次数;当某个设定类型的请求参数在预定时间段内的请求次数不小于其相应的设定阈值时,根据该请求参数设定第一过滤条件,并针对其他类型的请求参数,当其他类型的请求参数在预设时间段内的请求次数不小于其相应的设定阈值时,根据该请求参数设定第二过滤条件;基于第一过滤条件和第二过滤条件共同生成过滤规则;
S202:通过Redis存储单元12接收过滤规则并保存;
S203:当新的网络请求访问nginx服务器13时,nginx服务器提取该网络请求中的各请求参数;并将该网络请求中的请求参数与过滤规则进行比对,当与过滤规则相匹配时,拒绝该网络请求;否则通过该网络请求。
优选地,步骤201中,所述基于第一过滤条件和第二过滤条件共同生成过滤规则,具体包括:
将第一过滤条件作为键,以及将第二过滤条件作为值;基于第一过滤条件的键和第二过滤条件的值所形成的键值对表示过滤规则。
优选地,步骤201中,所述基于第一过滤条件和第二过滤条件共同生成过滤规则,还包括:
当过滤规则具有多条第二过滤条件时,则将该过滤规则中所有的第二过滤条件合并为json数据串,将json数据串作为该过滤规则键值对的值。
优选地,还包括S204:
nginx服务器13定期访问redis存储单元12,获取访问到的新的过滤规则并保存在nginx服务器的缓存中;以及,
在nginx服务器13提取该网络请求中的各请求参数后,将该网络请求中的各请求参数与nginx服务器13的缓存中的过滤规则进行比对,当与过滤规则相匹配时,拒绝该网络请求;否则通过该网络请求。
优选地,步骤201,具体包括:基于第一过滤条件和第二过滤条件共同生成过滤规则,所述过滤规则具有多条;步骤203,通过ngx_lua模块调取lua脚本,通过lua脚本提取该网络请求中的各网络参数,并将该网络请求中的各请求参数与每条过滤规则逐一进行比对,当与其中任一过滤规则内的各条过滤条件均匹配时,拒绝该网络请求;否则通过该网络请求。
本申请的用于nginx的多维度过滤网络请求的防火墙系统及方法所取得的有益效果如下:
基于对防火墙访问日志来分析访问行为,动态的配置形成过滤规则,将某个设定类型的请求参数作为第一过滤条件,其他类型的请求参数作为第二过滤条件,将第一过滤条件和第二过滤条件形成过滤规则,多维度动态生成过滤规则,使得过滤规则更加丰富和多样,能够从多角度对网络请求进行过滤,过滤效果更加显著,提高过滤的有效性。另外,避免了将过滤规则直接写在脚本中所导致过滤规则维度单一、无法动态的针对某个请求参数等更深的多维度进行过滤的问题发生。使用redis对过滤规则进行长久存储,提高过滤规则有效期内的安全持久。
采用key-value键值对形式和json数据串作为值来表示过滤规则,使得在Nginx服务器的缓存中也能够保存针对一个键的多条第二过滤条件。
还有,在nginx服务器的缓存中存储过滤规则,当防火墙接收到新的网络请求时,从Nginx服务器的缓存中读数据速度会比从redis数据库中读取快,省去了连redis接数据库消耗的时间,所以能够快速获取到过滤规则,减少过滤时间,提高过滤速度,从而对正常的实际业务的影响会更小。使用redis加nginx缓存对过滤规则进行存储,使得过滤规则可以快速变更调整形成最新最有效的过滤规则,同时针对设置有误的过滤规则也可以及时发现并修改正确的过滤规则,保证过滤规则的准确率。
以下结合应用实例对本发明实施例上述技术方案进行详细说明,实施过程中没有介绍到的技术细节,可以参考前文的相关描述。
因为Nginx代理服务器做为高性能非阻塞服务器被大众作为网站服务器来使用,所以针对Nginx服务器的请求访问设置具有高安全性的防火墙系统也是非常必要的,从而达到对访问请求(网络请求)进行监控和过滤,拒绝非正常访问请求,允许正常访问请求,所以申请提供了一种用于nginx的多维度过滤网络请求的防火墙系统及方法。
根据防火墙系统的访问日志进行数据分析,访问日志,提取出访问日志中的网络请求的请求参数,请求参数的类型包括网络层协议ip、身份标识id、统一资源定位符url或请求域名加端口号host等能够表征访问请求的信息。并获取每个请求参数在各自预定时间段内的请求次数,比如在第一预设时间段内通过该ip进行的请求次数、第二预设时间段内通过该id进行的请求次数、第三预设时间段内通过该url进行的请求次数和第四预设时间段内通过host进行的请求次数。
根据业务规则设定具体的请求参数的类型,当某个设定类型的请求参数在预定时间段内的请求次数不小于其设定阈值时,根据该请求参数设定第一过滤规则,如:当第一预设时间段内通过该ip的请求次数不小于其相应的设定阈值时、第二预设时间段内通过该id的请求次数不小于其相应的设定阈值时、第三预设时间段内通过该url的请求次数不小于其相应的设定阈值时或第四预设时间段内通过host的请求次数不小于其相应的设定阈值时,可分别设定根据上述请求参数可分别设定为第一过滤条件。通常第一过滤条件设定为一个类型的请求参数。然后针对一个其他类型的请求参数,当其他类型的请求参数在预设时间段内的请求次数不小于其相应的设定阈值时,根据该请求参数设定第二过滤条件。基于第一过滤条件和第二过滤条件共同生成过滤规则,同时为过滤规则设置相应的有效时间,也就是过滤规则在服务器上持续生效的时间,时间设定规则通常也是根据网络请求的业务规则(如请求频次和拦截频次等)而定。通常第二过滤条件可设定多个类型的请求参数。通过防火墙日志的分析,通常会生成多条过滤规则。
也就是一但某种请求的请求次数(比如ip、id、url、host之中的一种)超过设定阈值时,就需将该请求参数作为第一过滤条件生成过滤规则,根据过滤规则进行封禁处理。例如:通过一个ip在一分钟内网络请求次数超过预设的阈值后,就将该ip作为第一过滤条件生成相应过滤规则;或者一个用户id在一分钟内访问某个url超过阈值,则将该id作为第一过滤条件生成相应过滤规则。
其中,将第一过滤条件作为键key,以及将第二过滤条件作为值value;基于第一过滤条件的键key和第二过滤条件的值value所形成的键值对表示每个过滤规则。当任一过滤规则具有多条第二过滤条件时,则将该过滤规则中所有的第二过滤条件合并为json数据串,将json数据串作为值。
比如:键key为第一预设时间段内通过该ip的登录次数不小于针对其设定的阈值,那么该ip就是键key,当在为url设定的相应时间段内,通过url的登录次数≥xxxx(相应的阈值),就可以将url作为值value,生效时间5分钟;或者,当在为id设定的相应的时间段内通过id的登录次数≥xxx(相应的阈值),那么将id作为值value,生效时间3分钟。
当一个键key拥有多条第二过滤条件时,则将所有过滤条件合并为json数据串作为这个键key的值value。比如可将上述提到的url和id均作为第二过滤条件,将url和id形成json数据串作为值value,生效时间可为1小时。当防火墙收到网络请求时,当发现此ip的网络请求时,就要检查url与id,查看是否命中过滤规则中的过滤条件,如果命中则需拦截。
分析访问日志后生成的过滤规则存入到redis存储数据库中,redis(redis存储数据库)拥有字符串、列表、集合等多种数据类型,可以为lua脚本提供数据支持。Redis提供持久化存储,其本身具有数据持久化的留存能力,使得过滤规则能在有效时间内一直被保存保持有效,每种过滤规则的生效时间(有效时间)有长有短,根据具体所涉及到的过滤规则而定。当然也会对redis进行数据删除工作,清除掉过了生效时间的过滤规则,比如每天清理一次这样,具体时间根据情况设定。
业务机器nginx服务器的定时任务单元会定期循环访问redis中新添加的过滤规则,当发现新的过滤规则后,定时任务单元将新增加的过滤规则(键值对形式)提取后,放入到nginx服务器的缓存中。采用键值对形式的过滤规则非常适合放于nginx服务器的缓存中。
当有网络请求访问nginx服务器时,nginx使用ngx_lua(ngx_lua为嵌入nginx服务器中的lua脚本模块)模块调取lua脚本,lua编程语言是一种小巧且轻量的语言,ngx_lua拥有高性能非阻塞的特性,可以允许在nginx中使用lua脚本来进行一些预先处理。通过lua脚本提取该网络请求中的个各请求参数,并通过lua脚本逐一判断该网络请求中的上述各维度请求参数是否有命中nginx缓存中所保存的过滤规则,将该网络请求中的各请求参数逐一与nginx服务器缓存中的过滤规则进行比对,若命中了某条过滤规则,则该次网络请求将被拒绝,否则访问请求通过。
另外,若发现某条过滤规则配置有误(会根据日志监控、用户反馈等等多渠道发现),可以将该有误的过滤规则(错误的过滤规则)传入redis中,redis会对该设置有误的过滤规则进行单独存储,nginx服务器会通过定时任务单元提取redis中的数据,如果发现置有误的过滤规则在Redis存储单元中更新后的过滤规则,将更新后的过滤规则nginx服务器的缓存中替换掉设置有误的过滤规则,达到及时动态修改的目的。也或者,当某条过滤规则配置有误时,直接在所述Redis存储单元和所述业务机器nginx单元中删除错误的过滤规则。
本申请的用于nginx的多维度过滤网络请求的防火墙系统及方法所取得的有益效果如下:
基于对防火墙访问日志来分析访问行为,动态的配置形成过滤规则,将某个设定类型的请求参数作为第一过滤条件,其他类型的请求参数作为第二过滤条件,将第一过滤条件和第二过滤条件形成过滤规则,多维度动态生成过滤规则,使得过滤规则更加丰富和多样,能够从多角度对网络请求进行过滤,过滤效果更加显著,提高过滤的有效性。另外,避免了将过滤规则直接写在脚本中所导致过滤规则维度单一、无法动态的针对某个请求参数等更深的多维度进行过滤的问题发生。使用redis对过滤规则进行长久存储,提高过滤规则有效期内的安全持久。
采用key-value键值对形式和json数据串作为值来表示过滤规则,使得在Nginx服务器的缓存中也能够保存针对一个键的多条第二过滤条件。
还有,在nginx服务器的缓存中存储过滤规则,当防火墙接收到新的网络请求时,从Nginx服务器的缓存中读数据速度会比从redis数据库中读取快,省去了连redis接数据库消耗的时间,所以能够快速获取到过滤规则,减少过滤时间,提高过滤速度,从而对正常的实际业务的影响会更小。使用redis加nginx缓存对过滤规则进行存储,使得过滤规则可以快速变更调整形成最新最有效的过滤规则,同时针对设置有误的过滤规则也可以及时发现并修改正确的过滤规则,保证过滤规则的准确率。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种用于nginx的多维过滤请求的防火墙系统,其特征在于,包括:
过滤规则生成单元:用于提取防火墙系统访问日志中网络请求的请求参数,并获取每个请求参数在各自预定时间段内的请求次数;所述请求参数的类型包括:网络层协议ip、身份标识id、统一资源定位符url或请求域名加端口号host;
当某个设定类型的请求参数在预定时间段内的请求次数不小于其相应的设定阈值时,根据该请求参数设定第一过滤条件,并针对其他类型的请求参数,当其他类型的请求参数在预设时间段内的请求次数不小于其相应的设定阈值时,根据该请求参数设定第二过滤条件,基于第一过滤条件和第二过滤条件共同生成过滤规则;
Redis存储单元:用于获取过滤规则生成单元生成的过滤规则并保存;
nginx服务器:用于当新的网络请求访问本nginx服务器时,提取该网络请求中的各请求参数;并将该网络请求中的各请求参数与过滤规则进行比对,当与过滤规则相匹配时,拒绝该网络请求;否则通过该网络请求。
2.根据权利要求1所述的用于nginx的多维过滤请求的防火墙系统,其特征在于,所述过滤规则生成单元,具体用于:
将第一过滤条件作为键,以及将第二过滤条件作为值;基于第一过滤条件的键和第二过滤条件的值所形成的键值对表示过滤规则。
3.根据权利要求2所述的用于nginx的多维过滤请求的防火墙系统,其特征在于,所述述过滤规则生成单元,还用于:
当过滤规则具有多条第二过滤条件时,则将该过滤规则中所有的第二过滤条件合并为json数据串,将json数据串作为该过滤规则键值对的值。
4.根据权利要求1所述的用于nginx的多维过滤请求的防火墙系统,其特征在于,所述nginx服务器,还用于:
定期访问redis存储单元,获取访问到的新的过滤规则并保存在nginx服务器的缓存中;以及,
在提取该网络请求中的各请求参数后,将该网络请求中的各请求参数与缓存中的过滤规则进行比对,当与过滤规则相匹配时,拒绝该网络请求;否则通过该网络请求。
5.根据权利要求1所述的用于nginx的多维过滤请求的防火墙系统,其特征在于,
所述过滤规则生成单元:用于生成多条所述过滤规则;
所述nginx服务器,具体用于:通过ngx_lua模块调取lua脚本,通过lua脚本提取该网络请求中的各网络参数,并将该网络请求中的各请求参数与每条过滤规则逐一进行比对,当与其中任一过滤规则内的各条过滤条件均匹配时,拒绝该网络请求;否则通过该网络请求。
6.一种用于nginx的多维过滤请求的方法,其特征在于,包括:
提取防火墙系统访问日志中网络请求的请求参数,所述请求参数的类型包括:网络层协议ip、身份标识id、统一资源定位符url或请求域名加端口号host,并获取每个请求参数在各自预定时间段内的请求次数;
当某个设定类型的请求参数在预定时间段内的请求次数不小于其相应的设定阈值时,根据该请求参数设定第一过滤条件,并针对其他类型的请求参数,当其他类型的请求参数在预设时间段内的请求次数不小于其相应的设定阈值时,根据该请求参数设定第二过滤条件;基于第一过滤条件和第二过滤条件共同生成过滤规则;
通过Redis存储单元接收过滤规则并保存;以及;
当新的网络请求访问nginx服务器时,nginx服务器提取该网络请求中的各请求参数;并将该网络请求中的请求参数与过滤规则进行比对,当与过滤规则相匹配时,拒绝该网络请求;否则通过该网络请求。
7.根据权利要求6所述的用于nginx的多维过滤请求的方法,其特征在于,所述基于第一过滤条件和第二过滤条件共同生成过滤规则,具体包括:
将第一过滤条件作为键,以及将第二过滤条件作为值;基于第一过滤条件的键和第二过滤条件的值所形成的键值对表示过滤规则。
8.根据权利要求7所述的用于nginx的多维过滤请求的方法,其特征在于,所述基于第一过滤条件和第二过滤条件共同生成过滤规则,还包括:
当过滤规则具有多条第二过滤条件时,则将该过滤规则中所有的第二过滤条件合并为json数据串,将json数据串作为该过滤规则键值对的值。
9.根据权利要求6所述的用于nginx的多维过滤请求的方法,其特征在于,还包括:
nginx服务器定期访问redis存储单元,获取访问到的新的过滤规则并保存在nginx服务器的缓存中;以及,
在nginx服务器提取该网络请求中的各请求参数后,将该网络请求中的各请求参数与nginx服务器的缓存中的过滤规则进行比对,当与过滤规则相匹配时,拒绝该网络请求;否则通过该网络请求。
10.根据权利要求1所述的用于nginx的多维过滤请求的方法,其特征在于,基于第一过滤条件和第二过滤条件共同生成过滤规则,所述过滤规则具有多条;
当新的网络请求访问nginx服务器时,nginx服务器提取该网络请求中的各请求参数;并将该网络请求中的请求参数与过滤规则进行比对,具体包括:
通过ngx_lua模块调取lua脚本,通过lua脚本提取该网络请求中的各网络参数,并将该网络请求中的各请求参数与每条过滤规则逐一进行比对,当与其中任一过滤规则内的各条过滤条件均匹配时,拒绝该网络请求;否则通过该网络请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911398317.4A CN111107101A (zh) | 2019-12-30 | 2019-12-30 | 一种用于nginx的多维过滤请求的防火墙系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911398317.4A CN111107101A (zh) | 2019-12-30 | 2019-12-30 | 一种用于nginx的多维过滤请求的防火墙系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111107101A true CN111107101A (zh) | 2020-05-05 |
Family
ID=70425085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911398317.4A Pending CN111107101A (zh) | 2019-12-30 | 2019-12-30 | 一种用于nginx的多维过滤请求的防火墙系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111107101A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114430339A (zh) * | 2021-12-25 | 2022-05-03 | 深圳太极云软技术有限公司 | 一种网络请求的过滤方法、装置、终端和可读存储介质 |
CN115047835A (zh) * | 2022-06-27 | 2022-09-13 | 中国核动力研究设计院 | 基于dcs系统定期试验数据获取方法、装置、设备及介质 |
CN115658443A (zh) * | 2022-12-28 | 2023-01-31 | 北京微步在线科技有限公司 | 一种日志过滤方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166966A (zh) * | 2013-03-07 | 2013-06-19 | 星云融创(北京)信息技术有限公司 | 识别对网站的非法访问请求的方法及装置 |
CN106330944A (zh) * | 2016-08-31 | 2017-01-11 | 杭州迪普科技有限公司 | 恶意系统漏洞扫描器的识别方法和装置 |
CN106649831A (zh) * | 2016-12-29 | 2017-05-10 | 北京奇艺世纪科技有限公司 | 一种数据过滤方法及装置 |
EP3226479A1 (en) * | 2016-03-31 | 2017-10-04 | The Boeing Company | System and method for automatic generation of filter rules |
CN109495467A (zh) * | 2018-11-07 | 2019-03-19 | 深圳前海微众银行股份有限公司 | 拦截规则的更新方法、设备及计算机可读存储介质 |
CN109729098A (zh) * | 2019-03-01 | 2019-05-07 | 国网新疆电力有限公司信息通信公司 | Dns服务器中自动阻断恶意端口扫描的方法 |
-
2019
- 2019-12-30 CN CN201911398317.4A patent/CN111107101A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166966A (zh) * | 2013-03-07 | 2013-06-19 | 星云融创(北京)信息技术有限公司 | 识别对网站的非法访问请求的方法及装置 |
EP3226479A1 (en) * | 2016-03-31 | 2017-10-04 | The Boeing Company | System and method for automatic generation of filter rules |
CN106330944A (zh) * | 2016-08-31 | 2017-01-11 | 杭州迪普科技有限公司 | 恶意系统漏洞扫描器的识别方法和装置 |
CN106649831A (zh) * | 2016-12-29 | 2017-05-10 | 北京奇艺世纪科技有限公司 | 一种数据过滤方法及装置 |
CN109495467A (zh) * | 2018-11-07 | 2019-03-19 | 深圳前海微众银行股份有限公司 | 拦截规则的更新方法、设备及计算机可读存储介质 |
CN109729098A (zh) * | 2019-03-01 | 2019-05-07 | 国网新疆电力有限公司信息通信公司 | Dns服务器中自动阻断恶意端口扫描的方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114430339A (zh) * | 2021-12-25 | 2022-05-03 | 深圳太极云软技术有限公司 | 一种网络请求的过滤方法、装置、终端和可读存储介质 |
CN115047835A (zh) * | 2022-06-27 | 2022-09-13 | 中国核动力研究设计院 | 基于dcs系统定期试验数据获取方法、装置、设备及介质 |
CN115658443A (zh) * | 2022-12-28 | 2023-01-31 | 北京微步在线科技有限公司 | 一种日志过滤方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11552951B2 (en) | Processing changes to authorized keys | |
CN111107101A (zh) | 一种用于nginx的多维过滤请求的防火墙系统及方法 | |
CN110602029B (zh) | 一种用于识别网络攻击的方法和系统 | |
CN110620770B (zh) | 一种分析网络黑产账号的方法及装置 | |
CN106209488B (zh) | 用于检测网站攻击的方法和设备 | |
CN113242236B (zh) | 一种网络实体威胁图谱构建方法 | |
CN103166966A (zh) | 识别对网站的非法访问请求的方法及装置 | |
CN103118035A (zh) | 分析网站访问请求参数合法范围的方法及装置 | |
CN110636038A (zh) | 账号解析方法、装置、安全网关及系统 | |
CN113132311A (zh) | 异常访问检测方法、装置和设备 | |
CN111404937B (zh) | 一种服务器漏洞的检测方法和装置 | |
CN115242434A (zh) | 应用程序接口api的识别方法及装置 | |
CN113535823B (zh) | 异常访问行为检测方法、装置及电子设备 | |
KR101658456B1 (ko) | 웹 애플리케이션 서버로부터 수집된 트랜잭션 정보를 이용한 보안장치 | |
CN112751804A (zh) | 一种仿冒域名的识别方法、装置和设备 | |
CN111625700B (zh) | 防抓取的方法、装置、设备及计算机存储介质 | |
CN112583827A (zh) | 一种数据泄露检测方法及装置 | |
CN116668157A (zh) | 基于零信任网关日志的api接口识别处理方法、装置及介质 | |
CN116015800A (zh) | 一种扫描器识别方法、装置、电子设备及存储介质 | |
CN115001724B (zh) | 网络威胁情报管理方法、装置、计算设备及计算机可读存储介质 | |
CN113923039A (zh) | 攻击设备识别方法、装置、电子设备及可读存储介质 | |
CN116702146B (zh) | 一种Web服务器的注入漏洞扫描方法和系统 | |
CN111859363B (zh) | 用于识别应用未授权访问的方法、装置以及电子设备 | |
CN116647412B (zh) | 一种Web服务器的安全防御方法和系统 | |
CN114531307B (zh) | 主动防御网关的api模型构建与防御方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200505 |
|
RJ01 | Rejection of invention patent application after publication |