<fieldset id='64d1o'></fieldset>

        1. <acronym id='64d1o'><em id='64d1o'></em><td id='64d1o'><div id='64d1o'></div></td></acronym><address id='64d1o'><big id='64d1o'><big id='64d1o'></big><legend id='64d1o'></legend></big></address>
          <i id='64d1o'></i>
        2. <tr id='64d1o'><strong id='64d1o'></strong><small id='64d1o'></small><button id='64d1o'></button><li id='64d1o'><noscript id='64d1o'><big id='64d1o'></big><dt id='64d1o'></dt></noscript></li></tr><ol id='64d1o'><table id='64d1o'><blockquote id='64d1o'><tbody id='64d1o'></tbody></blockquote></table></ol><u id='64d1o'></u><kbd id='64d1o'><kbd id='64d1o'></kbd></kbd>
        3. <span id='64d1o'></span>

          <i id='64d1o'><div id='64d1o'><ins id='64d1o'></ins></div></i><dl id='64d1o'></dl>

        4. <ins id='64d1o'></ins>

          <code id='64d1o'><strong id='64d1o'></strong></code>

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

          • 时间:
          • 浏览:8
          • 来源:124软件资讯网

              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 ("%sn",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