Ip日志系统及方法

文档序号:6366257阅读:308来源:国知局
专利名称:Ip日志系统及方法
技术领域
本发明涉及一种日志记录系统及方法,尤其涉及一种IP日志记录的系统及方法。
背景技术
对于连接到网络上的Linux系统来说,防火墙是必不可少的防御机制,它只允许合法的网络流量进出系统,而禁止其它任何网络流量。为了确定网络流量是否合法,防火墙依靠它所包含的由网络或系统管理员预定义的一组规则。这些规则告诉防火墙某个流量是否合法以及对于来自某个源、至某个目的地或具有某种协议类型的网络流量要做些什么。
网络流量由IP信息包(简称信息包)组成。所述信息包是以流(Flow)的形式从源系统传输到目的地系统的一些小块资料,这些信息包有包头,即在每个包前面所附带的一些资料位,它们包含有关信息包的源、目的地和协议类型的信息。防火墙根据一组规则检查这些头,以确定接受哪个信息包以及拒绝哪个信息包,该过程称为信息包过滤。
传统的防火墙只是用来阻隔或拒绝信息包,少有将其用来进行IP日志。如果用户将防火墙的防御机制应用于获取用户所需要的网络信息,则只需要过滤极少的网络流量即可达成该目的。

发明内容本发明主要目的在于提供一种IP日志系统,其将网络防火墙与日志功能结合起来,可根据用户的需求从网络上获取信息,并可阻塞不需要的信息,以减少网络流量。
本发明另一目的在于提供一种IP日志方法,其可根据用户的需求从网络上获取信息,并可阻塞不需要的信息,以减少网络流量。
为实现上述的发明目的,本发明提供的IP日志系统包括有一日志模块、一网络过滤器(Netfilter)、一Klogd(Kernel Log Daemon)程序、一事件日志、一日志应用程序接口(LoggingAPI)、一配置管理器以及一用户接口。网络过滤器是用于从网络连接中获取含有用户所需求信息的信息包。日志模块用于获取信息包中的信息,并传送给Klogd程序。Klogd程序则将日志模块传送过来的信息传送至事件日志中作记录。日志应用程序接口可根据用户从用户接口所输入的指令设定日志模块的开或关。
本发明所提供的IP日志方法包括有如下步骤(i)从网络中获取信息包;(ii)将信息包与预定的匹配条件进行匹配;(iii)当信息包与预定的匹配条件不相匹配时,阻塞该信息包;(iv)如果信息包与预定的匹配条件相匹配,检查该信息包的有效负载;(v)获取信息包中的信息;(vi)将所获取的信息传送至事件日志进行记录。
采用本发明IP日志方法,在获取网络信息时,可有目的地只获得包含该信息的网络信息包,并阻塞那些不包含所需该信息的信息包,从而可有效降低网络的流量。

