數據包分析是一個復雜的話題。如果在沒有設置參數的情況下啟動Wireshark,就會開始實時捕獲或打開一個預先錄制的pcap文件。在很短的時間內,可能有成千上萬的數據包等待分析。有一種危險,就是被大量的數據困住了。
然而,如果用戶想深入分析數據包,沒有一個其他產品可以替代Wireshark。但是,有一些方法可以使這項任務變得更加容易。
本文解釋了應對挑戰和減少數據包分析工作的策略--無論是為了排除故障還是為了評估網絡質量。
第一部分也就是本篇討論的是解釋如何使用Wireshark工具進行結構化搜索的技術。這里涵蓋了過濾器、顏色標記和協議層次的技術。
第二部分將會在下一期為大家進行介紹,我們該如何使用 Allegro 網絡萬用表來加快 pcap 分析器的工作。
旗艦級的Wireshark
開源程序Wireshark是一個非常好用的pcap分析器。該項目從前身 "Ethereal "中脫穎而出,自2006年以來一直存在,自其發布以來已將所有商業對比產品擠出市場。Wireshark是一個面向數據包的分析器,用于準確定位問題,并以圖形顯示數據日志。
大多數繁忙的網絡會有許多水平的網絡連接,需要準確的數據包分析。例如,只訪問一個網站就會產生與許多其他主機的連接。
過濾器的使用
由于需要處理的數據量巨大,Pcap 文件的分析可能是一個挑戰。可以使用過濾器來有選擇地隱藏不感興趣的連接。我們的目標是最終獲得一組相對容易管理的數據包,作為詳細分析的起點。
除了應用BPF語法等外部工具和技術來過濾流量外,Wireshark還有一些板載手段來減少大量的信息,以便更接近相關信息。Wireshark區分了兩種類型的過濾器。捕獲過濾器定義哪些數據包被記錄下來;顯示過濾器定義了哪些捕獲的數據包被包括在當前的分析中。但是,這兩種過濾器使用不同的語法。
在Wireshark中的簡單顯示過濾器
在Wireshark中最常用的使內容更精簡得技術是使用顯示過濾器。
顯示過濾器最簡單的用途是將流量減少到單一的應用程序、特定的協議或數據字段的確切規格。要做到這一點,你可以使用菜單(分析->顯示過濾器)來選擇,例如,HTTP協議,這將限制視圖到所有的HTTP條目,或者直接在過濾器工具欄上插入所需的過濾器值。如果你想只看到所有的SIP連接,你只需在輸入框中輸入'sip',然后用'Enter'確認即可。
在Wireshark中通過顯示過濾器進行特定的協議過濾
過濾器正在使用中,可以在過濾器工具欄的輸入欄中看到(用綠色突出顯示)。右下方的狀態欄也顯示過濾器已被設置,或者當時確實只顯示了一定比例的數據包。
在直接輸入顯示過濾器時,Wireshark提供了一個自動完成功能,因此在輸入過濾器時,所有具有相同字母序列的可用過濾器都會被建議。
比較運算符
除了使用簡單的過濾器,條件也可以被鏈接。Wireshark的過濾器語法提供了括號、邏輯運算符,如'and' 'or',以及比較運算符,如= =或! =。
例如,如果你想顯示 "從IP地址10.17.2.5到80端口的任何TCP流量",翻譯成Wireshark的過濾語法是ip.src = = 10.17.2.5 and tcp.dstport = = 80。
在這個例子中,條件是用 'and' 連接的。條件1規定,數據包的源IP地址必須是10.17.2.5,條件2規定,協議必須是TCP,目的端口必須是80。
任何數量的條件都可以連接起來,以進一步限制顯示的流量的選擇。
來自Wireshark的表達式生成器
作為一個熟練的Wireshark用戶,表達式可以從內存中自由應用。最初,使用Wireshark的表達式生成器對話框將表達式添加到顯示過濾器中是非常容易的。
當右擊過濾器工具欄中的術語 "表達式 "時,這個對話框會打開。在這里,可以選擇和鏈接預定義的運算符。為了檢查所選的過濾器是否正確,過濾器工具欄變成綠色。如果過濾器是無效的,則該區域會以紅色顯示。
在Wireshark中調用表達式生成器
如果需要的話,可以保存Wireshark的過濾器。
捕獲過濾器
除了上述減少顯示數據包的顯示過濾器外,還可以在流量記錄開始的那一刻應用過濾器;這些被稱為捕獲過濾器,確保網絡數據被限制在所需的選擇范圍內。
Wireshark捕獲過濾器使用與tcpdump、libpcap過濾器相同的語法。就是說,用字節偏移、十六進制值和與真值相關的掩碼的語法來過濾數據。捕獲過濾器的應用并不簡單,因為它們比顯示過濾器更隱蔽。
Wireshark手冊中包含了更多關于集成在Wireshark中的過濾器的信息。
在這篇文章中,只討論了Wireshark作為機載工具所提供的最重要的過濾器。應用比最簡單的顯示過濾器更深奧的過濾器,需要對Wireshark的過濾器語法有深入的了解,以便持續使用過濾器來解決自己的研究問題。
使用Wireshark進行顏色標記
除了過濾功能外,Wireshark還有一個可定制的顏色編碼系統。例如,默認情況下,所有UDP數據包都標為藍色,標準TCP傳輸為紫色,HTTP為綠色。這些顏色編碼有助于管理員一目了然地識別數據包的類型。用戶定義的顏色規則可以分配給自己的配置文件并保存,完成系統。文本和背景顏色都可以自定義。
單個數據流可以通過自動顏色編碼輕松追蹤。然而,為了一目了然地看到哪些連接是活動的,或者單個數據包屬于哪些連接,而不是通過IP地址/端口號來確定,你可以通過顏色代碼來調節。要啟用這一點,在右鍵單擊數據包后,你可以在上下文菜單中點擊 "彩色連接",并選擇連接類型(以太網、IPv4、IPv6、TCP、UDP等)。
根據傳輸協議為連接著色,同一IP對之間的單個通信流可以被區分出來。這比只看IP地址能夠進行更細化的分析。在多個主機同時進行通信的情況下,或者在同一主機之間有多個通信連接需要區分的情況下,對單個連接進行顏色編碼特別有用。如果你想仔細觀察任何潛在的可疑流量,顏色編碼也是一種可行的記錄方式。顏色編碼為大型 pcap 數據文件的初始定位提供了一種易于使用的技術。
使用協議層次
這里要介紹的第三種技術是使用協議分層,以便在大型 pcap 文件中更好地定位。與顏色編碼相比,這需要高級的 Wireshark 知識。協議層次的使用提供了有用的線索,例如,在追蹤可疑的應用程序或協議時。
要顯示記錄文件中使用的日志,必須選擇菜單項 "統計->日志層次結構"。層次結構提供了一個樹狀的日志視圖,包括每個日志的統計值。它被稱為層次結構,因為數據是根據通信層排列的,因為大多數數據包包含多個封裝的協議。因此,一個HTTP數據包被列在一個TCP數據包下,兩者都在IP數據包下,等等。
按協議層次的Wireshark視圖
除了協議信息外,管理員還可以查看該協議在總流量中的份額有多高,數據包的確切數量或某一協議的帶寬。如果在數據條目中發現意外的高值,應該更仔細地檢查這個流量。為此,用鼠標右鍵標記該條目,以便進一步分析。一個上下文菜單打開,可以直接過濾或著色數據包。由于列表的分層結構,不可能對日志進行排序或重新排序。
然而,可以采用演繹策略,直接從日志層次視圖中過濾掉不感興趣的日志。可以從過濾后的結果中保存一個單獨的捕獲文件。
總的來說,協議分層技術是一種可擴展的方式,可以獲得一個 pcap 文件的整體視圖。協議層次結構通常是進一步分析的起點,因為在這里可以看到意外流量或錯誤的跡象,比如意外的協議或單個協議的意外數據比例。引起注意的往往不是某個協議的存在,而是其相對比例。
下一期我們將告訴大家,如何使用Allegro網絡萬用表作為預過濾器來過濾和構建大型捕獲文件。
-
萬用表
+關注
關注
87文章
2047瀏覽量
127352 -
網絡
+關注
關注
14文章
7516瀏覽量
88627 -
流量監控
+關注
關注
0文章
17瀏覽量
7361
發布評論請先 登錄
相關推薦
評論