首页操作系统Ubuntu系统中安装使用tcpdump来统计HTTP请求

Ubuntu系统中安装使用tcpdump来统计HTTP请求

时间2024-03-13 05:06:03发布访客分类操作系统浏览297
导读:收集整理的这篇文章主要介绍了Ubuntu系统中安装使用tcpdump来统计HTTP请求,觉得挺不错的,现在分享给大家,也给大家做个参考。 安装tcpdump的安装还是比较讨厌的...1.网上下载获得libpcap和tcpdumph...
收集整理的这篇文章主要介绍了Ubuntu系统中安装使用tcpdump来统计HTTP请求,觉得挺不错的,现在分享给大家,也给大家做个参考。

安装
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

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu系统中安装使用tcpdump来统计HTTP请求
本文地址: https://pptw.com/jishu/647780.html
Ubuntu14.04下ssh安装,基本操作及无密码登陆分享 Ubuntu下无线网卡搜索不到信号怎么办?

游客 回复需填写必要信息