趙曉峰,李育澤,徐義東
(安徽財經大學,安徽 蚌埠 233000)
?
高校網絡環境下基于NetFlow的網絡監測系統設計
趙曉峰,李育澤,徐義東
(安徽財經大學,安徽蚌埠233000)
摘要:利用開源軟件設計并實現了一套基于NetFlow的網絡監測系統,運用該系統可對校園網絡進行有效監測、分析,同時使用該系統還可以檢測校園網中的異常流量,對校園網的運行維護提供了很好的幫助作用。
關鍵詞:NetFlow;數據采集;異常流量分析
高校網絡為高校師生科研、生活、學習提供了非常大的便利,但隨著網絡應用的不斷擴大,校園網上的蠕蟲病毒、網絡攻擊等異常流量層出不窮,這些異常行為消耗了大量的網絡資源,有時甚至因為這些異常流量的干擾而引起骨干網絡變慢或癱瘓,給全網造成巨大損失。為了保證校園網高速、有效運行,有必要在校園網主干網上布置一套高效的網絡流量監控系統,對流經主干節點的所有數據進行實時檢測和分析。對流量進行分析,首先要分清這些流量中哪些是正常流量?哪些是異常流量?各種類型的流量如何分布?這些問題必須借助某種有效的流量分析工具才能實現,在目前高校網絡環境下,大部分核心交換或路由設備中都具有該種工具——NetFlow,它最初是由Cisco公司開發,但現在很多廠家高端設備也都可以實現類似NetFlow的功能,如:Juniper,Enterasys,H3C(NetSream)等。Cisco的NetFlow 有多種版本,如:V1,V5,V7,V8,V9。安徽財經大學核心設備為Cisco的7690、juniper的MX960,使用NetFlow V5和CFlowd進行流量分析。本文提出并實現了一種基于NetFlow的監控系統,通過這套能實現網絡運行狀況分析的系統,網管人員可對主干網運行狀況進行有效的監控、管理,保證校園網絡穩定運行。
一、NetFlow
NetFlow目前廣泛應用于高端路由器和交換機中,NetFlow的數據輸出要求先在路由器或交換機上配制NetFlow流輸出,這樣路由器或交換機即可以UDP的方式向外發送信息,在NetFlow收集器端,需要配置好接收端口號、過濾策略等,收集器就可以接收到發送過來的NetFlow數據。一個Flow定義了一條在源和目的之間的單向流,這里的源和目的既包括了IP層的源IP和目的IP,也包括TCP層的源端口和目的端口。具體地說,一個Flow至少定義了以下七個關鍵元素:(1)源IP地址;(2)目的IP地址;(3)源端口號;(4)目的端口號;(5)三層協議的類型;(6)TOS字段;(7)入端口。這七個字段定義了唯一的一個Flow,如果有多條Flow,只要其中任何一個字段內容不同,那么就被看成一條新的Flow。除此之外,一個Flow或許還包含其他的字段,這取決于NetFlow版本,不同版本的NetFlow格式不一樣,例如:NetFlow V5的版本還包括了AS字段,V1版本的就沒有。
二、網絡監測系統架構與實現
基于NetFlow的監測系統架構如圖1所示:

