簡介
本檔案介紹使用Wireshark分析從安全網路裝置(SWA)擷取封包的方法。
必要條件
需求
思科建議您瞭解以下主題
- Cisco SWA管理
-
顯式和透明的代理部署方法
- 資料包捕獲
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
在聯絡思科技術支援時,您需要提供有關SWA出站和入站網路活動的詳細資訊,可通過運行資料包捕獲來監控此活動,以收集流量用於調試或驗證。
顯式代理部署
顯式代理要求將客戶端配置為直接將其流量傳送到代理伺服器,通常通過其網路配置(PAC檔案或DHCP選項)或瀏覽器設定中的特定代理設定。這允許代理伺服器在將請求轉發到目標之前管理和過濾請求。
附註:在顯式部署中,離開客戶端電腦的資料包的目標IP地址是代理伺服器IP地址。
以下是使用顯式代理部署時的網路邏輯流:
顯式代理資料包流
透明代理部署
透明代理攔截網路流量,無需在客戶端進行任何配置更改。流量將自動重定向到代理伺服器,允許其過濾和監控請求,而無需客戶端明確感知。
附註:在透明部署中,離開客戶端電腦的資料包的目標IP地址是目標伺服器IP地址。
以下是使用透明代理部署時的網路邏輯流:
透通代理封包流
有關SWA顯式透明資料包流的詳細資訊,請參閱瞭解安全Web裝置中的資料包流
AsyncOS 7.x及更高版本上的資料包捕獲
若要從圖形使用者介面(GUI)開始資料包捕獲,請導航到右上角的幫助和支援選單,選擇Packet Capture,然後按一下Start Capture。若要停止封包擷取程式,請按一下「停止擷取」。
附註:即使在SWA GUI會話到期或註銷之後,在GUI中啟動的捕獲仍會在會話之間儲存。
若要從命令列介面(CLI)啟動資料包捕獲,請輸入Packetcapture > Start命令。若要停止封包擷取程式,請輸入Packetcapture > Stop指令,然後SWA會在作業階段結束時停止封包擷取。
SWA資料包捕獲配置指南
有關如何在SWA中執行資料包捕獲的詳細資訊。
在內容安全裝置上配置資料包捕獲
SWA使用手冊 — 資料包捕獲部分
SWA上的封包擷取過濾器
SWA GUI和CLI中的預設捕獲(Packetcapture 命令)使用標準tcpdump過濾器語法。本節提供有關tcpdump捕獲過濾器的資訊並提供一些示例。
以下是一些最常用的篩選條件:
- ip:所有IP協定流量的過濾器。
- tcp:所有TCP協定流量的過濾器。
- 主機:特定IP地址源或目標的過濾器。
tcpdump中經常使用兩個邏輯條件:
- 和:僅當滿足所有指定條件時才捕獲資料包(
使用&
&)。
- 或:如果滿足至少一個條件,則捕獲資料包(使用
||
)。
附註:這些邏輯條件區分大小寫。
以下是SWA中的示例過濾器,用於在透明或顯式部署中按IP地址收集資料包:
來源 IP:192.168.1.1
目的地 IP:10.20.3.15
host 192.168.1.1 || host 10.20.3.15
此過濾器捕獲10.20.3.15和SWA之間的流量,以及SWA和192.168.1.1之間的流量。
提示:無需在過濾器中新增SWA IP地址。
疑難排解
當客戶端嘗試訪問網站時,整個通訊過程可分為兩部分:
- 客戶端與SWA通訊。
- SWA與目標伺服器通訊。
提示:捕獲資料包之前,請確認客戶端IP地址在通往SWA的路徑中保持不變。由於在流量到達SWA之前配置網路地址轉換(NAT)規則或SWA和客戶端電腦之間存在下游代理而發生IP地址更改。
使用Wireshark過濾器分析顯式連線
適用於明確連線的Wireshark過濾器
對於資料包捕獲中通訊的第一階段:源IP應為客戶端IP地址,目標IP地址為SWA IP(SWA的入站介面通常為P1介面)。
您可以在Wireshark中使用這些過濾器:
按客戶端IP過濾:
ip.addr ==
對於通訊的第二階段,源IP將是SWA IP地址(外部介面通常是P2介面),目標IP地址是Web伺服器IP地址。
按伺服器IP過濾:
ip.addr ==
在顯式部署中,客戶端將其請求作為HTTP連線傳送到代理,以便通過HTTP連線進行過濾:
http.request.method == "CONNECT"
按HTTP請求方法過濾:
http.request.method==GET
或
http.request.uri contains ""
在過濾客戶端Hello的HTTPS請求中:
ssl.handshake.type==1
如果您希望看到兩端相互通訊,最佳操作是使用TCP流過濾器。
提示:要查詢TCP流編號,請按一下右鍵當前過濾器中的任何資料包,或者按一下右鍵所需資料包,選擇Follow,然後選擇TCP Stream。您可以在過濾欄中看到TCP資料流編號。
要隔離第一階段和第二階段TCP流號,請使用過濾器:
tcp.stream eq || tcp.stream eq
將<first_phase_stream_number>和<second_phase_stream_number>替換為相應的流編號。
使用Wireshark過濾器分析透明連線
在涉及Web快取通訊協定(WCCP)重定向或基於策略的路由(PBR)的透明請求中,當客戶端流量定向到SWA時,SWA使用目標伺服器IP地址而不是自己的IP地址進行響應。因此,在透明請求中,資料包捕獲顯示目標伺服器IP地址,但使用SWA MAC地址作為目標MAC地址(在客戶端到SWA之間的流量中),並且如果IP欺騙未啟用,則源IP是具有SWA MAC地址的客戶端IP地址,資料包從SWA發出。
適用於透明連線的Wireshark過濾器
與透明請求一樣,Wireshark會過濾與顯式連線相同的內容,但會注意SWA不能使用其實際IP地址與客戶端通訊,而是將自身偽裝為實際目標伺服器。
按客戶端IP過濾:
ip.addr ==
按伺服器IP過濾:
ip.addr ==
注意:如果SWA中未啟用IP欺騙,則從SWA到Web伺服器的資料包的源IP地址是客戶端IP地址。
按HTTP請求方法過濾:
http.request.method==GET
或
http.request.uri contains ""
在過濾客戶端Hello的HTTPS請求中:
ssl.handshake.type==1
如果您希望看到兩端相互通訊,最佳操作是使用TCP流過濾器。
提示:要查詢TCP流編號,請按一下右鍵當前過濾器中的任何資料包,或者按一下右鍵所需資料包,選擇Follow,然後選擇TCP Stream。您可以在過濾欄中看到TCP資料流編號
要隔離第一階段和第二階段TCP流號,請使用過濾器:
tcp.stream eq || tcp.stream eq
將<first_phase_stream_number>和<second_phase_stream_number>替換為相應的流編號。
Wireshark過濾器類似於顯式連線。
如何確認客戶端Web請求是顯式連線還是透明連線
在顯式請求中:客戶端在知道代理伺服器的情況下訪問URL,因此客戶端將HTTP連線請求傳送到代理IP地址和代理埠。
預設情況下,SWA偵聽代理服務的TCP埠3128和80。在顯式部署資料包捕獲中,您可以看到客戶端和SWA之間的流量流向這些代理埠號。
在透明請求中:當客戶端不知道代理IP時,客戶端訪問URL,並且SWA不使用自己的IP地址通訊。相反,SWA偽裝了目標伺服器IP地址。
在透明模式下,流量看起來好像在客戶端和目的伺服器(例如Cisco網站)之間流動,但目的伺服器的MAC地址是SWA的MAC地址。要確認SWA MAC地址,請使用CLI命令:etherconfig > MEDIA。
修改Wireshark檢視
要在使用Proxy排查Web要求時,更全面地瞭解Wireshark中的封包,最好在封包檢視中使用伺服器名稱指示(SNI)和TCP流ID。
將SNI列新增到Wireshark檢視
步驟1.使用Wireshark打開封包擷取檔案。
步驟2.按一下右鍵Wireshark中的列名稱。
步驟3.選擇列首選項。
步驟4.按一下+符號(新增新列)。
步驟5.輸入該列的名稱(例如SNI)。
步驟6.在Type部分中選擇Custom。
步驟7.在欄位部分中,輸入tls.handshake.extensions_server_name。
步驟8.按一下OK以儲存變更內容。
或者,您可以使用這些步驟:
步驟1.在Wireshark上應用過濾器:ssl.handshake.type.1==在SSL/TLS握手中隔離客戶端Hello消息。
步驟2.展開協定詳細資訊:按一下Transport Layer Security>展開Handshake Protocol:客戶端Hello >擴展擴展:Server name >展開Server Name Indication Extension(SNI)。
步驟3.將伺服器名稱新增為列。按一下右鍵伺服器名稱(或特定伺服器名稱),然後選擇Apply as Column。
將流編號列新增到Wireshark檢視
步驟1.使用Wireshark打開封包擷取檔案。
步驟2.按一下右鍵Wireshark中的列名稱。
步驟3.選擇列首選項。
步驟4.按一下+ 符號(新增新列)。
步驟5.輸入該列的Name(例如Stream)。
步驟6.在Type部分中選擇Custom。
步驟7.在Field部分中,輸入tcp.stream。
步驟8.按一下OK以儲存變更內容。
或者,您可以使用這些步驟:
步驟1.找到HTTP/TCP資料包:確保您正在檢視包含HTTP/TCP協定的資料包。
步驟2.選擇或按一下packet和一個底部左窗格傳輸控制通訊協定。向下滾動以獲取(流索引:數字)。
步驟3.按一下右鍵Stream Index:編號並應用為列。
相關資訊