Ubuntu系統(tǒng)中安裝使用tcpdump來統(tǒng)計HTTP請求

安裝
tcpdump的安裝還是比較討厭的...
1.網(wǎng)上下載獲得libpcap和tcpdump
http://www.tcpdump.org/
2.安裝c編譯所需包:
3.安裝 libpcap的前置:
4.安裝libpcap。
tcpdump的使用必須有這庫。
tar xvfz libpcap-1.2.1.tar.gz //解壓
進(jìn)入解壓之后的文件目錄 運(yùn)行
./configure //生成makefile文件
make //進(jìn)行編譯
make install //安裝
庫文件默認(rèn)安裝在目錄 /usr/lib,頭文件默認(rèn)安裝在 /usr/include
5.安裝tcpdump
tar xvfz tcpdump.4.2.1.tar.gz //解壓
進(jìn)入解壓之后的文件目錄 運(yùn)行
./configure //生成makefile文件
make //進(jìn)行編譯
make install //安裝 庫文件默認(rèn)安裝在目錄 /usr/lib,頭文件默認(rèn)安裝在 /usr/include
測試是否成功安裝:命令行輸入 tcpdump有網(wǎng)絡(luò)信息顯示!!
6.可能遇到的問題:
#tcpdump
#tcpdump: no suitable device found
原因:網(wǎng)絡(luò)監(jiān)聽需要root權(quán)限,切換到root用戶下就可以正常使用了。
借助tcpdump統(tǒng)計http請求
這里所說的統(tǒng)計http請求,是指統(tǒng)計QPS(每秒請求數(shù)),統(tǒng)計前十條被訪問最多的url。一般做這樣的統(tǒng)計時,我們經(jīng)常會使用網(wǎng)站訪問日志來統(tǒng)計。當(dāng)我們來到一個陌生的服務(wù)器環(huán)境,需要立即統(tǒng)計當(dāng)前前十條被訪問最多的url,來初步確定是否存在攻擊行為,使用tcpdump則簡單得多,因?yàn)槲覀儾恍枰P(guān)心網(wǎng)站日志在哪,不需要考慮網(wǎng)站日志有沒有開啟之類的問題,直接用tcpdump捕捉當(dāng)前的http包,再進(jìn)一步過濾,就會得出我們想要的統(tǒng)計。此功能已集成到EZHTTP,下面是效果圖:
下面介紹其統(tǒng)計方法。
1、捕捉10秒的數(shù)據(jù)包。
tcpdump -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x504f -w /tmp/tcp.cap -s 512 2>&1 &
sleep 10
kill `ps aux | grep tcpdump | grep -v grep | awk '{print $2}'`
此命令表示監(jiān)控網(wǎng)卡eth0,捕捉tcp,且21-22字節(jié)字符為GE或者PO,表示匹配GET或者POST請求的數(shù)據(jù)包,并寫到/tmp/tcp.cap文件。
2、這時候我們得到最新10秒的二進(jìn)制數(shù)據(jù)包文件,我們下一步就是通過strings命令來找出GET/POST的url以及Host。
strings /tmp/tcp.cap | grep -E "GET /|POST /|Host:" | grep --no-group-separator -B 1 "Host:" | grep --no-group-separator -A 1 -E "GET /|POST /" | awk '{url=$2;getline;host=$2;printf ("%s\n",host""url)}' > url.txt
此命令是本文的關(guān)鍵,通過strings顯示二進(jìn)制文件tcp.cap所有可打印字符,然后通過grep和awk過濾出http請求,并把拼接得到的url(包括域名+uri)寫進(jìn)一個文件url.txt。
3、這時我們拿到了近10秒鐘所有的訪問url,接下來的統(tǒng)計就容易得出,比如:
統(tǒng)計QPS:
(( qps=$(wc -l /tmp/url.txt | cut -d' ' -f 1) / 10 ))
排除靜態(tài)文件統(tǒng)計前10訪問url:
grep -v -i -E "\.(gif|png|jpg|jpeg|ico|js|swf|css)" /tmp/url.txt | sort | uniq -c | sort -nr | head -n 10
相關(guān)文章
- 這篇文章主要介紹了linux tcpdump抓取HTTP包的詳細(xì)解釋,需要的朋友可以參考下2018-02-17
TCPDUMP(網(wǎng)絡(luò)數(shù)據(jù)采集分析工具) v4.7.4 linux 免費(fèi)版
TcpDump是一款網(wǎng)絡(luò)數(shù)據(jù)采集分析工具,將網(wǎng)絡(luò)中傳送的數(shù)據(jù)包的“頭”完全截獲下來提供分析,提供了源代碼,公開了接口,因此具備很強(qiáng)的可擴(kuò)展性,對于網(wǎng)絡(luò)維護(hù)和入侵者都是2017-06-08- 本文檔主要講述的是tcpdump抓包分析詳解;希望本文檔會給有需要的朋友帶來幫助;感興趣的朋友可以過來看看2017-03-24
Linux系統(tǒng)中網(wǎng)絡(luò)數(shù)據(jù)存儲工具命令TcpDump的使用教程
這篇文章主要介紹了Linux系統(tǒng)中TcpDump網(wǎng)絡(luò)數(shù)據(jù)存儲工具命令使用教程,TcpDump主要用于轉(zhuǎn)儲網(wǎng)絡(luò)上的數(shù)據(jù)流,需要的朋友可以參考下2016-04-05- 這篇文章主要介紹了Linux中tcpdump工具的應(yīng)用,tcpdump主要用于抓取網(wǎng)絡(luò)數(shù)據(jù)包,需要的朋友可以參考下2015-10-28
Linux網(wǎng)絡(luò)抓包工具tcpdump超級詳解
這篇文章主要介紹了Linux網(wǎng)絡(luò)抓包工具tcpdump超級詳解,本文用超長的篇幅講解了tcpdump的方方面,需要的朋友可以參考下2015-06-15- tcpdump是一個用于截取網(wǎng)絡(luò)分組,并輸出分組內(nèi)容的工具,簡單說就是數(shù)據(jù)包抓包工具。下面小編就為大家分享Linux的命令行下抓包工具tcpdump的使用方法,大家一起來看看吧2019-07-28
Linux tcpdump命令的用法詳解(內(nèi)容較多)
本文詳細(xì)介紹下,linux中有關(guān)tcpdump命令的用法,一個可以根據(jù)使用者的定義對網(wǎng)絡(luò)上的數(shù)據(jù)包進(jìn)行截獲的包分析工具,感興趣的朋友參考下2013-11-20- 在傳統(tǒng)的網(wǎng)絡(luò)分析和測試技術(shù)中,嗅探器(sniffer)是最常見,也是最重要的技術(shù)之一,本文將介紹Linux下抓包工具tcpdump使用,需要的朋友可以參考下2012-11-30
- 最近遇到一些linux服務(wù)器的問題,需要使用到抓包分析。從這篇文章學(xué)了一些很實(shí)用的技巧。以此記錄2019-07-28