图1是本发明IP日志系统的架构图。
图2是本发明IP日志方法的流程图。
具体实施方式参阅图1,是本发明IP日志系统100的架构图。在本发明的实施方式中,IP日志系统100包括有一日志模块110、一网络过滤器120、一Klogd程序130、一事件日志140、一日志应用程序接口150、一配置管理器160以及一用户接口170。该IP日志系统100的网络过滤器120与网络连接180相连接。
日志模块110用于分析及处理网络过滤器120所接收的信息包,从该信息包中获取所需的信息并透过Klogd程序130传送到事件日志140,其可以是使用者程序(User Space Program),或者是内核(Kernel)。使用者程序易于调试,但是在该种模式下,资料包必须通过memcpy函数传送给使用者程序,经过处理后再传至内核。如果日志模块采用的是内核,则仅需在内核内分析资料的结构。在性能上内核模块远优于使用者程序,因此在本发明的实施方式中,日志模块是采用内核。上述memcpy函数是用来做拷贝,其可以拷贝任何数据类型的对象,并可以指定拷贝的资料长度。
在本发明的实施方式中,由于日志模块110是采用内核,因此采用getsockopt(获取套接口选项)和setsockopt(设置套接口选项)来获取和设置日志模块110的配置。
网络过滤器120在Linux内核中的IPv4、IPv6和DECnet等网络协议栈中都有实现。上述协议栈为了实现对网络过滤器120架构的支持,在IP信息包在协议栈上的遍历路线之中选择了五个参考点,在这五个参考点上,各引入了一行对NF_HOOK()宏函数的一个相应的调用。这五个参考点被分别命名为PREROUTING、LOCAL-IN、FORWARD、LOCAL-OUT和POSTROUTING。网络过滤器120是为协议栈中五个参考点中的一系列的“钩子(hook)”,其本质是一个nf_hookfn函数。这个函数将对在上述五个参考点被钓上来的IP信息包进行初步的处理。这个“钩子”用linux-2.4.19/include/linux/netfilter.h中定义的如下结构予以描述struct nf_hook_ops{struct list_head list;nf_hookfn*hook;int pf;int hooknum;int priority;};网络过滤器120的内核部分提供了一个分析、处理信息包的架构,但是内核部分代码并不具体的去分析、处理信息包。具体的分析、处理的任务由日志模块110来完成。内核部分可以根据Table中记录的规则(Rules)信息,来把信息包交给能够处理的相应的模块。这些规则可确定某个流量是否合法以及对于来自某个源、至某个目的地或具有某种协议类型的网络流量要做些什么。各个模块起动的时候,会主动去向内核代码注册。在这个注册过程中,各模块可通知内核代码,本模块有一个目标(Target)函数,可以决定信息包的命运;或者是本模块有一个匹配(Match)函数,可以判定一个信息包是否符合规则的匹配要求。
目标是由规则指定对与那些规则匹配的信息包执行的操作。用户可自定义各种目标。下述为常用的一些目标及其说明ACCEPT当信息包与具有ACCEPT目标的规则完全匹配时,会被接受(允许它前往目的地),并且它将停止遍历链(虽然该信息包可能遍历另一个表中的其它链,并且有可能在那里被丢弃)。
DROP当信息包与具有DROP目标的规则完全匹配时,会阻塞该信息包,并且不对它做进一步处理。
REJECT该目标的工作方式与DROP目标相同,但它比DROP好。和DROP不同,REJECT不会在服务器和客户机上留下死套接字。另外,REJECT将错误消息发回给信息包的发送方。
匹配部分指定信息包与规则匹配所应具有的特征(如源和目的地地址、协议等)。匹配分为两大类通用匹配和特定于协议的匹配。下述为一些常用的通用匹配说明-p或--protocol该通用协议匹配用于检查某些特定协议。协议示例有TCP、UDP、ICMP、用逗号分隔的任何这三种协议的组合列表以及ALL(用于所有协议),ALL是缺省匹配,可以在-p之后使用“!”符号,它表示不与该项匹配。
-s或--source该源匹配用于根据信息包的源IP地址来与它们匹配。该匹配还允许对某一范围内的IP地址进行匹配,可以在-s之后使用“!”符号,表示不与该项匹配。缺省源匹配与所有IP地址匹配。
-d或--destination该目的地匹配用于根据信息包的目的地IP地址来与它们匹配。该匹配还允许对某一范围内IP地址进行匹配,可以在-d之后使用“!”符号,表示不与该项匹配。
除上述的一些常用匹配条件外,用户亦可通过用户接口170根据其实际需求自定义其它的匹配条件。
在本发明的实施方式中,是于PREROUTING参考点来实施IP日志。用户需注册一个连接跟踪(CONNTRACK),其用于跟踪连接,并知道在一个连接中信息包如何、在哪里相关联。当一个新的连接建立起来的时候,该连接跟踪会将该新连接与连接跟踪的条件进行匹配。如果该新连接中的信息包符合连接跟踪的条件,则其在PREROUTING参考点会被网络过滤器120获取。
Klogd程序130是一种信息记录程序,其用于转发日志模块110所传送过来的信息至事件日志140。事件日志140是用来记录经由Klogd程序130所传送的日志信息。日志应用程序接口150是用来设置日志模块开或关以及显示当前的日志状态。配置管理器160用于管理本发明IP日志系统中的各软件与硬件,其能将各种任务应用程序部署到不同位置中,并收集硬件与软件组态信息。用户接口170用于供用户向本发明IP日志系统发送各种指令,其可以是命令行接口(Command Line Interface,CLI),亦可为Web接口。通过用户接口170,用户可以设定日志模块的开或关。
参阅图2,所示为本发明IP日志方法的流程图。在步骤S201,网络过滤器120从网络上获取各种信息包。在步骤S203,网络过滤器120确定所接收的信息包是否与其预定的匹配条件相匹配。该预定的匹配条件包括通用协议匹配、源地址匹配以及目的地地址匹配。如果信息包与网络过滤器120中的任何匹配条件都不相匹配,则在步骤S211,网络过滤器120阻塞该信息包。在该种情形下日志模块110不必对该信息包进行处理,并通过阻塞不需要的信息包来达到减少网络流量之目的。如果该信息包与网络过滤器120中的匹配条件相匹配,在步骤S205,日志模块110检查通过网络过滤器120的信息包的有效负载。在步骤S207,日志模块110获取信息包中的信息,并将其按照预定的格式进行格式化。在步骤S209,日志模块110将格式化后的信息传送给Klogd程序130,并经由Klogd程序130传送至事件日志140进行记录。
权利要求
1.一种IP日志方法,用于根据预定的条件从网络上记录网络信息,其特征在于该方法包括如下步骤(a)从网络中获取信息包;(b)将信息包与预定的匹配条件进行匹配;(c)如果信息包与预定的匹配条件相匹配,获取信息包中的信息;(d)将所获取的信息传送至事件日志进行记录。
2.如权利要求1所述的IP日志方法,其特征在于步骤(b)更包括有当信息包与预定的匹配条件不相匹配时,阻塞该信息包的步骤。
3.如权利要求1所述的IP日志方法,其特征在于匹配条件包括有源地址匹配。
4.如权利要求1所述的IP日志方法,其特征在于匹配条件包括有目的地地址匹配。
5.如权利要求1所述的IP日志方法,其特征在于匹配条件包括有通用协议匹配。
6.如权利要求1所述的IP日志方法,其特征在于步骤(b)之后更包括有检查信息包有效负载的步骤。
7.一种IP日志系统,用于根据预定的条件从网络上记录网络信息,其特征在于该系统包括有一用于从网络中根据预定的条件获取信息包的网络过滤器,一用于分析处理网络过滤器所获取的信息包以从该等信息包中获取所需的信息的日志模块,以及一用于记录日志模块所获取的信息的事件日志。
8.如权利要求7所述的IP日志系统,其特征在于该系统更包括有一Klogd程序,用于将日志模块所获得的信息传送至事件日志。
9.如权利要求7所述的IP日志系统,其特征在于该系统更包括有一用于设置日志模块开关以及显示当前日志状态的日志应用程序接口。
10.如权利要求7所述的IP日志系统,其特征在于该系统更包括有一用于供用户发送各种指令的用户接口。
11.如权利要求10所述的IP日志系统,其特征在于用户接口是命令行接口(Command Line Interface,CLI)。
12.如权利要求10所述的IP日志系统,其特征在于用户接口是Web接口。
13.如权利要求7所述的IP日志系统,其特征在于该系统更包括有一用于管理系统中的软件及硬件的配置管理器。
全文摘要
IP日志系统包括有一日志模块、一网络过滤器(Netfilter)、一Klogd(Kernel Log Daemon)程序、一事件日志、一日志应用程序接口(Logging API)、一配置管理器以及一用户接口。网络过滤器是用于从网络连接中获取含有用户所需求信息的信息包。日志模块用于获取信息包中的信息,并传送给Klogd程序。Klogd程序则将日志模块传送过来的信息传送至事件日志中作记录。日志应用程序接口可根据用户从用户接口所输入的指令以设定日志模块的开或关。
文档编号G06F12/14GK1567258SQ0313962
公开日2005年1月19日 申请日期2003年6月24日 优先权日2003年6月24日
发明者周星雨, 何唐 申请人:鸿富锦精密工业(深圳)有限公司, 鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1