專利名稱:Ip日志系統(tǒng)及方法
技術領域:
本發(fā)明涉及一種日志記錄系統(tǒng)及方法,尤其涉及一種IP日志記錄的系統(tǒng)及方法。
背景技術:
對于連接到網(wǎng)絡上的Linux系統(tǒng)來說,防火墻是必不可少的防御機制,它只允許合法的網(wǎng)絡流量進出系統(tǒng),而禁止其它任何網(wǎng)絡流量。為了確定網(wǎng)絡流量是否合法,防火墻依靠它所包含的由網(wǎng)絡或系統(tǒng)管理員預定義的一組規(guī)則。這些規(guī)則告訴防火墻某個流量是否合法以及對于來自某個源、至某個目的地或具有某種協(xié)議類型的網(wǎng)絡流量要做些什么。
網(wǎng)絡流量由IP信息包(簡稱信息包)組成。所述信息包是以流(Flow)的形式從源系統(tǒng)傳輸?shù)侥康牡叵到y(tǒng)的一些小塊資料,這些信息包有包頭,即在每個包前面所附帶的一些資料位,它們包含有關信息包的源、目的地和協(xié)議類型的信息。防火墻根據(jù)一組規(guī)則檢查這些頭,以確定接受哪個信息包以及拒絕哪個信息包,該過程稱為信息包過濾。
傳統(tǒng)的防火墻只是用來阻隔或拒絕信息包,少有將其用來進行IP日志。如果用戶將防火墻的防御機制應用于獲取用戶所需要的網(wǎng)絡信息,則只需要過濾極少的網(wǎng)絡流量即可達成該目的。
發(fā)明內(nèi)容本發(fā)明主要目的在于提供一種IP日志系統(tǒng),其將網(wǎng)絡防火墻與日志功能結(jié)合起來,可根據(jù)用戶的需求從網(wǎng)絡上獲取信息,并可阻塞不需要的信息,以減少網(wǎng)絡流量。
本發(fā)明另一目的在于提供一種IP日志方法,其可根據(jù)用戶的需求從網(wǎng)絡上獲取信息,并可阻塞不需要的信息,以減少網(wǎng)絡流量。
為實現(xiàn)上述的發(fā)明目的,本發(fā)明提供的IP日志系統(tǒng)包括有一日志模塊、一網(wǎng)絡過濾器(Netfilter)、一Klogd(Kernel Log Daemon)程序、一事件日志、一日志應用程序接口(LoggingAPI)、一配置管理器以及一用戶接口。網(wǎng)絡過濾器是用于從網(wǎng)絡連接中獲取含有用戶所需求信息的信息包。日志模塊用于獲取信息包中的信息,并傳送給Klogd程序。Klogd程序則將日志模塊傳送過來的信息傳送至事件日志中作記錄。日志應用程序接口可根據(jù)用戶從用戶接口所輸入的指令設定日志模塊的開或關。
本發(fā)明所提供的IP日志方法包括有如下步驟(i)從網(wǎng)絡中獲取信息包;(ii)將信息包與預定的匹配條件進行匹配;(iii)當信息包與預定的匹配條件不相匹配時,阻塞該信息包;(iv)如果信息包與預定的匹配條件相匹配,檢查該信息包的有效負載;(v)獲取信息包中的信息;(vi)將所獲取的信息傳送至事件日志進行記錄。
采用本發(fā)明IP日志方法,在獲取網(wǎng)絡信息時,可有目的地只獲得包含該信息的網(wǎng)絡信息包,并阻塞那些不包含所需該信息的信息包,從而可有效降低網(wǎng)絡的流量。
圖1是本發(fā)明IP日志系統(tǒng)的架構(gòu)圖。
圖2是本發(fā)明IP日志方法的流程圖。
具體實施方式參閱圖1,是本發(fā)明IP日志系統(tǒng)100的架構(gòu)圖。在本發(fā)明的實施方式中,IP日志系統(tǒng)100包括有一日志模塊110、一網(wǎng)絡過濾器120、一Klogd程序130、一事件日志140、一日志應用程序接口150、一配置管理器160以及一用戶接口170。該IP日志系統(tǒng)100的網(wǎng)絡過濾器120與網(wǎng)絡連接180相連接。
日志模塊110用于分析及處理網(wǎng)絡過濾器120所接收的信息包,從該信息包中獲取所需的信息并透過Klogd程序130傳送到事件日志140,其可以是使用者程序(User Space Program),或者是內(nèi)核(Kernel)。使用者程序易于調(diào)試,但是在該種模式下,資料包必須通過memcpy函數(shù)傳送給使用者程序,經(jīng)過處理后再傳至內(nèi)核。如果日志模塊采用的是內(nèi)核,則僅需在內(nèi)核內(nèi)分析資料的結(jié)構(gòu)。在性能上內(nèi)核模塊遠優(yōu)于使用者程序,因此在本發(fā)明的實施方式中,日志模塊是采用內(nèi)核。上述memcpy函數(shù)是用來做拷貝,其可以拷貝任何數(shù)據(jù)類型的對象,并可以指定拷貝的資料長度。
在本發(fā)明的實施方式中,由于日志模塊110是采用內(nèi)核,因此采用getsockopt(獲取套接口選項)和setsockopt(設置套接口選項)來獲取和設置日志模塊110的配置。
網(wǎng)絡過濾器120在Linux內(nèi)核中的IPv4、IPv6和DECnet等網(wǎng)絡協(xié)議棧中都有實現(xiàn)。上述協(xié)議棧為了實現(xiàn)對網(wǎng)絡過濾器120架構(gòu)的支持,在IP信息包在協(xié)議棧上的遍歷路線之中選擇了五個參考點,在這五個參考點上,各引入了一行對NF_HOOK()宏函數(shù)的一個相應的調(diào)用。這五個參考點被分別命名為PREROUTING、LOCAL-IN、FORWARD、LOCAL-OUT和POSTROUTING。網(wǎng)絡過濾器120是為協(xié)議棧中五個參考點中的一系列的“鉤子(hook)”,其本質(zhì)是一個nf_hookfn函數(shù)。這個函數(shù)將對在上述五個參考點被釣上來的IP信息包進行初步的處理。這個“鉤子”用linux-2.4.19/include/linux/netfilter.h中定義的如下結(jié)構(gòu)予以描述struct nf_hook_ops{struct list_head list;nf_hookfn*hook;int pf;int hooknum;int priority;};網(wǎng)絡過濾器120的內(nèi)核部分提供了一個分析、處理信息包的架構(gòu),但是內(nèi)核部分代碼并不具體的去分析、處理信息包。具體的分析、處理的任務由日志模塊110來完成。內(nèi)核部分可以根據(jù)Table中記錄的規(guī)則(Rules)信息,來把信息包交給能夠處理的相應的模塊。這些規(guī)則可確定某個流量是否合法以及對于來自某個源、至某個目的地或具有某種協(xié)議類型的網(wǎng)絡流量要做些什么。各個模塊起動的時候,會主動去向內(nèi)核代碼注冊。在這個注冊過程中,各模塊可通知內(nèi)核代碼,本模塊有一個目標(Target)函數(shù),可以決定信息包的命運;或者是本模塊有一個匹配(Match)函數(shù),可以判定一個信息包是否符合規(guī)則的匹配要求。
目標是由規(guī)則指定對與那些規(guī)則匹配的信息包執(zhí)行的操作。用戶可自定義各種目標。下述為常用的一些目標及其說明ACCEPT當信息包與具有ACCEPT目標的規(guī)則完全匹配時,會被接受(允許它前往目的地),并且它將停止遍歷鏈(雖然該信息包可能遍歷另一個表中的其它鏈,并且有可能在那里被丟棄)。
DROP當信息包與具有DROP目標的規(guī)則完全匹配時,會阻塞該信息包,并且不對它做進一步處理。
REJECT該目標的工作方式與DROP目標相同,但它比DROP好。和DROP不同,REJECT不會在服務器和客戶機上留下死套接字。另外,REJECT將錯誤消息發(fā)回給信息包的發(fā)送方。
匹配部分指定信息包與規(guī)則匹配所應具有的特征(如源和目的地地址、協(xié)議等)。匹配分為兩大類通用匹配和特定于協(xié)議的匹配。下述為一些常用的通用匹配說明-p或--protocol該通用協(xié)議匹配用于檢查某些特定協(xié)議。協(xié)議示例有TCP、UDP、ICMP、用逗號分隔的任何這三種協(xié)議的組合列表以及ALL(用于所有協(xié)議),ALL是缺省匹配,可以在-p之后使用“!”符號,它表示不與該項匹配。
-s或--source該源匹配用于根據(jù)信息包的源IP地址來與它們匹配。該匹配還允許對某一范圍內(nèi)的IP地址進行匹配,可以在-s之后使用“!”符號,表示不與該項匹配。缺省源匹配與所有IP地址匹配。
-d或--destination該目的地匹配用于根據(jù)信息包的目的地IP地址來與它們匹配。該匹配還允許對某一范圍內(nèi)IP地址進行匹配,可以在-d之后使用“!”符號,表示不與該項匹配。
除上述的一些常用匹配條件外,用戶亦可通過用戶接口170根據(jù)其實際需求自定義其它的匹配條件。
在本發(fā)明的實施方式中,是于PREROUTING參考點來實施IP日志。用戶需注冊一個連接跟蹤(CONNTRACK),其用于跟蹤連接,并知道在一個連接中信息包如何、在哪里相關聯(lián)。當一個新的連接建立起來的時候,該連接跟蹤會將該新連接與連接跟蹤的條件進行匹配。如果該新連接中的信息包符合連接跟蹤的條件,則其在PREROUTING參考點會被網(wǎng)絡過濾器120獲取。
Klogd程序130是一種信息記錄程序,其用于轉(zhuǎn)發(fā)日志模塊110所傳送過來的信息至事件日志140。事件日志140是用來記錄經(jīng)由Klogd程序130所傳送的日志信息。日志應用程序接口150是用來設置日志模塊開或關以及顯示當前的日志狀態(tài)。配置管理器160用于管理本發(fā)明IP日志系統(tǒng)中的各軟件與硬件,其能將各種任務應用程序部署到不同位置中,并收集硬件與軟件組態(tài)信息。用戶接口170用于供用戶向本發(fā)明IP日志系統(tǒng)發(fā)送各種指令,其可以是命令行接口(Command Line Interface,CLI),亦可為Web接口。通過用戶接口170,用戶可以設定日志模塊的開或關。
參閱圖2,所示為本發(fā)明IP日志方法的流程圖。在步驟S201,網(wǎng)絡過濾器120從網(wǎng)絡上獲取各種信息包。在步驟S203,網(wǎng)絡過濾器120確定所接收的信息包是否與其預定的匹配條件相匹配。該預定的匹配條件包括通用協(xié)議匹配、源地址匹配以及目的地地址匹配。如果信息包與網(wǎng)絡過濾器120中的任何匹配條件都不相匹配,則在步驟S211,網(wǎng)絡過濾器120阻塞該信息包。在該種情形下日志模塊110不必對該信息包進行處理,并通過阻塞不需要的信息包來達到減少網(wǎng)絡流量之目的。如果該信息包與網(wǎng)絡過濾器120中的匹配條件相匹配,在步驟S205,日志模塊110檢查通過網(wǎng)絡過濾器120的信息包的有效負載。在步驟S207,日志模塊110獲取信息包中的信息,并將其按照預定的格式進行格式化。在步驟S209,日志模塊110將格式化后的信息傳送給Klogd程序130,并經(jīng)由Klogd程序130傳送至事件日志140進行記錄。
權利要求
1.一種IP日志方法,用于根據(jù)預定的條件從網(wǎng)絡上記錄網(wǎng)絡信息,其特征在于該方法包括如下步驟(a)從網(wǎng)絡中獲取信息包;(b)將信息包與預定的匹配條件進行匹配;(c)如果信息包與預定的匹配條件相匹配,獲取信息包中的信息;(d)將所獲取的信息傳送至事件日志進行記錄。
2.如權利要求1所述的IP日志方法,其特征在于步驟(b)更包括有當信息包與預定的匹配條件不相匹配時,阻塞該信息包的步驟。
3.如權利要求1所述的IP日志方法,其特征在于匹配條件包括有源地址匹配。
4.如權利要求1所述的IP日志方法,其特征在于匹配條件包括有目的地地址匹配。
5.如權利要求1所述的IP日志方法,其特征在于匹配條件包括有通用協(xié)議匹配。
6.如權利要求1所述的IP日志方法,其特征在于步驟(b)之后更包括有檢查信息包有效負載的步驟。
7.一種IP日志系統(tǒng),用于根據(jù)預定的條件從網(wǎng)絡上記錄網(wǎng)絡信息,其特征在于該系統(tǒng)包括有一用于從網(wǎng)絡中根據(jù)預定的條件獲取信息包的網(wǎng)絡過濾器,一用于分析處理網(wǎng)絡過濾器所獲取的信息包以從該等信息包中獲取所需的信息的日志模塊,以及一用于記錄日志模塊所獲取的信息的事件日志。
8.如權利要求7所述的IP日志系統(tǒng),其特征在于該系統(tǒng)更包括有一Klogd程序,用于將日志模塊所獲得的信息傳送至事件日志。
9.如權利要求7所述的IP日志系統(tǒng),其特征在于該系統(tǒng)更包括有一用于設置日志模塊開關以及顯示當前日志狀態(tài)的日志應用程序接口。
10.如權利要求7所述的IP日志系統(tǒng),其特征在于該系統(tǒng)更包括有一用于供用戶發(fā)送各種指令的用戶接口。
11.如權利要求10所述的IP日志系統(tǒng),其特征在于用戶接口是命令行接口(Command Line Interface,CLI)。
12.如權利要求10所述的IP日志系統(tǒng),其特征在于用戶接口是Web接口。
13.如權利要求7所述的IP日志系統(tǒng),其特征在于該系統(tǒng)更包括有一用于管理系統(tǒng)中的軟件及硬件的配置管理器。
全文摘要
IP日志系統(tǒng)包括有一日志模塊、一網(wǎng)絡過濾器(Netfilter)、一Klogd(Kernel Log Daemon)程序、一事件日志、一日志應用程序接口(Logging API)、一配置管理器以及一用戶接口。網(wǎng)絡過濾器是用于從網(wǎng)絡連接中獲取含有用戶所需求信息的信息包。日志模塊用于獲取信息包中的信息,并傳送給Klogd程序。Klogd程序則將日志模塊傳送過來的信息傳送至事件日志中作記錄。日志應用程序接口可根據(jù)用戶從用戶接口所輸入的指令以設定日志模塊的開或關。
文檔編號G06F12/14GK1567258SQ0313962
公開日2005年1月19日 申請日期2003年6月24日 優(yōu)先權日2003年6月24日
發(fā)明者周星雨, 何唐 申請人:鴻富錦精密工業(yè)(深圳)有限公司, 鴻海精密工業(yè)股份有限公司