圖1 基于NetFlow的監測系統架構
該系統架構下,各服務器采用開放源代碼的Linux操作系統,收集器的數據庫采用MySQL網絡數據庫,NetFlow采集服務器負責實時收集核心交換或路由設備傳送出來的NetFlow信息,收集器接收到數據后將它們插入MySQL數據表中,最后NetFlow分析器將收集到的數據進行分析匹配,產生結果反饋給用戶。用戶也可通過CGI對存于數據庫中的數據進行檢索和統計。該系統具體可分為以下幾個部分實現:(1)在核心交換或路由設備如CISCO7609上配置NetFlow,并輸出到指定采集器(IP)的固定UDP端口;(2)采集器軟件是Flow-tool或直接用Java程序實現,該軟件監聽UDP端口,接收進入的NetFlow數據包并存儲為特定格式(一般是二進制)的源文件;(3)用perl或Java等編程工具對NetFlow進行分析和規范格式的操作,并將讀取的NetFlow信息存入MySQL中;(4)通過對數據庫中數據的檢索、分析,顯示全網運行狀況,同時依據蠕蟲和攻擊等異常報文的流量特征,從數據庫中找出疑似異常流量IP地址;(5)將分析結果在Web客戶端中展示,或者通過E-mail、短信等接口發送。
三、異常流量分析和處理
利用存入MySQL中的NetFlow信息,可以方便的分析各時間段全網數據的流入、流出量,及全網流量中各協議分布情況等。由于有些異常流量如蠕蟲病毒、DOS攻擊、DDoS攻擊、黑客掃描等異常行為,其流量具有明顯的異常特征。因此,通過研究這些異常特征,再結合MySQL中的NetFlow信息,進行流量異常特征比對,即可發現校園網中異常流量的IP地址,使網絡管理人員可以快速定位異常流量的發源地。基于NetFlow的異常流量檢測方法主要有以下兩種:一種基于標志的檢測方法;另一種基于異常的檢測方法。
1.基于標志的檢測方法
基于標志的檢測方法是將收集到的信息與已知的網絡異常行為進行特征比較,從而發現網絡異常行為。特征比較常采用模式匹配,它的一大優點是只需收集相關的數據集合,顯著減少系統負擔,且技術已相當成熟。但是,該方法存在的弱點是需要不斷的升級以對付不斷出現的病毒或黑客攻擊,不能檢測到從未出現過的異常流量。通常情況下,大部分病毒或攻擊行為都是針對一些特定的端口發起攻擊, 如紅色代碼的NetFlow流數據典型特征為:目的端口80, 包數量3,字節數144。SQL語句如下:
select srcipaddress,srcp,dstipaddress,dstp,p,f1,pkts,octets from netflow where dstp=80 and pkts=3 and octets=144;
從查詢結果可以看到對應的IP地址有幾千個對外的連接,該IP地址主機有可能感染了紅色代碼病毒。
2.基于異常的檢測方法
基于異常檢測建立在對大量流信息統計分析基礎上,通過判斷規定時間內,統計結果是否明顯異常,從而判斷網絡中有無異常出現。例如,在通常情況下,網絡中的各種連接都有自己相對穩定的頻率,如果一臺主機感染了病毒,它會試圖與外界建立更多的連接,以傳染網絡中的其它用戶,因此它發出請求建立連接的數量明顯變得偏高。該方法不依賴與已知網絡入侵行為的特征比對,能夠捕捉到未知的入侵行為,彌補了基于標志檢測法的不足。幾種常見的異常流量有:拒絕服務攻擊(DOS)、預掃描等。
(1)拒絕服務攻擊 (DOS)
拒絕服務攻擊往往是針對TCP/IP協議中的弱點或者系統存在的某些漏洞,使用非正常的數據流大量攻擊網絡設備,致使網絡設備性能下降、網絡阻塞,最終導致攻擊目標無法向合法的用戶提供正常的服務。常用的拒絕服務攻擊有:DDoS,ping of death,SYN flood,UDP flood等。
例如使用如下SQL語句,可以找出內網中對DNS服務器進行DOS攻擊的主機IP。
select count(*),srcipaddress,dstp from netflow where dstp=53 and p=17 group by srcipaddress order by 1 desc limit 10;輸入上述命令后可以看到主機明顯異常的IP地址,短時間內對DNS服務器發送了大量的請求。
分布式拒絕服務(DDoS)是一種分布、協作的大規模攻擊方式,攻擊借助于客戶/服務器技術,將多個主機聯合起來作為攻擊平臺,對一個或多個目標發動DOS攻擊,成倍地提高拒絕服務攻擊的威力,從而導致目標迅速癱瘓。通過分析得到的流信息,如果在很短的時間內,有大量不同源IP朝同一目的IP大量發包,就意味著DDoS攻擊存在。
例如使用如下SQL語句,可以發現內網是否有DDoS正在進行攻擊。
select count(*),dstipaddress,pkts from netflow group by dstipaddress order by 1 desc limit 10;查詢后可以看到目標地址107.183.47.242在短期內被大量的不同內網主機連接,有可能該主機正被DDoS攻擊。
(2)未知攻擊
有些病毒或攻擊雖然不像DOS、DDoS攻擊那么明顯異常,但也有其特殊的異常特征,如有些攻擊在發起前會進行掃描探測,掃描探測過程中會想辦法隱藏自己真實IP地址,如果發現某網段存在這種刻意隱藏自己IP地址的行為,即可判定該網段隱藏有惡意攻擊主機。比如我們在查找紅色代碼病毒之時,意外發現在192.168.157.0網段有主機從192.168.157.6到192.168.157.254,有規律的改變源IP地址向外連接。此種行為有可能是紅色代碼病毒變種或其它新的未知病毒或攻擊造成。
3.異常處理
當發現異常流量之時,為了控制異常流量對整網的進一步干擾,可采取以下兩種方法對異常流量進行阻斷處理:
方法一:直接切斷連接
當確定異常流量源地址且該源地址接入交換機可控情況下,可遠程登錄到該交換機,通過關閉異常流量連接的交換機端口直接切斷異常流量。
方法二:過濾
當不能準確定位異常流量所連接的交換機端口時,可在核心交換或路由設備上采用ACL過濾的方法,靈活實現針對源目的IP地址、協議類型、端口號等各種形式的過濾。
四、構建WEB監測
因為NetFlow表達的流量信息非常豐富,利用其基本的七元組信息,不但可以實現上述的異常流量發現,還可以實現整網流量實時分析統計,如統計整網中各種協議所占比例、某段時間每個IP地址流入或流出流量多少等。異常流量實際就隱藏在整網流量之中,因此,通過WEB利用存入MySQL中的NetFlow信息構建整網流量監測系統,不但可以直觀的將整網流量統計信息以圖形方式顯示出來,同時,通過觀察整網流量統計信息,也可以發現其中隱藏的異常流量。通過我們WEB實現了以下幾項重要功能:
功能一:某一時段整網流量流入、流出排名統計。比如對整網最后一小時收集的數據進行統計,查詢的前十名IP流入流量總和,及其所占整網總流量的比例,可以發現某IP流入的流量最高,依此可以判斷該IP有可能在進行P2P的下載,如果該IP經常這樣大比例占用整網流量,就會對其進行帶寬限制。如果查詢的是流出流量,當內網某IP流出流量過大時,就要考慮該IP是否感染病毒了。
功能二:某一時段整網各協議流入、流出排名統計。
功能三:某一時段分區域(分成學生區、教工區、服務器區)流量與協議流入、流出排名統計。
功能四:某一時段各IP地址流入、流出會話顯示。
五、結語
本文基于NetFlow設計并開發了一套網絡監測系統,該系統通用性好,可擴展性強,使用簡捷、直觀、方便, 實驗證明該系統能很好地對管轄范圍內的網絡數據流進行有效監控,給網管人員提供豐富的決策依據。通過實時的統計信息,網管人員不但可以對校園網絡運行情況有基本的了解,同時還可以找到病毒、蠕蟲和網絡攻擊等網絡異常行為的源頭,給網管人員采取有效措施阻斷這些異常流量提供依據,從而為校園網絡穩定運行提供保證。
參考文獻:
[1]肖志新,楊岳湘,楊霖.一個基于NetFlow的異常流量檢測與防護系統[J].微電子學與計算機,2006,23(5).
[2] 周韶澤,邵力耕.高速網絡環境下基于NetFlow的網絡監測系統設計[J].大連鐵道學院學報,2005,26(2).
[3] 曹錫宇,張德民.基于NetFlow的IDS研究與應用[J].通信市場,2005,(5).
中圖分類號:TP391.2
文獻標識碼:A
基金項目:安徽財經大學教育事業發展研究項目(2016JFYBE12)與安徽財經大學教學研究項目(acjyyb2015013)研究成果
*收稿日期:2015-12-01
文章編號:2095-4654(2016)02-0009-03