Ubuntu系统中安装使用tcpdump来统计HTTP请求
Linux运维日志 发布时间:2016-04-21 11:52:05 作者:朱茂海 我要评论
这篇文章主要介绍了Ubuntu系统中安装使用tcpdump来统计HTTP请求,tcpdump一般被用来捕捉HTTP包,于是这里就想到了用其来统计网站上url的访问数,需要的朋友可以参考下
安装
tcpdump的安装还是比较讨厌的...
1.网上下载获得libpcap和tcpdump
http://www.tcpdump.org/
2.安装c编译所需包:
复制代码
代码如下:apt-get install build-essential
3.安装 libpcap的前置:
复制代码
代码如下:apt-get install flex,apt-get install bison
4.安装libpcap。
tcpdump的使用必须有这库。
复制代码
代码如下:tar xvfz libpcap-1.2.1.tar.gz //解压
进入解压之后的文件目录 运行
复制代码
代码如下:./configure //生成makefile文件
make //进行编译
make install //安装
库文件默认安装在目录 /usr/lib,头文件默认安装在 /usr/include
5.安装tcpdump
复制代码
代码如下:tar xvfz tcpdump.4.2.1.tar.gz //解压
进入解压之后的文件目录 运行
复制代码
代码如下:./configure //生成makefile文件
make //进行编译
make install //安装 库文件默认安装在目录 /usr/lib,头文件默认安装在 /usr/include
测试是否成功安装:命令行输入 tcpdump有网络信息显示!!
6.可能遇到的问题:
复制代码
代码如下:#tcpdump
#tcpdump: no suitable device found
原因:网络监听需要root权限,切换到root用户下就可以正常使用了。
借助tcpdump统计http请求
这里所说的统计http请求,是指统计QPS(每秒请求数),统计前十条被访问最多的url。一般做这样的统计时,我们经常会使用网站访问日志来统计。当我们来到一个陌生的服务器环境,需要立即统计当前前十条被访问最多的url,来初步确定是否存在攻击行为,使用tcpdump则简单得多,因为我们不需要关心网站日志在哪,不需要考虑网站日志有没有开启之类的问题,直接用tcpdump捕捉当前的http包,再进一步过滤,就会得出我们想要的统计。此功能已集成到EZHTTP,下面是效果图:
下面介绍其统计方法。
1、捕捉10秒的数据包。
复制代码
代码如下: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}'`
此命令表示监控网卡eth0,捕捉tcp,且21-22字节字符为GE或者PO,表示匹配GET或者POST请求的数据包,并写到/tmp/tcp.cap文件。
2、这时候我们得到最新10秒的二进制数据包文件,我们下一步就是通过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
此命令是本文的关键,通过strings显示二进制文件tcp.cap所有可打印字符,然后通过grep和awk过滤出http请求,并把拼接得到的url(包括域名+uri)写进一个文件url.txt。
3、这时我们拿到了近10秒钟所有的访问url,接下来的统计就容易得出,比如:
统计QPS:
复制代码
代码如下:(( qps=$(wc -l /tmp/url.txt | cut -d' ' -f 1) / 10 ))
排除静态文件统计前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
相关文章
- 这篇文章主要介绍了linux tcpdump抓取HTTP包的详细解释,需要的朋友可以参考下2018-02-17
TCPDUMP(网络数据采集分析工具) v4.7.4 linux 免费版
TcpDump是一款网络数据采集分析工具,将网络中传送的数据包的“头”完全截获下来提供分析,提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是2017-06-08- 本文档主要讲述的是tcpdump抓包分析详解;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看2017-03-24
Linux系统中网络数据存储工具命令TcpDump的使用教程
这篇文章主要介绍了Linux系统中TcpDump网络数据存储工具命令使用教程,TcpDump主要用于转储网络上的数据流,需要的朋友可以参考下2016-04-05- 这篇文章主要介绍了Linux中tcpdump工具的应用,tcpdump主要用于抓取网络数据包,需要的朋友可以参考下2015-10-28
- 这篇文章主要介绍了Linux网络抓包工具tcpdump超级详解,本文用超长的篇幅讲解了tcpdump的方方面,需要的朋友可以参考下2015-06-15
- tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具。下面小编就为大家分享Linux的命令行下抓包工具tcpdump的使用方法,大家一起来看看吧2019-07-28
- 本文详细介绍下,linux中有关tcpdump命令的用法,一个可以根据使用者的定义对网络上的数据包进行截获的包分析工具,感兴趣的朋友参考下2013-11-20
- 在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一,本文将介绍Linux下抓包工具tcpdump使用,需要的朋友可以参考下2012-11-30
- 最近遇到一些linux服务器的问题,需要使用到抓包分析。从这篇文章学了一些很实用的技巧。以此记录2019-07-28
最新评论