歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Tcpdump的小經驗

Tcpdump的小經驗

日期:2017/2/27 14:30:24   编辑:更多Linux
  網上的東西都是這樣,介紹軟件,參數的多,實例的很少。 很多時候,我們有了軟件的參數使用方法,但是還是不是很明白,領會。今天,我在用網路崗監控的時候,看到裡面監控的僅僅是些常用的網絡服務器形式,80,郵件,FTP,功能太下載。這個監控上網內容還可以,要分析些網絡事件,無能為力了。 於是,我想到,一般局域網中怕的就是木馬,病毒,發送垃圾數據包,常常堵塞網絡。 於是,我就想起用tcpdump來試試看,畢竟很多軟件都是靠他來監控的。試試牛刀了 先 tcpdump 一看,信息太多。 想了想我要做的是什麼,主要是想看看,局域網中訪問internet那些東西,跟那些機器有連接,而且要探測不明鏈接。從而可以發現是否有木馬,病毒一些在作怪! tcpdump dst net not 192.168.123.0/24 不監視跟網內機子的鏈接,過濾很多信息。迅速進入主題, 不想看發郵件的情況,一般的80網頁訪問,domain訪問,還有要排除網內已有服務器的一些端口。 tcpdump dst net not 192.168.123.0/24 and dst port not \( www or 25 or 110 or 5000 or domain \) and src port ! \( 4011 or 4010 or 4009 \) 這樣的話看到的信息就相對少了很多,這個時候就可以看到一些不常見的鏈接了,對發現木馬和病毒會有一定的幫助。 相信大家看過tcpdump的用法,過濾表達式應該不難理解。 我也就解釋下吧,高手就不用看了。 dst net not 192.168.123.0/24 不監視與網內機器的連接 dst port not \( www or 25 or 110 or 5000 or domain \) 過濾與internet中運行 目標端口的連接,不顯示訪問網頁,郵件,查詢DNS的這些連接 src port ! \( 4011 or 4010 or 4009 \) 這個主要是因為 裝有虛擬局域網軟件,網內服務器與外面分部的連接,不需要顯示。 當然這裡的端口可以根據實際情況換掉 接下來,我(隔了一天接著寫)我從看到的信息裡面發現有頻繁連接外面5050的連接,Google搜索了下5050是什麼端口,發現跟dudu.com中的一個軟件有關系。接著我又開個term,tcpdump dst port 5050 ,這樣又可以同時看到那些具體連接外面5050端口的機子。我的過程中就發現只有一台機子更這個聯系。最後在那台機子上果然發現以前安裝的一個dudu校友錄軟件的服務在後台運行。 通過這個經歷,發現tcpdump果然很強大,只要靈活運用,作用還真的很大。雖然,我寫的帖子沒有什麼深奧的地方,也很簡單。 之所以寫這個東西,不是來說明什麼,只是想對一些想了解卻總不明白的兄弟一點點啟發。 要舉一反三哦 Linux下網絡分析例解 Linux作為網絡服務器,特別是作為路由器和網關時,數據的采集和分析是必不可少的。所以,今天我們就來看看Linux中強大的網絡數據采集分析工具 ——TcpDump。 顧名思義,TcpDump可以將網絡中傳送的數據包的“頭”完全截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾,並提供and、 or、not等邏輯語句來幫助你去掉無用的信息。和Linux終端狀態下的其他軟件一樣,TcpDump也是依靠參數來工作,本文將結合實例來說明。數據過濾不帶任何參數的TcpDump將搜索系統中所有的網絡接口,並顯示它截獲的所有數據,這些數據對我們不一定全都需要,而且數據太多不利於分析。所以,我們應當先想好需要哪些數據,TcpDump提供以下參數供我們選擇數據: -b 在數據-鏈路層上選擇協議,包括ip、arp、rarp、ipx都是這一層的。 例如:tcpdump -b arp 將只顯示網絡中的arp即地址轉換協議信息。 -i 選擇過濾的網絡接口,如果是作為路由器至少有兩個網絡接口,通過這個選項,就可以只過濾指定的接口上通過的數據。例如: tcpdump -i eth0 只顯示通過eth0接口上的所有報頭。


src、 dst、port、host、net、ether、gateway這幾個選項又分別包含src、dst 、port、host、net、ehost等附加選項。他們用來分辨數據包的來源和去向,src host 192.168.0.1指定源主機IP地址是192.168.0.1,dst net 192.168.0.0/24指定目標是網絡192.168.0.0。以此類推,host是與其指定主機相關無論它是源還是目的,net是與其指定網絡相關的,ether後面跟的不是IP地址而是物理地址,而gateway則用於網關主機。可能有點復雜,看下面例子就知道了: tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24 過濾的是源主機為192.168.0.1與目的網絡為192.168.0.0的報頭。 tcpdump ether src 00:50:04:BA:9B and dst…… 過濾源主機物理地址為XXX的報頭(為什麼ether src後面沒有host或者net?物理地址當然不可能有網絡喽)。 Tcpdump src host 192.168.0.1 and dst port not telnet 過濾源主機192.168.0.1和目的端口不是telnet的報頭。 ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第一個參數的位置,用來過濾數據報的類型。例如: tcpdump ip src…… 只過濾數據-鏈路層上的IP報頭。 tcpdump udp and src host 192.168.0.1 只過濾源主機192.168.0.1的所有udp報頭。 數據顯示/輸入輸出 TcpDump提供了足夠的參數來讓我們選擇如何處理得到的數據,如下所示: -l 可以將數據重定向。 如tcpdump -l >tcpcap.txt將得到的數據存入tcpcap.txt文件中。 -n 不進行IP地址到主機名的轉換。如果不使用這一項,當系統中存在某一主機的主機名時,TcpDump會把IP地址轉換為主機名顯示,就像這樣:eth0 < ntc9.1165> router.domain.net.telnet,使用-n後變成了:eth0 < 192.168.0.9.1165 > 192.168.0.1.telnet。 -nn 不進行端口名稱的轉換。 上面這條信息使用-nn後就變成了:eth0 < ntc9.1165 > router.domain.net.23。 -N 不打印出默認的域名。 還是這條信息-N 後就是:eth0 < ntc9.1165 > router.telnet。 -O 不進行匹配代碼的優化。 -t 不打印UNIX時間戳,也就是不顯示時間。 -tt 打印原始的、未格式化過的時間。 -v 詳細的輸出,也就比普通的多了個TTL和服務類型。好了,說了這麼多,是不是覺得TcpDump這個工具很好?它還有好多功能限於篇幅不能一一介紹,多讀一讀“幫助”都會有很大的收獲,這也算是進入 Linux世界的一條捷徑吧。



-t 不打印UNIX時間戳,也就是不顯示時間。 -tt 打印原始的、未格式化過的時間。 -v 詳細的輸出,也就比普通的多了個TTL和服務類型。好了,說了這麼多,是不是覺得TcpDump這個工具很好?它還有好多功能限於篇幅不能一一介紹,多讀一讀“幫助”都會有很大的收獲,這也算是進入 Linux世界的一條捷徑吧。



Copyright © Linux教程網 All Rights Reserved