中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

linux系統(tǒng)Tcpdump命令的正確操作方式

2018-09-14    來(lái)源:愛(ài)站科技

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

  Tcpdump就是一種免費(fèi)的網(wǎng)絡(luò)分析工具,那么接下來(lái)就由愛(ài)站頻道的小編給小伙伴們分享一篇關(guān)于linux系統(tǒng)Tcpdump命令的正確操作方式吧,感興趣的朋友跟小編一起來(lái)了解一下吧!

  網(wǎng)絡(luò)數(shù)據(jù)采集分析工具TcpDump的安裝

  在linux下tcpdump的安裝十分簡(jiǎn)單,一般由兩種安裝方式。一種是以rpm包的形式來(lái)進(jìn)行安裝。另外一種是以源程序的形式安裝。

  rpm包的形式安裝:這種形式的安裝是最簡(jiǎn)單的安裝方法,rpm包是將軟件編譯后打包成二進(jìn)制的格式,通過(guò)rpm命令可以直接安裝,不需要修改任何東西。以超級(jí)用戶登錄,使用命令如下:

  #rpm -ivh tcpdump-3_4a5.rpm

  這樣tcpdump就順利地安裝到你的linux系統(tǒng)中。怎么樣,很簡(jiǎn)單吧。

  源程序的安裝:既然rpm包的安裝很簡(jiǎn)單,為什么還要采用比較復(fù)雜的源程序安裝呢?其實(shí),linux一個(gè)最大的誘人之處就是在她上面有很多軟件是提供源程序的,人們可以修改源程序來(lái)滿足自己的特殊的需要。所以我特別建議朋友們都采取這種源程序的安裝方法。

  第一步 取得源程序 在源程序的安裝方式中,我們首先要取得tcpdump的源程序分發(fā)包,這種分發(fā)包有兩種形式,一種是tar壓縮包(tcpdump-3_4a5.tar.Z),另一種是rpm的分發(fā)包(tcpdump-3_4a5.src.rpm)。這兩種形式的內(nèi)容都是一樣的,不同的僅僅是壓縮的方式.tar的壓縮包可以使用如下命令解開(kāi):

  #tar xvfz tcpdump-3_4a5.tar.Z

  rpm的包可以使用如下命令安裝:

  #rpm -ivh tcpdump-3_4a5.src.rpm

  這樣就把tcpdump的源代碼解壓到/usr/src/RedHat/SOURCES目錄下.

  第二步 做好編譯源程序前的準(zhǔn)備活動(dòng)

  在編譯源程序之前,最好已經(jīng)確定庫(kù)文件libpcap已經(jīng)安裝完畢,這個(gè)庫(kù)文件是tcpdump軟件所需的庫(kù)文件。同樣,你同時(shí)還要有一個(gè)標(biāo)準(zhǔn)的c語(yǔ)言編譯器。在linux下標(biāo)準(zhǔn)的c 語(yǔ)言編譯器一般是gcc。 在tcpdump的源程序目錄中。有一個(gè)文件是Makefile.in,configure命令就是從Makefile.in文件中自動(dòng)產(chǎn)生Makefile文件。在Makefile.in文件中,可以根據(jù)系統(tǒng)的配置來(lái)修改BINDEST 和 MANDEST 這兩個(gè)宏定義,缺省值是

  BINDEST = @sbindir@

  MANDEST = @mandir@

  第一個(gè)宏值表明安裝tcpdump的二進(jìn)制文件的路徑名,第二個(gè)表明tcpdump的man 幫助頁(yè)的路徑名,你可以修改它們來(lái)滿足系統(tǒng)的需求。

  第三步 編譯源程序

  使用源程序目錄中的configure腳本,它從系統(tǒng)中讀出各種所需的屬性。并且根據(jù)Makefile.in文件自動(dòng)生成Makefile文件,以便編譯使用.make 命令則根據(jù)Makefile文件中的規(guī)則編譯tcpdump的源程序。使用make install命令安裝編譯好的tcpdump的二進(jìn)制文件。

  總結(jié)一下就是:

  # tar xvfz tcpdump-3_4a5.tar.Z

  # vi Makefile.in

  # . /configure

  # make

  # make install

  網(wǎng)絡(luò)數(shù)據(jù)采集分析工具TcpDump的使用

  普通情況下,直接啟動(dòng)tcpdump將監(jiān)視第一個(gè)網(wǎng)絡(luò)界面上所有流過(guò)的數(shù)據(jù)包。

  # tcpdump

  tcpdump: listening on fxp0

  11:58:47.873028 202.102.245.40.netbios-ns > 202.102.245.127.netbios-ns: udp 50

  11:58:47.974331 0:10:7b:8:3a:56 > 1:80:c2:0:0:0 802.1d ui/C len=43

  0000 0000 0080 0000 1007 cf08 0900 0000

  0e80 0000 902b 4695 0980 8701 0014 0002

  000f 0000 902b 4695 0008 00

  11:58:48.373134 0:0:e8:5b:6d:85 > Broadcast sap e0 ui/C len=97

  ffff 0060 0004 ffff ffff ffff ffff ffff

  0452 ffff ffff 0000 e85b 6d85 4008 0002

  0640 4d41 5354 4552 5f57 4542 0000 0000

  0000 00

  ^C

  tcpdump支持相當(dāng)多的不同參數(shù),如使用-i參數(shù)指定tcpdump監(jiān)聽(tīng)的網(wǎng)絡(luò)界面,這在計(jì)算機(jī)具有多個(gè)網(wǎng)絡(luò)界面時(shí)非常有用,使用-c參數(shù)指定要監(jiān)聽(tīng)的數(shù)據(jù)包數(shù)量,使用-w參數(shù)指定將監(jiān)聽(tīng)到的數(shù)據(jù)包寫(xiě)入文件中保存,等等。

  然而更復(fù)雜的tcpdump參數(shù)是用于過(guò)濾目的,這是因?yàn)榫W(wǎng)絡(luò)中流量很大,如果不加分辨將所有的數(shù)據(jù)包都截留下來(lái),數(shù)據(jù)量太大,反而不容易發(fā)現(xiàn)需要的數(shù)據(jù)包。使用這些參數(shù)定義的過(guò)濾規(guī)則可以截留特定的數(shù)據(jù)包,以縮小目標(biāo),才能更好的分析網(wǎng)絡(luò)中存在的問(wèn)題。tcpdump使用參數(shù)指定要監(jiān)視數(shù)據(jù)包的類型、地址、端口等,根據(jù)具體的網(wǎng)絡(luò)問(wèn)題,充分利用這些過(guò)濾規(guī)則就能達(dá)到迅速定位故障的目的。請(qǐng)使用man tcpdump查看這些過(guò)濾規(guī)則的具體用法。

  顯然為了安全起見(jiàn),不用作網(wǎng)絡(luò)管理用途的計(jì)算機(jī)上不應(yīng)該運(yùn)行這一類的網(wǎng)絡(luò)分析軟件,為了屏蔽它們,可以屏蔽內(nèi)核中的bpfilter偽設(shè)備。一般情況下網(wǎng)絡(luò)硬件和TCP/IP堆棧不支持接收或發(fā)送與本計(jì)算機(jī)無(wú)關(guān)的數(shù)據(jù)包,為了接收這些數(shù)據(jù)包,就必須使用網(wǎng)卡的混雜模式,并繞過(guò)標(biāo)準(zhǔn)的TCP/IP堆棧才行。在FreeBSD下,這就需要內(nèi)核支持偽設(shè)備bpfilter。因此,在內(nèi)核中取消bpfilter支持,就能屏蔽tcpdump之類的網(wǎng)絡(luò)分析工具。

  并且當(dāng)網(wǎng)卡被設(shè)置為混雜模式時(shí),系統(tǒng)會(huì)在控制臺(tái)和日志文件中留下記錄,提醒管理員留意這臺(tái)系統(tǒng)是否被用作攻擊同網(wǎng)絡(luò)的其他計(jì)算機(jī)的跳板。

  May 15 16:27:20 host1 /kernel: fxp0: promiscuous mode enabled

  雖然網(wǎng)絡(luò)分析工具能將網(wǎng)絡(luò)中傳送的數(shù)據(jù)記錄下來(lái),但是網(wǎng)絡(luò)中的數(shù)據(jù)流量相當(dāng)大,如何對(duì)這些數(shù)據(jù)進(jìn)行分析、分類統(tǒng)計(jì)、發(fā)現(xiàn)并報(bào)告錯(cuò)誤卻是更關(guān)鍵的問(wèn)題。網(wǎng)絡(luò)中的數(shù)據(jù)包屬于不同的協(xié)議,而不同協(xié)議數(shù)據(jù)包的格式也不同。因此對(duì)捕獲的數(shù)據(jù)進(jìn)行解碼,將包中的信息盡可能的展示出來(lái),對(duì)于協(xié)議分析工具來(lái)講更為重要。昂貴的商業(yè)分析工具的優(yōu)勢(shì)就在于它們能支持很多種類的應(yīng)用層協(xié)議,而不僅僅只支持tcp、udp等低層協(xié)議。

  從上面tcpdump的輸出可以看出,tcpdump對(duì)截獲的數(shù)據(jù)并沒(méi)有進(jìn)行徹底解碼,數(shù)據(jù)包內(nèi)的大部分內(nèi)容是使用十六進(jìn)制的形式直接打印輸出的。顯然這不利于分析網(wǎng)絡(luò)故障,通常的解決辦法是先使用帶-w參數(shù)的tcpdump 截獲數(shù)據(jù)并保存到文件中,然后再使用其他程序進(jìn)行解碼分析。當(dāng)然也應(yīng)該定義過(guò)濾規(guī)則,以避免捕獲的數(shù)據(jù)包填滿整個(gè)硬盤(pán)。FreeBSD提供的一個(gè)有效的解碼程序?yàn)閠cpshow,它可以通過(guò)Packages Collection來(lái)安裝。

  # pkg_add /cdrom/packages/security/tcpshow*

  # tcpdump -c 3 -w tcpdump.out

  tcpdump: listening on fxp0

  # tcpshow 01:80:C2:00:00:00 type=0026

  ---------------------------------------------------------------------------

  Packet 2

  TIME:12:01:01.074513 (1.089684)

  LINK:00:A0:C9:AB:3CF -> FF:FF:FF:FF:FF:FF type=ARP

  ARP:htype=Ethernet ptype=IP hlen=6 plen=4 op=request

  sender-MAC-addr=00:A0:C9:AB:3CF sender-IP-address=202.102.245.3

  target-MAC-addr=00:00:00:00:00:00 target-IP-address=202.102.245.3

  ---------------------------------------------------------------------------

  Packet 3

  TIME:12:01:01.985023 (0.910510)

  LINK:00:10:7B:08:3A:56 -> 01:80:C2:00:00:00 type=0026

  tcpshow能以不同方式對(duì)數(shù)據(jù)包進(jìn)行解碼,并以不同的方式顯示解碼數(shù)據(jù),使用者可以根據(jù)其手冊(cè)來(lái)選擇最合適的參數(shù)對(duì)截獲的數(shù)據(jù)包進(jìn)行分析。從上面的例子中可以看出,tcpshow支持的協(xié)議也并不豐富,對(duì)于它不支持的協(xié)議就無(wú)法進(jìn)行解碼。

  除了tcpdump之外,F(xiàn)reeBSD的Packages Collecion中還提供了Ethereal和Sniffit兩個(gè)網(wǎng)絡(luò)分析工具,以及其他一些基于網(wǎng)絡(luò)分析方式的安全工具。其中Ethereal運(yùn)行在X Window 下,具有不錯(cuò)的圖形界面,Sniffit使用字符窗口形式,同樣也易于操作。然而由于tcpdump對(duì)過(guò)濾規(guī)則的支持能力更強(qiáng)大,因此系統(tǒng)管理員仍然更喜歡使用它。對(duì)于有經(jīng)驗(yàn)的網(wǎng)絡(luò)管理員,使用這些網(wǎng)絡(luò)分析工具不但能用來(lái)了解網(wǎng)絡(luò)到底是如何運(yùn)行的,故障出現(xiàn)在何處,還能進(jìn)行有效的統(tǒng)計(jì)工作,如那種協(xié)議產(chǎn)生的通信量占主要地位,那個(gè)主機(jī)最繁忙,網(wǎng)絡(luò)瓶頸位于何處等等問(wèn)題。因此網(wǎng)絡(luò)分析工具是用于網(wǎng)絡(luò)管理的寶貴系統(tǒng)工具。為了防止數(shù)據(jù)被濫用的網(wǎng)絡(luò)分析工具截獲,關(guān)鍵還是要在網(wǎng)絡(luò)的物理結(jié)構(gòu)上解決。常用的方法是使用交換機(jī)或網(wǎng)橋?qū)⑿湃尉W(wǎng)絡(luò)和不信任網(wǎng)絡(luò)分隔開(kāi),可以防止外部網(wǎng)段竊聽(tīng)內(nèi)部數(shù)據(jù)傳輸,但仍然不能解決內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)絡(luò)相互通信時(shí)的數(shù)據(jù)安全問(wèn)題。如果沒(méi)有足夠的經(jīng)費(fèi)將網(wǎng)絡(luò)上的共享集線器升級(jí)為以太網(wǎng)交換機(jī),可以使用FreeBSD系統(tǒng)執(zhí)行網(wǎng)橋任務(wù)。這需要使用option BRIDGE編譯選項(xiàng)重新定制內(nèi)核,此后使用bridge命令啟動(dòng)網(wǎng)橋功能。

  tcpdump采用命令行方式,它的命令格式為:

  tcpdump [ -adeflnNOpqStvx ] [ -c 數(shù)量 ] [ -F 文件名 ]

  [ -i 網(wǎng)絡(luò)接口 ] [ -r 文件名] [ -s snaplen ]

  [ -T 類型 ] [ -w 文件名 ] [表達(dá)式 ]

  (1). tcpdump的選項(xiàng)介紹

  -a    將網(wǎng)絡(luò)地址和廣播地址轉(zhuǎn)變成名字;

  -d    將匹配信息包的代碼以人們能夠理解的匯編格式給出;

  -dd    將匹配信息包的代碼以c語(yǔ)言程序段的格式給出;

  -ddd   將匹配信息包的代碼以十進(jìn)制的形式給出;

  -e    在輸出行打印出數(shù)據(jù)鏈路層的頭部信息;

  -f    將外部的Internet地址以數(shù)字的形式打印出來(lái);

  -l    使標(biāo)準(zhǔn)輸出變?yōu)榫彌_行形式;

  -n    不把網(wǎng)絡(luò)地址轉(zhuǎn)換成名字;

  -t    在輸出的每一行不打印時(shí)間戳;

  -v    輸出一個(gè)稍微詳細(xì)的信息,例如在ip包中可以包括ttl和服務(wù)類型的信息;

  -vv    輸出詳細(xì)的報(bào)文信息;

  -c    在收到指定的包的數(shù)目后,tcpdump就會(huì)停止;

  -F    從指定的文件中讀取表達(dá)式,忽略其它的表達(dá)式;

  -i    指定監(jiān)聽(tīng)的網(wǎng)絡(luò)接口;

  -r    從指定的文件中讀取包(這些包一般通過(guò)-w選項(xiàng)產(chǎn)生);

  -w    直接將包寫(xiě)入文件中,并不分析和打印出來(lái);

  -T    將監(jiān)聽(tīng)到的包直接解釋為指定的類型的報(bào)文,常見(jiàn)的類型有rpc (遠(yuǎn)程過(guò)程調(diào)用)和snmp(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議;)

  (2). tcpdump的表達(dá)式介紹

  表達(dá)式是一個(gè)正則表達(dá)式,tcpdump利用它作為過(guò)濾報(bào)文的條件,如果一個(gè)報(bào)文滿足表達(dá)式的條件,則這個(gè)報(bào)文將會(huì)被捕獲。如果沒(méi)有給出任何條件,則網(wǎng)絡(luò)上所有的信息包將會(huì)被截獲。在表達(dá)式中一般如下幾種類型的關(guān)鍵字。

  第一種是關(guān)于類型的關(guān)鍵字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一臺(tái)主機(jī),net 202.0.0.0 指明 202.0.0.0是一個(gè)網(wǎng)絡(luò)地址,port 23 指明端口號(hào)是23。如果沒(méi)有指定類型,缺省的類型是host.

  第二種是確定傳輸方向的關(guān)鍵字,主要包括src , dst ,dst or src, dst and src ,這些關(guān)鍵字指明了傳輸?shù)姆较颉Ee例說(shuō)明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的網(wǎng)絡(luò)地址是202.0.0.0 。如果沒(méi)有指明方向關(guān)鍵字,則缺省是src or dst關(guān)鍵字。

  第三種是協(xié)議的關(guān)鍵字,主要包括fddi,ip,arp,rarp,tcp,udp等類型。Fddi指明是在FDDI(分布式光纖數(shù)據(jù)接口網(wǎng)絡(luò))上的特定的網(wǎng)絡(luò)協(xié)議,實(shí)際上它是"ether"的別名,fddi和ether具有類似的源地址和目的地址,所以可以將fddi協(xié)議包當(dāng)作ether的包進(jìn)行處理和分析。其他的幾個(gè)關(guān)鍵字就是指明了監(jiān)聽(tīng)的包的協(xié)議內(nèi)容。如果沒(méi)有指定任何協(xié)議,則tcpdump將會(huì)監(jiān)聽(tīng)所有協(xié)議的信息包。

  除了這三種類型的關(guān)鍵字之外,其他重要的關(guān)鍵字如下:gateway, broadcast,less,greater,還有三種邏輯運(yùn)算,取非運(yùn)算是 'not ' '! ', 與運(yùn)算是'and','&&';或運(yùn)算 是'or' ,'││';這些關(guān)鍵字可以組合起來(lái)構(gòu)成強(qiáng)大的組合條件來(lái)滿足人們的需要,下面舉幾個(gè)例子來(lái)說(shuō)明。

  A想要截獲所有210.27.48.1 的主機(jī)收到的和發(fā)出的所有的數(shù)據(jù)包:

  #tcpdump host 210.27.48.1

  B想要截獲主機(jī)210.27.48.1 和主機(jī)210.27.48.2 或210.27.48.3的通信,使用命令:(在命令行中適用   括號(hào)時(shí),一定要

  #tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)

  C如果想要獲取主機(jī)210.27.48.1除了和主機(jī)210.27.48.2之外所有主機(jī)通信的ip包,使用命令:

  #tcpdump ip host 210.27.48.1 and ! 210.27.48.2

  D如果想要獲取主機(jī)210.27.48.1接收或發(fā)出的telnet包,使用如下命令:

  #tcpdump tcp port 23 host 210.27.48.1

  (3). tcpdump的輸出結(jié)果介紹

  下面我們介紹幾種典型的tcpdump命令的輸出信息

  A,數(shù)據(jù)鏈路層頭信息

  使用命令

  #tcpdump --e host ice

  ice 是一臺(tái)裝有l(wèi)inux的主機(jī),她的MAC地址是0:90:27:58:AF:1A

  H219是一臺(tái)裝有SOLARIC的SUN工作站,它的MAC地址是8:0:20:79:5B:46;上一條命令的輸出結(jié)果如下所示:

  21:50:12.847509 eth0 ice.telne

  t 0:0(0) ack 22535 win 8760 (DF)

  分析:21:50:12是顯示的時(shí)間, 847509是ID號(hào),eth0 表示從網(wǎng)絡(luò)接口設(shè)備發(fā)送數(shù)據(jù)包, 8:0:20:79:5b:46是主機(jī)H219的MAC地址,它表明是從源地址H219發(fā)來(lái)的數(shù)據(jù)包. 0:90:27:58:af:1a是主機(jī)ICE的MAC地址,表示該數(shù)據(jù)包的目的地址是ICE . ip 是表明該數(shù)據(jù)包是IP數(shù)據(jù)包,60 是數(shù)據(jù)包的長(zhǎng)度, h219.33357 > ice.telnet 表明該數(shù)據(jù)包是從主機(jī)H219的33357端口發(fā)往主機(jī)ICE的TELNET(23)端口. ack 22535 表明對(duì)序列號(hào)是222535的包進(jìn)行響應(yīng). win 8760表明發(fā)送窗口的大小是8760.

  B,ARP包的TCPDUMP輸出信息

  使用命令

  #tcpdump arp

  得到的輸出結(jié)果是:

  22:32:42.802509 eth0 > arp who-has route tell ice (0:90:27:58:af:1a)

  22:32:42.802902 eth0

  分析: 22:32:42是時(shí)間戳, 802509是ID號(hào), eth0 >表明從主機(jī)發(fā)出該數(shù)據(jù)包, arp表明是ARP請(qǐng)求包, who-has route tell ice表明是主機(jī)ICE請(qǐng)求主機(jī)ROUTE的MAC地址。 0:90:27:58:af:1a是主機(jī)ICE的MAC地址。

  C,TCP包的輸出信息

  用TCPDUMP捕獲的TCP包的一般輸出信息是:

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

  src > dst:表明從源地址到目的地址, flags是TCP包中的標(biāo)志信息,S 是SYN標(biāo)志, F (FIN), P (PUSH) , R (RST) "." (沒(méi)有標(biāo)記); data-seqno是數(shù)據(jù)包中的數(shù)據(jù)的順序號(hào), ack是下次期望的順序號(hào), window是接收緩存的窗口大小, urgent表明數(shù)據(jù)包中是否有緊急指針. Options是選項(xiàng).

  D,UDP包的輸出信息

  用TCPDUMP捕獲的UDP包的一般輸出信息是:

  route.port1 > ice.port2: udp lenth

  UDP十分簡(jiǎn)單,上面的輸出行表明從主機(jī)ROUTE的port1端口發(fā)出的一個(gè)UDP數(shù)據(jù)包到主機(jī)ICE的port2端口,類型是UDP, 包的長(zhǎng)度是lenth

  以上就是關(guān)于linux系統(tǒng)Tcpdump命令的使用方法了,想必都了解了吧,更多相關(guān)內(nèi)容請(qǐng)繼續(xù)關(guān)注愛(ài)站技術(shù)頻道。

標(biāo)簽: linux 安全 代碼 腳本 通信 網(wǎng)絡(luò)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:怎樣調(diào)試php及安裝配置?

下一篇:怎樣設(shè)置每個(gè)站點(diǎn)的IIS權(quán)限?