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