CN108632113A - 基于Linux内核的数据流监控方法及*** - Google Patents

基于Linux内核的数据流监控方法及*** Download PDF

Info

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
Application number
CN201810426153.0A
Other languages
English (en)
Inventor
方豪
张定理
季鸣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Gongjin Communication Technology Co Ltd
Original Assignee
Shanghai Gongjin Communication Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Gongjin Communication Technology Co Ltd filed Critical Shanghai Gongjin Communication Technology Co Ltd
Priority to CN201810426153.0A priority Critical patent/CN108632113A/zh
Publication of CN108632113A publication Critical patent/CN108632113A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing 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内核的数据流监控方法及***
技术领域
本发明涉及计算机技术领域,尤其涉及数据流监控技术领域,具体是指一种基于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套接字相连接。
CN201810426153.0A 2018-05-07 2018-05-07 基于Linux内核的数据流监控方法及*** Pending CN108632113A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 浙江省计量科学研究院 多制式移动通信网络上网数据流量测量装置及其方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US6728885B1 (en) System and method for network access control using adaptive proxies
US6003084A (en) Secure network proxy for connecting entities
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
IL114178A (en) Security system and method for preventing unauthorized communication between computer networks
CN108632113A (zh) 基于Linux内核的数据流监控方法及***
US20150172153A1 (en) Network introspection in an operating system
CN105204583B (zh) 一种基于嵌入式***构建的物理隔离***及隔离方法
US8554913B2 (en) Testing policies in a network
US11979384B2 (en) Dynamic proxy response from application container
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) フィルタリング処理装置及びこれを備えるネットワーク及びその記憶媒体

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