CN100558089C - 一种基于网络过滤器的内容过滤网关实现方法 - Google Patents
一种基于网络过滤器的内容过滤网关实现方法 Download PDFInfo
- Publication number
- CN100558089C CN100558089C CNB2007101003312A CN200710100331A CN100558089C CN 100558089 C CN100558089 C CN 100558089C CN B2007101003312 A CNB2007101003312 A CN B2007101003312A CN 200710100331 A CN200710100331 A CN 200710100331A CN 100558089 C CN100558089 C CN 100558089C
- Authority
- CN
- China
- Prior art keywords
- packet
- module
- connection
- network
- content
- 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.)
- Expired - Fee Related
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 30
- 230000009467 reduction Effects 0.000 claims abstract description 18
- 230000006870 function Effects 0.000 claims description 7
- 230000003139 buffering effect Effects 0.000 claims description 6
- 238000003780 insertion Methods 0.000 claims description 4
- 230000037431 insertion Effects 0.000 claims description 4
- 238000012790 confirmation Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 9
- 238000012544 monitoring process Methods 0.000 abstract description 4
- 238000004031 devitrification Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 7
- 239000003795 chemical substances by application Substances 0.000 description 5
- 241000700605 Viruses Species 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 206010019233 Headaches Diseases 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 231100000869 headache Toxicity 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009385 viral infection Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
基于网络过滤器的内容过滤网关实现方法,属于网络通信安全技术领域,其特征在于,基于Linux系统平台,实现了网络内容分析与实时监控。实现了在网络层过滤应用层信息的目的,利用网络过滤器Netfilter框架,在内核态下进行数据包采集与过滤,优化了数据包网络路径,提高了数据采集效率。对TCP连接进行会话还原,并且利用用户空间与内核空间共享内存技术,将会话内容从内核态交给用户态的内容过滤模块。避免了系统调用带来的开销,减少了数据的拷贝次数。对经过判断后合法的数据包进行转发,非法的阻断。网关以透明的方式工作,网关做了必要的处理,不会因为缓存数据而失去透明性。该网关能有效的完成网络内容分析与实时监控。
Description
技术领域
本发明属于通信技术领域,具体设计内核态数据数据包采集与过滤,会话还原,用户态与内核态的通信,透明模式的实现等。可以根据会话完整内容进行过滤,阻止非法的数据包通过。
背景技术
互联网满足了人们几千年来苦苦追求的“快”和“没有限制”的突破时空的至高境界,实现人们的自由之梦,他契合了人的原始本性,达到的“自由”程度超越了以前人们的想象。互联网的开放、让人们前所未有地享受到不受约束获得各种信息发布言论的自由,但同时也带来了许多信息安全问题。
有数据显示,近几年青少年花在看电视的时间已经少于上网的时间,网络正成为青少年认识的世界、获得知识、休闲娱乐的一种工具。网络中的信息内容五花八门,大多未经过严格的把关和筛选,虽然能满足部分教育、信息及休闲上的需要,但亦存在大量让家长、社会头痛的,易对青少年产生负面影响的淫秽色情、暴力恐怖、反政府以及种族歧视等网站。
第二类安全问题是病毒感染和垃圾邮件的威胁。隐藏在网络中的有害代码通过病毒、蠕虫、木马程序等对计算机进行攻击,这些病毒不断在增长,而且发展速度相当之快,破坏性愈来愈大。智能化、人性化、隐蔽化、多样化也在逐渐成为新世纪电脑病毒的发展趋势。大量的垃圾邮件也严重影响了用户对互联网的正常使用,大量垃圾邮件降低了网络运行效率占用网络带宽,造成邮件服务器拥塞,进而降低整个网络的运行效率,给同在一台服务器上的其他用户带来影响。
另外一类信息安全问题就是对机密信息的威胁。现在利用网络窃取或泄露公司机密的案例屡见不鲜。这种行为给企业带来了巨大的危害。企业的最新成果,核心竞争力可能在一瞬间不复存在,从而造成巨大的经济损失。有的企业为了避免这种现象,甚至禁止员工上互联网,这无疑给工作带来了很大的不便。
内容过滤是网络安全的新课题,它的任务是从动态信息源中过滤掉在一段时期内比较固定的非需求信息。通过在网络中加入内容分析过滤功能,对内能够帮助受保护网络消除通过网络对机密信息造成的泄漏,对外可以过滤掉网络中的不健康内容及垃圾信息。既可阻止不良信息对人们的侵害,适应社会对意识形态方面的要求,同时,通过规范用户的上网行为,提高工作效率,合理利用网络资源,减少病毒对网络的侵害,这就是内容过滤技术的根本内涵。
目前,在网络边界的过滤包括基于网络层的包过滤技术和基于应用层的代理技术。
基于网络层的包过滤技术,据分组包头源地址,目的地址和端口号、协议类型等标志确定是否允许数据包通过。只有满足过滤逻辑的数据包才被转发到相应的目的地出口端,其余数据包则被从数据流中丢弃。但是这种方式无法理解应用层信息,而大多数内容过滤都是针对应用层进行的,所以很难进行内容过滤。此外该方式进行内容过滤时,是进行单包过滤,由于缺少上下文关联信息,影响准确度。
基于应用层的代理技术,也叫应用网关,它作用在应用层,其特点是完全″阻隔″了网络通信流,通过对每种应用服务编制专门的代理程序,实现监视和控制应用层通信流的作用。应用层代理能够理解各种应用协议,能方便的进行内容过滤,但是对用户不透明,必须为每种应用分别编写不同的代理程序。而且速度较慢,对网络性能较大。
发明内容
本发明的目的在于提出一种基于网络过滤器的内容过滤网关实现方法,可以提高数据采集的效率,对非法的数据包进行实时的阻断,以透明的方式工作,高效的在网络层过滤应用层信息。
一种基于网络过滤器的内容过滤网关实现方法,用一个内容过滤网关透明的串联在网络边界,以无IP方式,在网络层来过滤所有出入局域网的数据,所诉内容过滤网关运行Linux kernel 2.4操作系统,安装双网卡,每块网卡都设置为混杂模式,使用brctl配置两块网卡为网桥来实现透明串联在网络边界上。
本发明的特征在于依次含有以下步骤:
步骤1,初始化:
在所述内容过滤网关中设有:
数据包捕获模块,数据包处理模块,以及数据包转发模块,这些模块工作在Linux系统的内核态,还设有内容分析模块,工作在用户态;在所述这些模块中:
数据包捕获模块,注册了设定的过滤函数,对于那些需要转发的数据包,送往数据包转发模块转发,对于需要进行内容过滤的数据包,则送往数据包处理模块;
数据包处理模块,对数据包捕获模块发来的需要进行内容分析的TCP数据包,首先按序号顺序在缓冲区中缓存,当捕获到一条连接的所有数据包时,还原出该连接的应用层数据内容,交给工作在用户态的内容分析模块进行分析,合法就交给数据包转发模块依次转发该连接的所有数据包,不合法就阻断该连接,其处理步骤依次如下:
处理步骤(1):为每个数据包建立一个索引节点结构,结构包括三项:该包的套接字缓冲区指针、该包的序号、指向下一个数据包索引节点结构的指针,为一条连接的第一个数据包建立索引节点头结构,作为该条TCP连接的标志,该结构包括:该包的套接字缓冲区指针、该包的序号、源IP地址,目的IP地址,源端口,目的端口、指向下一个数据包索引节点结构的指针,再构造一个数据包索引数组,数组中每一项存储一个指向索引节点头结构的指针,这样所有数据包的索引由一个二维链表来维护,横向存储同一个TCP连接的数据包索引,纵向存储不同连接的数据包索引,设定所属数据包索引数组每一项初始化为0,把数据包索引插入二维链表中;
处理步骤(2):当TCP数据包到来时,判断数据包的数据长度是否为0,若为0,检查数据包的Fin标志位是否为1,Fin标志位是TCP连接结束标志,若不为1,就将该包转发;若为1,则表明该数据包所属TCP连接已经结束,对该连接进行内容还原;若数据包的数据长度不为0,则需要将该数据包的索引节点插入二维链表中;
处理步骤(3):判断数据包索引数组第一个元素是否为0,如果为0,则为该数据包创建索引节点头结构,作为第一条连接的第一个数据包插入二维链表;如果不为0,判断该数据包是否属于该连接,根据源IP地址,目的IP地址,源端口,目的端口这四项唯一确定一条连接,如果不属于该连接,则依次和数组其他元素比较,直到找到所属连接或找到一项数组元素为0,如果数组元素为0,则为该数据包创建索引节点头结构,作为新的一条连接的第一个数据包插入二维链表,如果找到了所属连接,判断是否为第一个数据包,如果是,创建索引节点头结构,插入该连接第一个位置;如果不是,创建索引节点结构按TCP序号插入正确位置,并保存该连接的头指针,最后判断该数据包Fin标志位是否为1,如果不为1,利用网络过滤器Netfilter框架标准返回值NF_STOLEN,告诉操作系统协议栈不再对该数据包进行处理;如果为1,对该数据包所属连接进行内容还原;
处理步骤(4):判断是否已经得到待内容还原连接的头指针,如果没有,在数组中找到该连接;如果已经得到,就依次取出该连接每个数据包的应用层数据,放入共享缓冲区中;
内容分析过滤模块,管理员指定关键词,及每个关键词的权重,并设定所有连接共同服从的最大权重,在收到数据包处理模块发来的内容分析请求后,从所述共享缓冲区中,读出该条连接的应用层数据,通过QS-DFSA算法,即反向有限自动机计算步长字符串匹配算法统计每个设定关键词的出现次数,计算每个关键词权重和出现次数的乘积,再相加求和,得到该连接的权重,再将该连接的权重与管理员设定的所有连接共同服从的过滤最大权重相比较,超过最大权重就认为不合法,否则就是合法;
步骤2,依次按以下步骤进行数据包内容过滤:
步骤2.1:数据包捕获模块在收到网络发来的TCP数据包以后,根据源IP地址,目的IP地址,源端口,目的端口,协议类型,对于需要转发的数据包,则发送到数据包转发模块转发;对需要进行内容过滤的数据包,发送到数据包处理模块处理;
步骤2.2:数据包处理模块在收到需要进行内容过滤的TCP数据包后,按所述数据包处理步骤进行处理,当一条连接结束后就还原出该条连接的数据,放入共享缓冲区中,并通知内容分析模块去共享缓冲区读数据;
步骤2.3:内容分析模块在收到数据包处理模块通知后,从共享缓冲区中读数据进行分析,并将结果返回给数据包处理模块;
步骤2.4:数据包处理模块阻断非法连接;对于合法连接交给数据包转发模块转发。
所述数据包处理模块通过用户空间和内核空间共享内存的方法,将经过TCP会话还原得到的原始内容传递给用户态的内容过滤模块。
所述数据包处理模块,在进行TCP会话还原时,将该连接中含有数据的数据包按TCP序号依次缓存在网关中,并代替接收端发送确认包给发送端。
当所述数据转发模块按TCP序号依次转发数据包时,同时代替发送端接收确认包。
应用层代理,是在用户空间进行的过滤。数据包被网卡捕获后,要流过操作系统网络协议栈中的每一层,最后到达应用层在进行过滤。还有一些用户空间常用的数据包捕获技术,他们是从数据链路层直接捕获的数据包例如利用SOCKET原始套接字,Libpcap等,但是都是采用系统调用的方式来实现的。数据包在从内核态向用户态传送的时候,是用单个报文驱动机制,即应用层每进行一次系统调用,只从内核读出一个数据包。这种方法与操作系统内核分离,存在很大弊端。系统调用是非常消耗系统资源的,每次系统调用都会带来一次上下文切换,对Cache的命中率有很大影响。随着网络流量的增大,网络中数据包的增加,系统调用就会很频繁,严重影响系统性能。再加上每捕获一个数据包都要有一次从内核态到用户态的内存拷贝,使得网络数据采集成为整个内容过滤系统的瓶颈。
通过比较可以发现,本发明的方案与技术具有以下特点:
透明的工作方式,使网络更容易维护,是防火墙不容易被攻击。
优化网络路径。在内核空间进行包过滤就没有必要遍历整个网络协议栈,Netfilter是在网络层捕获的数据包,在这里就可以决定数据包的命运,一些数据包就没有必要在流向上层。
减少用户空间与内核空间的切换。例如SOCKET原始套接字,从数据链路层捕获了所有数据包,将他们都送到用户空间进行判断。而在内核空间进行的过滤,是在内核态下过滤,仅仅向用户空间传送用户想要得到的数据。
对TCP会话进行还原,避免逐包过滤方式中因为会话信息不完整而大大降低的过滤的准确性。
会话还原时,系统代理接收,发送确认,解决了缓存数据对通信的影响,维护了透明性。
利用缓冲机制进一步减少用户空间与内核空间的切换。在内核态下开辟缓冲区,批量的向用户空间传送数据。
利用共享内存技术,减少数据拷贝与空间切换。
附图说明
图1是本发明一种基于网络过滤器的内容过滤网关的网络接入图;
图2是本发明一种基于网络过滤器的内容过滤网关的总体框架;
图3是本发明中TCP会话还原使用的数据结构;
图4是本发明中数据处理流程图;
图5是内容分析模块工作流程图;
图6是本发明一种基于网络过滤器的内容过滤网关的工作流程图。
具体实施方式
下面结合附图对本发明做进一步的详细描述。
本发明,一种基于网络过滤器框架的内容过滤网关,目的是要在网络边界实现实时的内容过滤,在网络层过滤应用层信息。本发明的核心是如图1,所诉网关(2),安装双网卡,两块网卡都设置为混杂模式,使用brctl配置两块网卡为网桥。网关一块网卡连接路由器(1),这是网络通向internet的唯一出口;另一块网卡连接交换机(3),这样系统就以透明的方式串在网络中进行过滤。这样网络结构和网络上的设备不需要进行任何改动,便可以把内容过滤系统接入网络中;当内容过滤系统出现故障,也可以直接从网络中移出,进行处理,不影响网络正常工作。本发明核心还包括对TCP连接进行会话还原,通过共享内存将还原出的原始数据从内核空间交给用户空间。
如图2,所述网关中数据包捕获模块,数据包处理模块,数据包转发模块,工作在内核态;内容过滤模块和用户管理单元工作在用户态。图中括号中的数字表示按照时间先后的执行顺序。
基于网络过滤器的内容过滤网关透明的串联在网络的出口上,像一根导线一样过滤所有流过他的数据。所以数据包捕获模块,在网络过滤器Netfilter框架的5个hook点中,仅仅选择第一个hook点,也就是在NF_IP_PRE_ROUTING,注册过滤函数,过滤所有流入的数据包。根据用户指定的源端口号,目的端口号,源IP地址,目的IP地址,协议类型信息,对不需要进行内容过滤的数据包直接进行转发,需要的就将该数据包的sk_buff描述符指针和TCP头指针传递给处理函数。
在数据包处理模块中进行TCP会话还原。对于要进行内容分析的数据包,缓存在网关中,采用二维链表数据结构来保存,横向保存同一个连接的数据包,纵向保存不同连接。根据源IP地址,目的IP地址,源端口号,目的端口号这四个标志唯一确定一条连接。数据结构如图3。套接字缓冲区不提倡复制,仅仅在内核中传递控制权。所以对缓冲的数据包,在处理里的时候也不进行复制,为每一个数据包创建一个索引节点结构,指向它的缓冲区。在对索引节点进行处理。另外定义一个索引节点头,指向每个会话的第一个数据包的索引节点结构。
数据包的处理流程如图4。例如数据包的主要结构如下:
源IP地址:172.21.15.231
源端口号:9817
目的IP地址:202.112。78.101
目的端口号:80
序号:2901378913
Syn标志为:0
Fin标志为:1
IP首部长度:5
TCP首部长度:5
当数据包到来时,首先缓存TCP包。然后判断数据包是否包含数据,sk_buff中len字段减去IP头长和TCP头长,即len-4*5-4*5就是应用层数据长度,如果为零就代表无数据。如果有那么就要将数据包缓存,将它的索引节点插入链表。如果没有,不进行缓存。不管是否有数据都要检查FIN标志位,FIN标志位为1,代表连接结束,进行数据还原。没有检查SYN标志位,三次握手过程中的连接包和确认包都不包含数据,也就是应用层长度为0,都已经被转发。
同一时刻缓存的数据包是属于多条连接,必须区别对待。每条连接结束时,释放该条连接的空间。
首先判断指针数组是否为空,如果为空就将这个节点作为第一个连接的头节点。如果指针数组不为空,就要和头节点比较源端口号,目的端口号,源IP地址,目的IP地址是否和该包相同,来判断是否是同一条连接。如果是,首先和头节点比较序号,如果是在头节点序号小于2901378913,那么这个数据包就是新的头节点,如果大于的话,就将它按序号插入有序链表中。如果不是同一连接就依次向下比较,直到找到,或者发现下一个位子为空,就将它作为头节点重新建立一条连接。完成插入索引节点退出时,记住这条连接的头节点。
该包FIN标志位为1,证明会话内容已经传送完毕。这时依次取出所有缓存的数据包的数据内容,将其拷贝到共享内存区,sk_buff结构仍然保留,等待用户空间的判断结果,合法的转发,非法的丢弃。
由于这个带有FIN标志位的数据包是刚进行插入队列的,将头指针返回,假设保存在P中,那么便可以直接进行还原。如果没有,必须依次和每个连接的头节点比较,确定连接后进行还原。最后通知协议栈,忘记这些数据包。
如图5,内容分析模块管理员指定关键词,及每个关键词权重,并设置最大权重。在收到数据包处理模块发来的内容分析请求后,从共享缓冲区中,读出该条连接的应用层数据。通过多关键词匹配算法统计每个设定关键词的出现频率,计算关键词权重频率的乘积加和,将权重与管理员设定的过滤最大权重相比较,比如:关键词集合为{台独,伊拉克战争},如果管理员希望过滤国内的政治性问题时,应该为“台独”赋予更大的权重,“台独”设定权重为5,“伊拉克战争”设定权重为1。出现一次“台独”关键词,整个内容的权重增加5,“伊拉克战争”出现一次,整个内容权重增加1。假设内容权重超过了最大权重15,则该连接非法。
所有需要进行内容分析的数据包,在没有确定是否合法的时候都必须保留在内容过滤防火墙中。对于一条TCP连接,当服务器发送一个数据包给客户端,客户端收到后要发送一个确认包给服务器,如果服务器没有收到这个确认包,那么服务器要重传这个包。当客户端向服务器端发送数据的时候也是如此。如果我们捕获了一条连接中的一个数据包,接收端没有收到,也不会确认,当超时之后发送端就要重传,长时间如此,连接就会断掉,这样就破坏了透明性。为了不影响正常的网络通信。如图6,网关代替接收端发送确认,这样,发送端就会继续发送下一个包,当收到足够进行内容过滤的数据时,将数据交给过滤算法分析,证实合法的数据包,在一次发送给接收端,同时阻断接收端的确认包,因为发送端已经收到过了。当我们进行分析的时候,这条连接是仍然保持着的,因为TCP的保活计时器的默认时间是足够长的。
选择共享内存方式实现用户空间和内核空间的数据交互。选择send_sign(pid,sig)例程,内核知道用户进程的进程号,就可以由内核发送信号通知内容分析模块数据已经在共享的内存中。内存映射的过程是:在内核态下申请一个内核缓存,通过proc文件系统将该缓存的地址传给用户进程;用户进程通过读proc文件系统取得缓存地址,利用mmap对该缓存进行地址映射,从而可以从其中读取数据。
总之,一种基于网络过滤器的内容过滤网关实现方法,以透明的方式在网络出口实现了对会话内容的实时过滤与监控,在网络层过滤应用层信息,对非法的数据包和连接马上进行阻断。对会话的还原提高了内容过滤的准确性。利用网络过滤器Netfilter框架,结合内存映射的数据采集技术,不但避免了系统调用,减少了用户态和核心态之间的切换,而且用户态程序直接对共享内存操作,减少了数据在内核空间和用户空间的拷贝次数,使性能得到显著提高。透明的工作方式也强有力的避免了恶意攻击。
Claims (3)
1、一种基于网络过滤器的内容过滤网关实现方法,其特征在于,该方法用一个内容过滤网关透明的串联在网络边界,以无IP方式,在网络层来过滤所有出入局域网的数据,所述内容过滤网关运行Linux kernel 2.4操作系统,安装双网卡,每块网卡都设置为混杂模式,使用brctl配置两块网卡为网桥来实现透明串联在网络边界上,所述内容过滤网关依次按以下步骤来实现内容过滤:
步骤1,初始化:
在所述内容过滤网关中设有:
数据包捕获模块,数据包处理模块,以及数据包转发模块,这些模块工作在Linux系统的内核态,还设有内容分析模块,工作在用户态;在所述这些模块中:
数据包捕获模块,注册了设定的过滤函数,对于那些需要转发的数据包,送往数据包转发模块转发,对于需要进行内容过滤的数据包,则送往数据包处理模块;
数据包处理模块,对数据包捕获模块发来的需要进行内容分析的TCP数据包,首先按序号顺序在缓冲区中缓存,当捕获到一条连接的所有数据包时,还原出该连接的应用层数据内容,交给工作在用户态的内容分析模块进行分析,合法就交给数据包转发模块依次转发该连接的所有数据包,不合法就阻断该连接,其处理步骤依次如下:
处理步骤(1):为每个数据包建立一个索引节点结构,结构包括三项:该包的套接字缓冲区指针、该包的序号、指向下一个数据包索引节点结构的指针,为一条TCP连接的第一个数据包建立索引节点头结构,作为该条TCP连接的标志,该索引节点头结构包括:该包的套接字缓冲区指针、该包的序号、源IP地址,目的IP地址,源端口,目的端口、指向下一个数据包索引节点结构的指针,再构造一个数据包索引数组,数组中每一项存储一个指向索引节点头结构的指针,这样所有数据包的索引由一个二维链表来维护,横向存储同一个TCP连接的数据包索引,纵向存储不同连接的数据包索引,设定所述数据包索引数组每一项初始化为0,把数据包索引插入二维链表中;
处理步骤(2):当TCP数据包到来时,判断数据包的数据长度是否为0,若为0,检查数据包的Fin标志位是否为1,Fin标志位是TCP连接结束标志,若不为1,就将该包转发;若为1,则表明该数据包所属TCP连接已经结束,对该连接进行内容还原;若数据包的数据长度不为0,则需要将该数据包的索引节点插入二维链表中;
处理步骤(3):判断数据包索引数组第一个元素是否为0,如果为0,则为该数据包创建索引节点头结构,作为第一条连接的第一个数据包插入二维链表;如果不为0,判断该数据包是否属于该连接,根据源IP地址,目的IP地址,源端口,目的端口这四项唯一确定一条连接,如果不属于该连接,则依次和数组其他元素比较,直到找到所属连接或找到一项数组元素为0,如果数组元素为0,则为该数据包创建索引节点头结构,作为新的一条连接的第一个数据包插入二维链表,如果找到了所属连接,判断是否为第一个数据包,如果是,创建索引节点头结构,插入该连接第一个位置;如果不是,创建索引节点结构按TCP序号插入正确位置,并保存该连接的头指针,最后判断该数据包Fin标志位是否为1,如果不为1,利用网络过滤器Netfilter框架标准返回值NF_STOLEN,告诉操作系统协议栈不再对该数据包进行处理;如果为1,对该数据包所属连接进行内容还原;
处理步骤(4):判断是否已经得到待内容还原连接的头指针,如果没有,在数组中找到该连接;如果已经得到,就依次取出该连接每个数据包的应用层数据,放入共享缓冲区中;
内容分析模块,管理员指定关键词,及每个关键词的权重,并设定所有连接共同服从的最大权重,在收到数据包处理模块发来的内容分析请求后,从所述共享缓冲区中,读出该条连接的应用层数据,通过QS-DFSA算法,即反向有限自动机计算步长字符串匹配算法统计每个设定关键词的出现次数,计算每个关键词权重和出现次数的乘积,再相加求和,得到该连接的权重,再将该连接的权重与管理员设定的所有连接共同服从的过滤最大权重相比较,超过最大权重就认为不合法,否则就是合法;
步骤2,依次按以下步骤进行数据包内容过滤:
步骤2.1:数据包捕获模块在收到网络发来的TCP数据包以后,根据源IP地址,目的IP地址,源端口,目的端口,协议类型,对于需要转发的数据包,则发送到数据包转发模块转发;对需要进行内容过滤的数据包,发送到数据包处理模块处理;
步骤2.2:数据包处理模块在收到需要进行内容过滤的TCP数据包后,按所述数据包处理步骤进行处理,当一条连接结束后就还原出该条连接的数据,放入共享缓冲区中,并通知内容分析模块去共享缓冲区读数据;
步骤2.3:内容分析模块在收到数据包处理模块通知后,从共享缓冲区中读数据进行分析,并将结果返回给数据包处理模块;
步骤2.4:数据包处理模块阻断非法连接;对于合法连接交给数据包转发模块转发。
2、根据权利要求1所述的一种基于网络过滤器的内容过滤网关实现方法,其特征在于,所述数据包处理模块通过用户空间和内核空间共享内存的方法,将经过TCP会话还原得到的原始内容传递给用户态的内容分析模块。
3、根据权利要求1所述的一种基于网络过滤器的内容过滤网关实现方法,其特征在于,所述数据包处理模块,在进行TCP会话还原时,将该连接中含有数据的数据包按TCP序号依次缓存在网关中,并代替接收端发送确认包给发送端;
当所述数据包转发模块按TCP序号依次转发数据包时,同时代替发送端接收确认包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101003312A CN100558089C (zh) | 2007-06-08 | 2007-06-08 | 一种基于网络过滤器的内容过滤网关实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101003312A CN100558089C (zh) | 2007-06-08 | 2007-06-08 | 一种基于网络过滤器的内容过滤网关实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101068229A CN101068229A (zh) | 2007-11-07 |
CN100558089C true CN100558089C (zh) | 2009-11-04 |
Family
ID=38880666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101003312A Expired - Fee Related CN100558089C (zh) | 2007-06-08 | 2007-06-08 | 一种基于网络过滤器的内容过滤网关实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100558089C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220374355A1 (en) * | 2019-07-10 | 2022-11-24 | Travelsky Technology Limited | Air freight rate data caching method and system |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8085662B2 (en) | 2008-05-14 | 2011-12-27 | Hewlett-Packard Company | Open network connections |
CN101247352A (zh) * | 2008-03-20 | 2008-08-20 | 华为技术有限公司 | 网关设备上缓存及转发数据包的方法及网关设备 |
CN101252527B (zh) * | 2008-04-09 | 2011-01-26 | 腾讯科技(深圳)有限公司 | 一种网络中转的方法、网络中转服务器和内核管理模块 |
CN101651672B (zh) * | 2008-08-14 | 2012-12-19 | 鸿富锦精密工业(深圳)有限公司 | 网络设备及其处理封包的方法 |
CN101345687B (zh) * | 2008-08-21 | 2010-10-27 | 北京星网锐捷网络技术有限公司 | 一种在linux网桥模式下传送报文的方法及系统 |
CN101783786B (zh) * | 2009-01-19 | 2013-01-16 | 中兴通讯股份有限公司 | 数据包过滤方法和装置 |
CN101827070A (zh) * | 2009-03-06 | 2010-09-08 | 英华达股份有限公司 | 可携式通讯装置 |
CN101848190B (zh) * | 2009-03-23 | 2012-08-08 | 北京鼎信高科信息技术有限公司 | 基于ip地址集合和端口集合的数据包匹配处理方法 |
CN101827102B (zh) * | 2010-04-20 | 2013-01-30 | 中国人民解放军理工大学指挥自动化学院 | 基于内容过滤的数据防护方法 |
CN101877704B (zh) * | 2010-06-02 | 2016-02-10 | 中兴通讯股份有限公司 | 一种进行网络访问控制的方法及服务网关 |
CN102480437A (zh) * | 2010-11-23 | 2012-05-30 | 中兴通讯股份有限公司 | 一种对家庭网关上网数据进行控制的方法及装置 |
CN102098289B (zh) * | 2010-12-17 | 2014-08-27 | 曙光信息产业股份有限公司 | 一种基于fpga的网络安全连接封堵处理方法 |
CN102761517B (zh) * | 2011-04-25 | 2015-06-24 | 工业和信息化部电信传输研究所 | 一种高速网络的内容还原方法 |
CN102340428B (zh) * | 2011-09-29 | 2014-01-15 | 哈尔滨安天科技股份有限公司 | 基于网络丢包的url检测与拦截方法和系统 |
EP2807796B1 (en) * | 2012-01-27 | 2021-10-20 | Nokia Solutions and Networks Oy | Session termination in a mobile packet core network |
WO2012103846A2 (zh) * | 2012-04-05 | 2012-08-09 | 华为技术有限公司 | 网络安全处理方法、系统和网卡 |
CN102695049B (zh) * | 2012-05-09 | 2015-06-10 | 浙江宇视科技有限公司 | 码流发送方法和装置 |
CN102821100B (zh) * | 2012-07-25 | 2014-10-29 | 河南省信息中心 | 一种基于网络应用层安全网关的流文件系统实现方法 |
CN103001958B (zh) * | 2012-11-27 | 2016-03-16 | 北京百度网讯科技有限公司 | 异常tcp报文处理方法及装置 |
CN103023914B (zh) * | 2012-12-26 | 2015-07-01 | 北京神州绿盟信息安全科技股份有限公司 | 一种防火墙系统及其实现方法 |
CN103973476A (zh) * | 2013-02-06 | 2014-08-06 | 上海杰之能信息科技有限公司 | 网关、网关热备份系统及方法 |
CN104184659B (zh) * | 2013-05-22 | 2017-08-25 | 上海贝尔股份有限公司 | 一种用于获取网络中数据包的方法与设备 |
CN104243107A (zh) * | 2013-06-06 | 2014-12-24 | 深圳市腾讯计算机系统有限公司 | 数据传输方法、装置、终端、服务器及系统 |
CN104348656B (zh) * | 2013-08-07 | 2018-09-07 | 中国移动通信集团北京有限公司 | 一种数据采集方法和装置 |
CN103428216B (zh) * | 2013-08-12 | 2016-12-28 | 深圳市吉祥腾达科技有限公司 | 一种提高防火墙性能的方法和系统 |
CN103414725A (zh) * | 2013-08-21 | 2013-11-27 | 北京网秦天下科技有限公司 | 用于检测和过滤数据报文的方法和设备 |
CN104717189A (zh) * | 2013-12-16 | 2015-06-17 | 中兴通讯股份有限公司 | 网络数据包的发送方法及装置 |
CN103763150B (zh) * | 2014-01-02 | 2017-09-22 | 中国人民解放军装甲兵工程学院 | 数据采集系统 |
CN103929418A (zh) * | 2014-03-28 | 2014-07-16 | 汉柏科技有限公司 | 基于网络安全设备的无线上网方法及系统 |
CN104202315A (zh) * | 2014-08-25 | 2014-12-10 | 山东超越数控电子有限公司 | 一种基于PowerPC硬件架构的网络数据包过滤方法 |
CN104468417B (zh) * | 2014-12-16 | 2018-05-01 | 上海斐讯数据通信技术有限公司 | 一种堆叠交换机报文传输方法、系统及堆叠交换机 |
CN104796413B (zh) * | 2015-04-02 | 2018-04-24 | 哈尔滨工程大学 | 一种面向Web防火墙的分组动态存储方法 |
CN105162796A (zh) * | 2015-09-24 | 2015-12-16 | 上海上讯信息技术股份有限公司 | 一种数据传输的方法与设备 |
CN106454837A (zh) * | 2016-08-25 | 2017-02-22 | 上海斐讯数据通信技术有限公司 | 一种接入点切换装置及其切换方法 |
CN107809377B (zh) * | 2016-09-09 | 2021-06-08 | 卡斯柯信号有限公司 | 一种通用网关的实现装置及方法 |
CN106487945B (zh) * | 2016-09-09 | 2019-05-17 | 中国互联网络信息中心 | 一种dns转发查询方法 |
CN106487797B (zh) * | 2016-10-25 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 一种网络数据处理方法及系统 |
CN106649036B (zh) * | 2016-11-24 | 2019-03-12 | 北京瑞星网安技术股份有限公司 | Linux网络访问监控方法及装置 |
CN106850565B (zh) * | 2016-12-29 | 2019-06-18 | 河北远东通信系统工程有限公司 | 一种高速的网络数据传输方法 |
CN109298931B (zh) * | 2017-07-25 | 2022-04-08 | 迈普通信技术股份有限公司 | 缓冲区按需释放方法及网络设备 |
CN107659511B (zh) * | 2017-08-16 | 2021-10-22 | 华为技术有限公司 | 一种过载控制方法、主机和存储介质以及程序产品 |
CN107395619B (zh) * | 2017-08-17 | 2020-03-17 | 深圳市盛路物联通讯技术有限公司 | 一种安全通信方法及系统 |
CN107633380A (zh) * | 2017-08-30 | 2018-01-26 | 北京明朝万达科技股份有限公司 | 一种数据防泄漏系统的任务审批方法和系统 |
CN109510795A (zh) * | 2017-09-14 | 2019-03-22 | 蓝盾信息安全技术股份有限公司 | 一种基于网络隔离设备的智能ddos防御技术 |
CN109951425B (zh) * | 2017-12-21 | 2021-03-23 | 张家界航空工业职业技术学院 | 基于fpga的tcp流状态完整性检测方法 |
CN109962885A (zh) * | 2017-12-22 | 2019-07-02 | 北京安天网络安全技术有限公司 | 物联网设备的网络安全防护方法及物联网设备 |
CN108200026A (zh) * | 2017-12-27 | 2018-06-22 | 山东华软金盾软件股份有限公司 | 基于ipv6发送rst阻断包的方法 |
CN108965061B (zh) * | 2018-08-03 | 2024-02-02 | 上海欣诺通信技术股份有限公司 | 数据包捕获设备及方法、还原设备及方法、系统和介质 |
CN111327645B (zh) * | 2018-11-28 | 2023-11-21 | 鸿合科技股份有限公司 | 一种共享网络方法及装置、电子设备 |
CN109587082B (zh) * | 2019-01-10 | 2020-12-29 | 烽火通信科技股份有限公司 | 一种基于Linux操作系统的报文异步转发系统及方法 |
CN109547580B (zh) * | 2019-01-22 | 2021-05-25 | 网宿科技股份有限公司 | 一种处理数据报文的方法和装置 |
CN112995753B (zh) * | 2019-12-16 | 2024-03-22 | 中兴通讯股份有限公司 | 一种媒体流分发方法、cdn节点服务器、cdn系统和可读存储介质 |
CN112084494A (zh) * | 2020-09-21 | 2020-12-15 | 百度在线网络技术(北京)有限公司 | 敏感信息检测方法、装置、设备以及存储介质 |
CN112769716B (zh) * | 2021-01-12 | 2022-03-18 | 烽火通信科技股份有限公司 | 基于混合型虚拟网桥的虚拟交换机的数据转发方法及装置 |
CN112953833B (zh) * | 2021-03-25 | 2022-04-15 | 全讯汇聚网络科技(北京)有限公司 | 基于网桥实现三层路由转发的方法、系统及网关设备 |
CN115174206B (zh) * | 2022-07-01 | 2024-04-02 | 江苏深网科技有限公司 | 透明网桥模式下的用户态应用安全检测方法及检测系统 |
-
2007
- 2007-06-08 CN CNB2007101003312A patent/CN100558089C/zh not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
基于Neyfilter的数据采集技术在实时内容过滤中的应用. 张鸿斌,张建标.计算机应用,第26卷. 2006 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220374355A1 (en) * | 2019-07-10 | 2022-11-24 | Travelsky Technology Limited | Air freight rate data caching method and system |
US11983109B2 (en) * | 2019-07-10 | 2024-05-14 | Travelsky Technology Limited | Air freight rate data caching method and system |
Also Published As
Publication number | Publication date |
---|---|
CN101068229A (zh) | 2007-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100558089C (zh) | 一种基于网络过滤器的内容过滤网关实现方法 | |
CN101036369B (zh) | 分组的脱机分析 | |
EP1774716B1 (en) | Inline intrusion detection using a single physical port | |
CN101175013B (zh) | 一种拒绝服务攻击防护方法、网络系统和代理服务器 | |
JP4743894B2 (ja) | データ・パケットを伝送しながらセキュリティを改良するための方法及び装置 | |
Marin | Network security basics | |
CN101616129B (zh) | 防网络攻击流量过载保护的方法、装置和系统 | |
US9009830B2 (en) | Inline intrusion detection | |
CN101083563A (zh) | 一种防分布式拒绝服务攻击的方法及设备 | |
JP3954385B2 (ja) | 迅速なパケット・フィルタリング及びパケット・プロセシングのためのシステム、デバイス及び方法 | |
CN100531213C (zh) | 一种抵御拒绝服务攻击事件的网络安全保护方法 | |
CN101465855B (zh) | 一种同步泛洪攻击的过滤方法及系统 | |
CN101547187B (zh) | 宽带接入设备的网络攻击防护方法 | |
US8769681B1 (en) | Methods and system for DMA based distributed denial of service protection | |
US20040049596A1 (en) | Reliable packet monitoring methods and apparatus for high speed networks | |
CN102067532A (zh) | 分组片段的处理 | |
JP4774307B2 (ja) | 不正アクセス監視装置及びパケット中継装置 | |
CN100454895C (zh) | 一种通过报文处理提高网络安全性的方法 | |
CN101460983A (zh) | 恶意攻击检测系统和相关的使用方法 | |
TWI360978B (en) | Network message processing using inverse pattern m | |
CN111797371A (zh) | 一种交换机加密系统 | |
US11838319B2 (en) | Hardware acceleration device for denial-of-service attack identification and mitigation | |
CN100481812C (zh) | 基于应用的流量控制方法及进行应用流量控制的网络设备 | |
CN1326365C (zh) | 使用基于硬件的模式匹配的蠕虫阻击系统和方法 | |
CN1992595A (zh) | 在计算机网络中检测不良企图的数据的终端机与相关方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091104 Termination date: 20110608 |