Linux網(wǎng)絡(luò)流量控制工具與管理方法介紹
相信大家對目前Linux網(wǎng)絡(luò)流量的管理方法都有所了解了,并且希望找到一個更安全更有效的方法,今天在這里我們就像大家介紹一個更安全更有效的Linux網(wǎng)絡(luò)流量安全管理方法,希望對大家有用。
網(wǎng)絡(luò)流量捕捉:圖形化工具Wireshark
1、Wireshark簡介
Ethereal是一個開放源碼的Linux網(wǎng)絡(luò)流量分析系統(tǒng),也是目前***的開放源碼的網(wǎng)絡(luò)協(xié)議分析器,支持Linux和windows平臺。Ethereal起初由Gerald Combs開發(fā),隨后由一個松散的etheral團隊組織進行維護開發(fā)。它目前所提供的強大的協(xié)議分析功能完全可以媲美商業(yè)的Linux網(wǎng)絡(luò)流量分析系統(tǒng),自從1998年發(fā)布最早的0.2版本至今,大量的志愿者為ethereal添加新的協(xié)議解析器,如今ethereal已經(jīng)支持五百多種協(xié)議解析。
另外,網(wǎng)絡(luò)分析系統(tǒng)首先依賴于一套捕捉網(wǎng)絡(luò)數(shù)據(jù)包的函數(shù)庫。這套函數(shù)庫工作在網(wǎng)絡(luò)分析系統(tǒng)模塊的***層。作用是從網(wǎng)卡取得數(shù)據(jù)包或者根據(jù)過濾規(guī)則取出數(shù)據(jù)包的子集,再轉(zhuǎn)交給上層分析模塊。從協(xié)議上說,這套函數(shù)庫將一個數(shù)據(jù)包從鏈路層接收,至少將其還原至傳輸層以上,以供上層分析。6月8號,Ethereal的作者Gerald Coombs宣布了離開NIS的消息,因而Ethereal現(xiàn)改名為Wireshark。
Linux網(wǎng)絡(luò)流量分析系統(tǒng)首先依賴于一套捕捉網(wǎng)絡(luò)數(shù)據(jù)包的函數(shù)庫。這套函數(shù)庫工作在在網(wǎng)絡(luò)分析系統(tǒng)模塊的***層。作用是從網(wǎng)卡取得數(shù)據(jù)包或者根據(jù)過濾規(guī)則取出數(shù)據(jù)包的子集,再轉(zhuǎn)交給上層分析模塊。從協(xié)議上說,這套函數(shù)庫將一個數(shù)據(jù)包從鏈路層接收,至少將其還原至傳輸層以上,以供上層分析。
在Linux系統(tǒng)中,1992年Lawrence Berkeley Lab的Steven McCanne和Van Jacobson提出了包過濾器的一種的實現(xiàn),BPF(BSD Packet Filter)。Libpcap是一個基于BPF的開放源碼的捕包函數(shù)庫?,F(xiàn)有的大部分Linux捕包系統(tǒng)都是基于這套函數(shù)庫或者是在它基礎(chǔ)上做一些針對性的改進。在window系統(tǒng)中,意大利人Fulvio Risso和Loris Degioanni提出并實現(xiàn)了Winpcap函數(shù)庫,作者稱之為NPF。由于NPF的主要思想就是來源于BPF,它的設(shè)計目標就是為windows系統(tǒng)提供一個功能強大的開發(fā)式數(shù)據(jù)包捕獲平臺,希望在Linux系統(tǒng)中的網(wǎng)絡(luò)分析工具經(jīng)過簡單編譯以后也可以移植到windows中,因此這兩種捕包架構(gòu)是非常現(xiàn)實的。就實現(xiàn)來說提供的函數(shù)調(diào)用接口也是一致的。Ethereal網(wǎng)絡(luò)分析系統(tǒng)也需要一個底層的抓包平臺,在Linux中是采用Libpcap函數(shù)庫抓包,在windows系統(tǒng)中采用winpcap函數(shù)庫抓包。
2、層次化的數(shù)據(jù)包協(xié)議分析方法
取得捕包函數(shù)捕回的數(shù)據(jù)包后就需要進行協(xié)議分析和協(xié)議還原工作了。由于OSI的7層協(xié)議模型,協(xié)議數(shù)據(jù)是從上到下封裝后發(fā)送的。對于協(xié)議分析需要從下至上進行。首先對網(wǎng)絡(luò)層的協(xié)議識別后進行組包還原然后脫去網(wǎng)絡(luò)層協(xié)議頭。將里面的數(shù)據(jù)交給傳輸層分析,這樣一直進行下去直到應(yīng)用層。由于網(wǎng)絡(luò)協(xié)議種類很多,就Ethereal所識別的500多種協(xié)議來說,為了使協(xié)議和協(xié)議間層次關(guān)系明顯。從而對數(shù)據(jù)流里的各個層次的協(xié)議能夠逐層處理。Ethereal系統(tǒng)采用了協(xié)議樹的方式。
如果協(xié)議A的所有數(shù)據(jù)都是封裝在協(xié)議B里的,那么這個協(xié)議A就是協(xié)議B是另外一個協(xié)議的兒子節(jié)點(比如圖中的TCP和UDP協(xié)議就是IP協(xié)議的兒子節(jié)點)。我們將***層的無結(jié)構(gòu)數(shù)據(jù)流作為根接點。那么具有相同父節(jié)點的協(xié)議成為兄弟節(jié)點。那么這些擁有同樣父協(xié)議兄弟節(jié)點協(xié)議如何互相區(qū)分了?Ethereal系統(tǒng)采用協(xié)議的特征字來識別。每個協(xié)議會注冊自己的特征字。這些特征字給自己的子節(jié)點協(xié)議提供可以互相區(qū)分開來的標識。比如tcp協(xié)議的port字段注冊后。Tcp.port=21就可以認為是ftp協(xié)議,特征字可以是協(xié)議規(guī)范定義的任何一個字段。比如ip協(xié)議就可以定義proto字段為一個特征字。
在Ethereal中注冊一個協(xié)議解析器首先要指出它的父協(xié)議是什么。另外還要指出自己區(qū)別于父節(jié)點下的兄弟接點協(xié)議的特征。比如ftp協(xié)議。在Ethereal中他的父接點是tcp協(xié)議,它的特征就是tcp協(xié)議的port字段為21。這樣當一個端口為21的tcp數(shù)據(jù)流來到時。首先由tcp協(xié)議注冊的解析模塊處理,處理完之后通過查找協(xié)議樹找到自己協(xié)議下面的子協(xié)議,判斷應(yīng)該由那個子協(xié)議來執(zhí)行,找到正確的子協(xié)議后,就轉(zhuǎn)交給ftp注冊的解析模塊處理。這樣由根節(jié)點開始一層層解析下去。
由于采用了協(xié)議樹加特征字的設(shè)計,這個系統(tǒng)在協(xié)議解析上由了很強的擴展性,增加一個協(xié)議解析器只需要將解析函數(shù)掛到協(xié)議樹的相應(yīng)節(jié)點上即可。
3、基于插件技術(shù)的協(xié)議分析器
所謂插件技術(shù),就是在程序的設(shè)計開發(fā)過程中,把整個應(yīng)用程序分成宿主程序和插件兩個部分,宿主程序與插件能夠相互通信,并且,在宿主程序不變的情況下,可以通過增減插件或修改插件來調(diào)整應(yīng)用程序的功能。運用插件技術(shù)可以開發(fā)出伸縮性良好、便于維護的應(yīng)用程序。它著名的應(yīng)用實例有:媒體播放器winamp、微軟的網(wǎng)絡(luò)瀏覽器IE等。
由于現(xiàn)在網(wǎng)絡(luò)協(xié)議種類繁多,為了可以隨時增加新的協(xié)議分析器,一般的協(xié)議分析器都采用插件技術(shù),這樣如果需要對一個新的協(xié)議分析只需要開發(fā)編寫這個協(xié)議分析器并調(diào)用注冊函數(shù)在系統(tǒng)注冊就可以使用了。通過增加插件使程序有很強的可擴展性,各個功能模塊內(nèi)聚。
4、安裝Wireshark
該軟件有極其方便和友好的圖形用戶界面,并且能夠使得用戶通過圖形界面的配置和選擇,針對多塊網(wǎng)卡、多個協(xié)議進行顯示,效果非常好。目前***版本為:Wireshark 1.0.3。安裝該軟件請按照如下步驟進行:
1.//將下載的***版本軟件拷貝到臨時文件夾
2.# cp wireshark-1.0.3.tar.gz /usr/local/src/
3.//切換到臨時文件夾目錄
4.# cd /usr/local/src/
5.//解壓縮文件
6.# tar -xvf wireshark-1.0.3.tar.gz
另外,同Tcpdump一樣,在編譯Ethereal之前應(yīng)先確定已經(jīng)安裝pcap庫(libpcap),這是編譯Wireshark時所必需的。如果該庫已經(jīng)安裝,就可以執(zhí)行下面的命令來編譯并安裝Wireshark:
1.# cd wireshark-1.0.3
2.# ./configure
3.# make
4.# make install
當編譯并安裝好Wireshark后,就可以執(zhí)行“wireshark”命令來啟動Wireshark。
【編輯推薦】