CN108632113A - 基于Linux内核的数据流监控方法及系统 - Google Patents
基于Linux内核的数据流监控方法及系统 Download PDFInfo
- Publication number
- CN108632113A CN108632113A CN201810426153.0A CN201810426153A CN108632113A CN 108632113 A CN108632113 A CN 108632113A CN 201810426153 A CN201810426153 A CN 201810426153A CN 108632113 A CN108632113 A CN 108632113A
- Authority
- CN
- China
- Prior art keywords
- linux kernel
- data stream
- data
- stream monitoring
- module
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于Linux内核的数据流监控方法及系统,其中该方法包括先在所述的Linux内核中加载一数据流监控模块;然后所述的数据流监控模块判断所述Linux内核中抓取到的用户访问数据和在应用层中的预设监控数据是否一致,若一致,则所述的数据流监控模块执行用户访问数据次数的加1操作,并将当前用户访问数据次数传递给所述的应用层,否则继续判断数据流的一致性。采用了该发明中的基于Linux内核的数据流监控方法及系统,利用钩子函数直接从linux网络防火墙过滤数据,将监控功能做到linux内核中,使得实现更加简单,最大限度的降低对cpu和内存的使用,同时可以进行大批量的数据流监控。实效和准确度上也有保障。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及数据流监控技术领域,具体是指一种基于Linux内核的数据流监控方法及系统。
背景技术
在家庭网关等网络设备中,家长往往需要知道孩子的上网习惯,都是什么时间上网,都访问那些网站,一些数据分析公司,需要知道用户的上网习惯,定期推送服务给用户。
一般情况下,网络设备都会借用iptables和ebtables以及一些开源软件例如
urlfilter来实现网络数据流监控,这种监控方式只能实现简单的数据流监控,监控的数据
流量少,而且操作复杂,需要应用程序把数据包从Linux网络协议栈抓到应用层,对网络设
备的内存和cpu占用过大,会整体降低网络设备的吞吐量和性能。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种能够实现用户上网数据分析的基于Linux内核的数据流监控方法及系统。
为了实现上述目的,本发明的基于Linux内核的数据流监控方法及系统具有如下构成:
该基于Linux内核的数据流监控方法,其主要特点是,所述的方法包括:
(1)在所述的Linux内核中加载一数据流监控模块;
(2)所述的数据流监控模块判断所述Linux内核中抓取到的用户访问数据和在应用层中的预设监控数据是否一致,若一致,则继续步骤(3),否则继续步骤(2);
(3)所述的数据流监控模块执行用户访问数据次数的加1操作,并将当前用户访问数据次数传递给所述的应用层,同时返回至步骤(2)。
该基于Linux内核的数据流监控方法的步骤(2)之前,还包括:
(2.0)所述的数据流监控模块在所述的Linux内核中创建至少两个proc目录文件和注册一钩子函数。
该基于Linux内核的数据流监控方法的proc目录文件包括第一proc目录文件和第二proc目录文件,所述的第一proc目录文件用于写入所述的预设监控数据,所述的第二proc目录文件用于写入所述的用户访问数据次数。
该基于Linux内核的数据流监控方法的数据流监控模块设有定时器,所述的定时器设有预设时间阈值,所述的步骤(3)中,还包括:
所述的数据流监控模块每隔所述的预设时间阈值,查看当前用户访问数据次数,并将当前用户访问数据传递给所述的应用层。
该基于Linux内核的数据流监控方法的步骤(2)中,所述用户访问数据的抓取具体为:
通过所述的钩子函数抓取所述的用户访问数据。
该基于Linux内核的数据流监控方法的Linux内核与所述应用层之间,以及所述数据流监控模块与所述应用层之间的通过netlink套接字进行通信。
该基于Linux内核的数据流监控方法的Linux内核包括Linux防火墙,所述的钩子函数在所述的Linux防火墙中进行注册。
该基于Linux内核的数据流监控方法的预设时间阈值为3分钟。
该基于Linux内核的数据流监控系统,其主要特点是,所述的系统包括:相互连接的Linux内核模块和应用层模块,所述的Linux内核模块设有数据流监控单元,所述的数据流监控单元根据所述Linux内核模块中抓取到的用户访问数据和在应用层模块中的预设监控数据是否一致的判断结果,实现在所述的Linux内核模块中完成对所述应用层模块的数据流监控。
该基于Linux内核的数据流监控系统的Linux内核模块和应用层模块之间、以及所述的数据流监控单元和应用层模块之间通过netlink套接字相连接。
采用了该发明中的基于Linux内核的数据流监控方法及系统,利用钩子函数直接从linux网络防火墙过滤数据,将监控功能做到linux内核中,使得实现更加简单,最大限度的降低对cpu和内存的使用,同时可以进行大批量的数据流监控。实效和准确度上也有保障。
附图说明
图1为本发明的基于Linux内核的数据流监控系统的框架示意图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
该基于Linux内核的数据流监控方法包括:
(1)在所述的Linux内核中加载一数据流监控模块;
(2)所述的数据流监控模块判断所述Linux内核中抓取到的用户访问数据和在应用层中的预设监控数据是否一致,若一致,则继续步骤(3),否则继续步骤(2);
(3)所述的数据流监控模块执行用户访问数据次数的加1操作,并将当前用户访问数据次数传递给所述的应用层,同时返回至步骤(2)。
该基于Linux内核的数据流监控方法的步骤(2)之前,还包括:
(2.0)所述的数据流监控模块在所述的Linux内核中创建至少两个proc目录文件和注册一钩子函数。
该基于Linux内核的数据流监控方法的proc目录文件包括第一proc目录文件和第二proc目录文件,所述的第一proc目录文件用于写入所述的预设监控数据,所述的第二proc目录文件用于写入所述的用户访问数据次数。
该基于Linux内核的数据流监控方法的数据流监控模块设有定时器,所述的定时器设有预设时间阈值,所述的步骤(3)中,还包括:
所述的数据流监控模块每隔所述的预设时间阈值,查看当前用户访问数据次数,并将当前用户访问数据传递给所述的应用层。
该基于Linux内核的数据流监控方法的步骤(2)中,所述用户访问数据的抓取具体为:
通过所述的钩子函数抓取所述的用户访问数据。
该基于Linux内核的数据流监控方法的Linux内核与所述应用层之间,以及所述数据流监控模块与所述应用层之间的通过netlink套接字进行通信。
该基于Linux内核的数据流监控方法的Linux内核包括Linux防火墙,所述的钩子函数在所述的Linux防火墙中进行注册。
该基于Linux内核的数据流监控方法的预设时间阈值为3分钟。
该基于Linux内核的数据流监控系统(参阅图1)包括:相互连接的Linux内核模块和应用层,所述的Linux内核模块设有数据流监控单元,所述的数据流监控单元根据所述Linux内核模块中抓取到的用户访问数据和在应用层模块中的预设监控数据是否一致的判断结果,实现在所述的Linux内核模块中完成对所述应用层模块的数据流监控。
该基于Linux内核的数据流监控系统的Linux内核模块和应用层模块之间、以及所述的数据流监控单元和应用层模块之间通过netlink套接字相连接。
在一具体实施方式中,本发明提供的基于Linux内核的数据流监控方法为:
(1)加载数据监控模块到Linux内核,模块加载之后会在linux的proc目录下面创建文件方便用户层程序对模块配置监控规则,实现用户层和内核层的通信,并在linux防火墙的FORWARD阶段注册钩子函数;
(2)用户层将需要监控的域名转换成地址,写入数据监控规则到proc目录下创建的文件中;
(3)经过FORWARD阶段的数据,都是需要通过网关转发的数据,理论上所有的用户数据流都会经过linux防火墙的FORWARD阶段,也就是经过数据监控模块注册的钩子函数;
(4)数据监控模块会分析钩子函数抓取的数据,分析目的IP和目的地址,如果和proc文件中用户配置的ip和地址匹配就会记录下来;
(5)在proc目录下创建文件,记录用户访问每个被监控数据流的被次数。监控模块会启动定时器,每隔3分钟查看一下用户访问被监控数据流的次数,通过netlink通知到应用层。
在一具体实施方式中,为便于理解,本发明的基于Linux内核的数据流监控方法也可按如下过程进行:
(1)加载数据监控模块到Linux内核,监控模块在linux的proc目录下创建第一proc目录文件和第二proc目录文件;
(2)应用层将需要监听的域名www.ifeng.com转换成IP地址101.227.97.163端口80的规则,并将该规则写到第一proc目录文件中;
(3)当数据监控模块中的钩子函数过滤的skb_buff有目的地址是101.227.97.163,端口是80的报文的时候,会向第二proc目录文件写入数据统计情况,同时通过netlink将信息发送到应用层。
采用了该发明中的基于Linux内核的数据流监控方法及系统,利用钩子函数直接从linux网络防火墙过滤数据,将监控功能做到linux内核中,使得实现更加简单,最大限度的降低对cpu和内存的使用,同时可以进行大批量的数据流监控。实效和准确度上也有保障。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (10)
1.一种基于Linux内核的数据流监控方法,其特征在于,所述的方法包括:
(1)在所述的Linux内核中加载一数据流监控模块;
(2)所述的数据流监控模块判断所述Linux内核中抓取到的用户访问数据和在应用层中的预设监控数据是否一致,若一致,则继续步骤(3),否则继续步骤(2);
(3)所述的数据流监控模块执行用户访问数据次数的加1操作,并将当前用户访问数据次数传递给所述的应用层,同时返回至步骤(2)。
2.根据权利要求1所述的基于Linux内核的数据流监控方法,其特征在于,所述的步骤(2)之前,还包括:
(2.0)所述的数据流监控模块在所述的Linux内核中创建至少两个proc目录文件和注册一钩子函数。
3.根据权利要求2所述的基于Linux内核的数据流监控方法,其特征在于,所述的proc目录文件包括第一proc目录文件和第二proc目录文件,所述的第一proc目录文件用于写入所述的预设监控数据,所述的第二proc目录文件用于写入所述的用户访问数据次数。
4.根据权利要求3所述的基于Linux内核的数据流监控方法,其特征在于,所述的数据流监控模块设有定时器,所述的定时器设有预设时间阈值,所述的步骤(3)中,还包括:
所述的数据流监控模块每隔所述的预设时间阈值,查看当前用户访问数据次数,并将当前用户访问数据传递给所述的应用层。
5.根据权利要求2所述的基于Linux内核的数据流监控方法,其特征在于,所述的步骤(2)中,所述用户访问数据的抓取具体为:
通过所述的钩子函数抓取所述的用户访问数据。
6.根据权利要求1至5中任一项所述的基于Linux内核的数据流监控方法,其特征在于,所述的Linux内核与所述应用层之间,以及所述数据流监控模块与所述应用层之间的通过netlink套接字进行通信。
7.根据权利要求2所述的基于Linux内核的数据流监控方法,其特征在于,所述的Linux内核包括Linux防火墙,所述的钩子函数在所述的Linux防火墙中进行注册。
8.根据权利要求4所述的基于Linux内核的数据流监控方法,其特征在于,所述的预设时间阈值为3分钟。
9.一种基于Linux内核的数据流监控系统,其特征在于,所述的系统包括:相互连接的Linux内核模块和应用层模块,所述的Linux内核模块设有数据流监控单元,所述的数据流监控单元根据所述Linux内核模块中抓取到的用户访问数据和在应用层模块中的预设监控数据是否一致的判断结果,实现在所述的Linux内核模块中完成对所述应用层模块的数据流监控。
10.根据权利要求8所述的基于Linux内核的数据流监控系统,其特征在于,所述的Linux内核模块和应用层模块之间、以及所述的数据流监控单元和应用层模块之间通过netlink套接字相连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810426153.0A CN108632113A (zh) | 2018-05-07 | 2018-05-07 | 基于Linux内核的数据流监控方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810426153.0A CN108632113A (zh) | 2018-05-07 | 2018-05-07 | 基于Linux内核的数据流监控方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108632113A true CN108632113A (zh) | 2018-10-09 |
Family
ID=63695519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810426153.0A Pending CN108632113A (zh) | 2018-05-07 | 2018-05-07 | 基于Linux内核的数据流监控方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108632113A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110955514A (zh) * | 2019-10-09 | 2020-04-03 | 烽火通信科技股份有限公司 | 提高Linux业务进程利用率的方法、系统及计算机可读介质 |
CN113377601A (zh) * | 2020-03-10 | 2021-09-10 | 奇安信科技集团股份有限公司 | 一种国产系统感知服务启停的方法、装置及电子设备 |
CN113489737A (zh) * | 2021-07-14 | 2021-10-08 | 芯河半导体科技(无锡)有限公司 | 一种基于netfilter的包过滤器的实现方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101990003A (zh) * | 2010-10-22 | 2011-03-23 | 西安交通大学 | 一种基于ip地址属性的用户行为监控系统与方法 |
CN102664833A (zh) * | 2012-05-03 | 2012-09-12 | 烽火通信科技股份有限公司 | 家庭网关及分析用户上网行为和监控网络质量的方法 |
CN103580962A (zh) * | 2012-08-06 | 2014-02-12 | 中兴通讯股份有限公司 | 一种为家庭网关用户提供定制化网络服务的系统及方法 |
CN104852833A (zh) * | 2015-06-04 | 2015-08-19 | 上海斐讯数据通信技术有限公司 | Linux系统中网络协议栈管理方法及系统 |
CN107148009A (zh) * | 2017-07-01 | 2017-09-08 | 浙江省计量科学研究院 | 多制式移动通信网络上网数据流量测量装置及其方法 |
-
2018
- 2018-05-07 CN CN201810426153.0A patent/CN108632113A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101990003A (zh) * | 2010-10-22 | 2011-03-23 | 西安交通大学 | 一种基于ip地址属性的用户行为监控系统与方法 |
CN102664833A (zh) * | 2012-05-03 | 2012-09-12 | 烽火通信科技股份有限公司 | 家庭网关及分析用户上网行为和监控网络质量的方法 |
CN103580962A (zh) * | 2012-08-06 | 2014-02-12 | 中兴通讯股份有限公司 | 一种为家庭网关用户提供定制化网络服务的系统及方法 |
CN104852833A (zh) * | 2015-06-04 | 2015-08-19 | 上海斐讯数据通信技术有限公司 | Linux系统中网络协议栈管理方法及系统 |
CN107148009A (zh) * | 2017-07-01 | 2017-09-08 | 浙江省计量科学研究院 | 多制式移动通信网络上网数据流量测量装置及其方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110955514A (zh) * | 2019-10-09 | 2020-04-03 | 烽火通信科技股份有限公司 | 提高Linux业务进程利用率的方法、系统及计算机可读介质 |
CN113377601A (zh) * | 2020-03-10 | 2021-09-10 | 奇安信科技集团股份有限公司 | 一种国产系统感知服务启停的方法、装置及电子设备 |
CN113489737A (zh) * | 2021-07-14 | 2021-10-08 | 芯河半导体科技(无锡)有限公司 | 一种基于netfilter的包过滤器的实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8634437B2 (en) | Extended network protocols for communicating metadata with virtual machines | |
US8990433B2 (en) | Defining network traffic processing flows between virtual machines | |
US8954957B2 (en) | Network traffic processing according to network traffic rule criteria and transferring network traffic metadata in a network device that includes hosted virtual machines | |
US8572609B2 (en) | Configuring bypass functionality of a network device based on the state of one or more hosted virtual machines | |
US6003084A (en) | Secure network proxy for connecting entities | |
US8782260B2 (en) | Network access control system and method using adaptive proxies | |
US9917928B2 (en) | Network address translation | |
US20080178278A1 (en) | Providing A Generic Gateway For Accessing Protected Resources | |
US11645144B2 (en) | Methods and systems securing an application based on auto-learning and auto-mapping of application services and APIs | |
US20040177158A1 (en) | Network address translation techniques for selective network traffic diversion | |
IL114178A (en) | Security system and method for preventing unauthorized communication between computer networks | |
CN108632113A (zh) | 基于Linux内核的数据流监控方法及系统 | |
CN105204583B (zh) | 一种基于嵌入式系统构建的物理隔离系统及隔离方法 | |
US20090119745A1 (en) | System and method for preventing private information from leaking out through access context analysis in personal mobile terminal | |
CN108737217A (zh) | 一种抓包方法及装置 | |
CN111277586A (zh) | 一种防火墙安全策略的调整方法及装置 | |
CN110392066A (zh) | 一种访问服务的方法和装置 | |
CN102045379A (zh) | 一种进行ip存储的方法、系统和存储设备 | |
JPWO2012053061A1 (ja) | スイッチ装置、情報処理装置、スイッチ装置の制御方法及びプログラム | |
CN105959248B (zh) | 报文访问控制的方法及装置 | |
US20040187033A1 (en) | Gateway for use in a network monitoring system to control packet flow to a firewall | |
US10992644B2 (en) | Network security system and method thereof | |
JP2001077857A (ja) | フィルタリング処理装置及びこれを備えるネットワーク及びその記憶媒体 | |
US12095741B1 (en) | Secure proxy service | |
CN114124477B (zh) | 一种业务服务系统及方法 |
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: 20181009 |
|
RJ01 | Rejection of invention patent application after publication |