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

   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

时间: 2024-11-03 14:21:29

Ubuntu系统中安装使用tcpdump来统计HTTP请求的相关文章

在Debian/Ubuntu系统中安装*.sh与*.bin文件

在Debian/Ubuntu系统中安装*.sh与*.bin文件的基本方法. 一,安装*.sh文件 运行命令行至文件目录下,执行:sudo sh *.sh直接运行 在命令行中执行:sudo chmod +x *.sh 再输入sudo ./*.sh可安装到任意目录,./*.sh可安装到当前用户有权限的目录. 二,安装*.bin文件 运行命令行至文件目录下 在命令行中执行:sudo chmod +x *.bin 再输入sudo ./*.bin可安装到任意目录,./*.bin可安装到当前用户有权限的目录

Debian/Ubuntu系统中安装和配置UFW-简单的防火墙

自从计算机互连后,各种服务迅速发展.用户使用的电子邮件.社交媒体.在线商城.即时聊天甚至网络会议等服务如雨后春笋般涌现.但从另一方面来说,这些连接服务也具有双刃剑,比如它们当中的病毒.恶意软件.特洛伊木马等会向计算机发送恶意消息. 安装 UFW 防火墙 作为最大的计算机网络,互联网上可并不都是善意的用户.因此,为了确保我们的计算机或服务器安全,我们需要进行保护. 在你的计算机或服务器上一个必须有的组件就是防火墙.在维基百科中,其定义是: 防火墙是计算机中一款应用软件或基于硬件的网络安全系统.它根

Ubuntu系统中安装MySQL

MySQL名字的来历MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购.MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为http://www.aliyun.com/zixun/aggregation/8613.html">网站数据库. 与其他的大型数据库例如Oracle.DB2.SQL Server

在Ubuntu系统中安装JDK 6的步骤方法

Ubuntu下安装JDK最简单方式就是用apt-get install 命令了,但这样安装的JDK往往不是最新版,要安装最新的JDK还需要到sun的http://www.aliyun.com/zixun/aggregation/11307.html">官方网站下载.但sun的网站只有rpm和bin两种格式,并没有Ubuntu使用的deb格式,这就需要我们使用ubuntu的转换工具了.我们可以下载bin格式的,最新的jdk文件是: jdk-6u13-linux-i586.bin 对于 Lin

ubuntu系统中安装mysql5.6(通过二进制)_Mysql

一.首先下载解压 wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz mv mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql 二.创建目录和用户 1.创建mysql目录 mkdir -p /mysql/data ---数据目录 mkdir -p /mysql/log ---日志目录 2.创建用户 groupadd

Ubuntu系统中安装编译环境和OpenGL图形驱动

安装编译环境和OpenGL图形驱动,为安装geant4做基础准备. 1.安装基本编译环境 sudo apt-get install build-essential 2.安裝OpenGL Library sudo apt-get install libgl1-mesa-dev 3.安裝OpenGL Utilities sudo apt-get install libglu1-mesa-dev OpenGL Utilities 是一組建構於 OpenGL Library 之上的工具組,提供許多很方便

在Ubuntu系统中安装MariaDB数据库的教程_mariadb

MariaDB是一个开源数据库且100%与MySQL兼容,目标是替代MySQL数据库.MariaDB的背景 : 2008年,MySQL被后来被Oracle在2010年收购的Sun Microsystems收购了. 最初被Sun公司的收购由于符合项目的需要而受到MySQL社区的欢呼,但是这种情绪并没有持续太久,接下来被Oracle的收购,不幸期望远远低于预期.许多MySql的开发者离开了Sun和Oracle公司开始新的项目.在他们中间就有MySQL的创建者以及项目长期技术带头人之一的Michael

ubuntu系统中安装editplus的方法

在ubuntu下我们用命令安装就行了 sudo apt-get install wine 然后在命令控制端输入以下命令来获取EditPlus的最新安装文件,放到你要安装的目录里.原文中下载的是epp231版本,但是现在已经到ep3了,所以,我们下载最新的 wget ftp://ftp.editplus.com/ep3setup.exe 然后要做的就是安装了,安装使用wine的命令,如下 wine ./ep3setup.exe 执行完这条命令,你也会看到安装步骤了,和windows下一样的 我这边

Ubuntu系统中安装vim与中文帮助文档

在Windows下面玩的Vim,搬到Ubuntu上面之后感觉Vi用着特别别扭(尤其是剪切板上面的东西无法paste在Vi中...)于是乎...打算把Vi改装成Vim,这样也许就会好多了.废话不多说,开始行动.其实很简单: 1:打开命令行敲击下面命令(下载安装带有剪切板功能的Vim): sudo apt-get install vim-gui-common 2:搞定了... ... ...现在再用Vi或者Vim命令编辑某个文件的话熟悉的界面又回来了.下面我们开始安装中文帮助文档.首先我们下载Vim