1. 程式人生 > >Tcpdump(linux)下載、安裝、使用說明

Tcpdump(linux)下載、安裝、使用說明

布林運算子包括取非運算子(not 或!)、和運算子(and或&&)、或運算子(or或||),使用布林運算子能夠將表示式組合起來構成強大的組合條件,從而能夠對 Tcpdump的過濾器做進一步細化。 

下面給出幾個使用Tcpdump過濾資料包的例子,嗅探器提供的過濾表示式對於管理員監測網路執行狀況很重要: 

1. 假如想要截獲主機“9.185.10.57”任何收到和發出的資料包,能夠使用如下命令: 

# tcpdump host 9.185.10.57 



2. 假如想要截獲在主機“9.185.10.57”和主機“9.185.10.58”或“9.185.10.59”之間傳遞的資料包,能夠使用如下命令: 

# tcpdump host 9.185.10.57 and \(9.185.10.58 or 9.185.10.59\) 



需要注意的是,在使用布林運算子構成組合表示式時,有時需要使用括號來表達複雜的邏輯關係。假如要在命令列中使用括號,一定要用轉義字元(“\”)對括號進行轉義
,否則命令列直譯器將給出語法錯誤的提示。 

3. 假如想要截獲主機“9.185.10.57”和除主機“9.186.10.58”外任何其他主機之間通訊的IP資料包,能夠使用如下命令: 

# tcpdump ip host 9.185.10.57 and ! 9.185.10.58 



4. 假如想要截獲主機“9.185.10.57”接收或發出的FTP(埠號為21)資料包,能夠使用如下命令: 

# tcpdump tcp port 21 and host 9.185.10.57   (注意and的書寫,不加and總是提示語法錯誤)



5. 假如懷疑係統正受到拒絕服務(DoS)攻擊,網路管理員能夠通過截獲發往本機的任何ICMP包,來確定現在是否有大量的ping指令流向伺服器,此時就能夠使用下面的命令: 

# tcpdump icmp -n -i eth0


Tcpdump的輸出結果

在對網路中的資料包進行過濾後,Tcpdump的輸出結果中包含網路管理員關心的網路狀態資訊。由於Tcpdump只是個命令列方式的嗅探器,因而其輸出結果不是很直觀,下面以幾種典型的輸出資訊為例,介紹如何對Tcpdump的輸出結果進行分析。 

1. 資料鏈路層頭資訊 

使用“tcpdump -e host tiger”命令截獲主機“tiger”任何發出和收到的資料包,並在輸出結果中包含資料鏈路層的頭部資訊。 

“tiger”是一臺裝有Linux的主機,其MAC地址是00:D0:59:BF:DA:06;“mag”是一臺裝有SCO Unix的工作站,其MAC地址是08:90:B0:2F:AF:46,上述命令的輸出結果如下: 

20:15:20.735429 eth0 
< 08:90:b0:2f:af:46 00:d0:59:bf:da:06 ip 60: mag.36579 > 
tiger.ftp 0:0(0) ack 25565 win 8970 (DF) 



在 輸出的資訊中,“20:15:20”為截獲資料包的時間,“735429”是毫秒數,“eth0 <”表示從網路介面eth0接收該資料包(若為“eth0 >”,則表示從網路介面eth0傳送資料包)。“08:90:b0:2f:af:46”是主機mag的MAC地址,指明發送該資料包的源主機為 “mag”,“00:d0:59:bf:da:06”是主機tiger的MAC地址,指明該資料包傳送的目標主機為“tiger”。“ip”表明該資料包 是IP資料包,“60”是資料包的長度,“mag.36579 > tiger.ftp”表明該資料包是從主機“mag”的36579埠發往主機“tiger”的FTP(21)埠。“ack 25565”表示對序列號為25565的包進行確認,“win 8970”則指明發送視窗的大小為8760。 

2. ARP包的輸出資訊 

若使用“tcpdump arp -c 2”命令截獲ARP資料包,得到的輸出結果可能是: 

20:42:22.713502 eth0 
> arp who-has mag tell tiger 
(00:d0:59:bf:da:06) 
20:42:22.713907 eth0 
< arp reply mag is-at 08:90:b0:2f:af:46 
(00:d0:59:bf:da:06) 



在 輸出的資訊中,“20:42:22”為截獲資料包的時間;“713502”和“713907”為毫秒數;“eth0 >”表明從主機發出該資料包;“eth0 <”表明從主機接收該資料包。“arp”表明該資料包是ARP請求,“who-has mag tell tiger”表明是主機“tiger”請求主機“mag”的MAC地址,“00:d0:59:bf:da:06”是主機“tiger”的MAC地址。 “reply mag is-at”表明主機“mag”響應“tiger”的ARP請求,“08:90:b0:2f:af:46”是主機“mag”的MAC地址。 

3. TCP包的輸出資訊 

用Tcpdump截獲的TCP包的一般輸出格式如下: 

src > dst: flags data-sequno ack window urgent options 



“src > dst:”標明從源地址到目的地址;flags是TCP包中的標誌資訊,包括S(SYN)標誌、F(FIN)標誌、P(PUSH)標誌、R(RST)標誌 和“.”(沒有標誌);data-sequno是資料包中的資料序列號;ack是下次期望的資料序列號;window是接收快取的視窗大小;urgent 標明資料包中是否有緊急指標;options是可能的選項值。 

4. UDP包的輸出資訊 

用Tcpdump截獲的UDP包的一般輸出格式如下: 

src.port1 > dst.port2: udp lenth 



UDP中包含的資訊很簡單。上面的輸出結果表明從主機“src”的“port1”埠發出的一個UDP資料包被送到主機“dst”的“port2”埠,資料包的型別是UDP,其長度為“lenth”。 

通 過上面的介紹能夠知道,Tcpdump是個命令列方式的嗅探器。他能夠根據需要顯示出經過一個網路介面的任何資料包,供網路管理員對網路進行檢測。但由於 採用的是命令列方式,對這些資料包的分析可能會比較困難。利用Tcpdump提供的表示式過濾一些截獲的資料包,能夠從截獲的大量資料包中提取出有用的信 息,從而能夠有針對性地對網路進行監測。 

由於任何網路嗅探器的原理都大體相似,因而Tcpdump的基本知識能夠應用於幾乎任何的嗅 探器。Tcpdump是基於命令列方式的嗅探器,其輸出結果比較難於分析,因此很多網路管理員都使用影象化的嗅探器來檢測網路故障,並處理可能存在的安全 問題。下次將介紹兩個影象化的網路嗅探器—Ethereal和EhterApe。同Tcpdump相比,使用這兩個嗅探器的分析過程要簡單許多。