日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux过滤数据包,用Tcpdump过滤数据包

發布時間:2024/3/26 linux 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux过滤数据包,用Tcpdump过滤数据包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于網絡管理人員來說,使用嗅探器可以隨時掌握網絡的實際情況,在網絡性能急劇下降的時候,可以通過嗅探器來分析原因,找出造成網絡阻塞的根源。Tcpdump就是Linux平臺下一個以命令行方式運行的網絡流量監測工具。它能截獲網卡上收到的數據包,并能夠協助網絡管理員對其中的內容進行相應的分析。

嗅探器能夠截獲指定接口或所有接口的數據包,這取決于如何對嗅探器進行配置。缺省情況下嗅探器一般會顯示所有從網絡上截獲的數據包,但通常會因為數據量過大而使網絡管理員理不清頭緒。因此,嗅探器一般都提供有相應的機制來對截獲的數據包進行過濾,從而只顯示符合特定要求的數據包。Tcpdump提供了一整套完善的規則來對截獲的數據包進行過濾,由于大多數圖形化的嗅探器都使用類似的過濾機制,因此對Linux網絡管理員來說,了解如何使用Tcpdump來捕獲感興趣的數據包是一項必須掌握的基本功。

Tcpdump的安裝

在一些Linux發行版中,Tcpdump通常作為標準的軟件包被默認安裝,執行“tcpdump”命令可以確定是否已經安裝了Tcpdump。如果系統中還沒有安裝Tcpdump,可以去“3.7.1為例,講述如何安裝Tcpdump,此處使用的操作系統是Red Hat 8.0。

首先下載最新的源碼包,并將其解壓縮,命令如下:

# cp tcpdump-3.7.1.tar.gz /usr/local/src/

# cd /usr/local/src/

# tar xzvf tcpdump-3.7.1.tar.gz

在編譯Tcpdump之前,應先確定pcap庫(libpcap)已經安裝完畢。這個庫是編譯Tcpdump時所必需的。如果該庫已經安裝,就可以執行下面的命令來編譯并安裝Tcpdump:

# cd tcpdump-3.7.1

# ./configure

# make

# make install

Tcpdump的命令行選項

Tcpdump是一個命令行方式的網絡嗅探器。它通過使用命令選項來過濾網卡截獲的數據包,如果不進行過濾,過多數量的包會使網絡管理員很難理清頭緒。Tcpdump的命令格式如下:

tcpdump [ -adeflnNOpqRStuvxX ] [ -c 數量 ] [ -C 文件尺寸 ] [ -F 文件名 ] [ -i 網絡接口 ] [ -m 文件名 ] [ -r 文件名 ] [ -s 長度 ] [ -T 類型 ] [ -w 文件名 ] [ -E algo:secret ] [ 表達式 ]

表1 Tcpdump常用命令行選項 -a 將網絡地址和廣播地址轉變成容易識別的名字

-d 將已截獲的數據包的代碼以人容易理解的格式輸出;

-dd 將已截獲的數據包的代碼以C程序的格式輸出;

-ddd 將已截獲的數據包的代碼以十進制格式輸出;

-e 輸出數據鏈路層的頭部信息;

-f 將internet地址以數字形式輸出;

-l 將標準輸出變為行緩沖方式;

-n 不將網絡地址轉換成易識別的主機名,只以數字形式列出主機地址(如IP地址),這樣可以避免DNS查詢;

-t 不輸出時間戳;

-v 輸出較詳細的信息,例如IP包中的TTL和服務類型信息;

-vv 輸出詳盡的報文信息;

-c 在捕獲指定個數的數據包后退出;

-F 從指定的文件中讀取過濾規則,忽略命令行中指定的其它過濾規則;

-i 指定監聽的網絡接口;

-r 從指定的文件中讀取數據包(該文件一般通過-w選項產生);

-w 將截獲的數據包直接寫入指定的文件中,不對其進行分析和輸出;

-T 將截獲的數據包直接解釋為指定類型的報文,目前支持的類型有cnfp、rpc、rtp、snmp、vat和wb。

表1給出了一些常用的Tcpdump命令行選項,使用這些選項可以過濾出真正感興趣的數據包。

使用Tcpdump的命令行選項可以很方便地過濾出需要的數據包。例如,要過濾掉所有除ARP請求和應答的通信數據,可以輸入“tcpdump arp”命令。該命令只對ARP的請求和應答信息進行截獲,在Tcpdump的輸出信息中,請求是“arp who-has”這樣的條目,而應答則是“arp reply”這樣的條目,如圖1所示。

圖1 ARP過濾

如果要做更多的處理,比如從指定的網絡接口截獲5個ARP數據包,并且不將網絡地址轉換成主機名,則可以用命令“tcpdump arp -i eth0 -c 5 -n”。

Tcpdump的過濾表達式

Tcpdump的過濾表達式是一個正則表達式,Tcpdump利用其作為過濾數據包的條件。如果一個數據包滿足表達式的條件,則這個數據據包將會被捕獲;如果不指定表達式,則在網絡上任何兩臺主機間的所有數據包都將被截獲。過濾表達式的作用就是使Tcpdump只輸出網絡管理員所需要的數據,如一個指定的網絡接口和特定主機間的IP數據包。

Tcpdump的過濾表達式中一般有如下幾種類型的關鍵字:

◆ 類型關鍵字

這類關鍵字用于指定主機、網絡或端口,包括host、net和port三個關鍵字。例如,可以用“host 9.185.10.57”來標明監聽的主機;用“net 9.185.0.0”來標明監聽的網絡;用“port 23”來標明監聽的端口。如果沒有在表達式中指明類型,則缺省的類型為host。

◆ 方向關鍵字

這類關鍵字用于指定截獲的方向,包括dst、src、dst or src、dst and src四個關鍵字。例如,可以用src 9.185.10.57來指明截獲的數據包中的源主機地址;用“dst net 9.185.0.0”來指明截獲的數據包中的目標網絡地址。如果沒有在表達式中指明方向,則缺省的方向為“dst or src”,即兩個方向的數據包都將被捕獲。對于數據鏈路層協議(如SLIP和PPP),使用inbound和outbound來定義方向。

◆ 協議關鍵字

這類關鍵字用于指定要截獲的數據包所屬的協議,包括ether、fddi、tr、ip、ip6、arp、rarp、decnet、tcp和udp等關鍵字。關鍵字fddi指明在FDDI(分布式光纖數據接口網絡)上的特定網絡協議。實際上它是ether的別名。fddi和ether具有類似的源地址和目標地址,所以可以將fddi協議包當作ether的包進行分析和處理。其它幾個關鍵字只是指定了所要截獲的協議數據包。如果沒有在表達式中指明協議,則Tcpdump會截獲所有協議的數據包。

除了上述三種類型的關鍵字外,Tcpdump的過濾表達式中還可以指定的一些重要關鍵字包括gateway、broadcast、multicast、less、greater。這些關鍵字對于監聽網絡中的廣播和多播很有幫助。關于這些關鍵字的更多信息和用法請參考Tcpdump的man手冊。

在Tcpdump的過濾表達式中,各類關鍵字之間還可以通過布爾運算符來構成組合表達式,以滿足實際運用時的需要。布爾運算符包括取非運算符(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 host 9.185.10.57

5. 如果懷疑系統正受到拒絕服務(DoS)攻擊,網絡管理員可以通過截獲發往本機的所有ICMP包,來確定目前是否有大量的ping指令流向服務器,此時就可以使用下面的命令:

# tcpdump icmp -n -i eth0

總結

以上是生活随笔為你收集整理的linux过滤数据包,用Tcpdump过滤数据包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。