讲解Linux中tcpdump工具的应用

2016-03-31 15:19 8 1 收藏

下面请跟着图老师小编一起来了解下讲解Linux中tcpdump工具的应用,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

【 tulaoshi.com - 服务器 】

讲解Linux中tcpdump工具的应用

   先来看一个比较基本的用法:

  复制代码

  代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  tcpdump -i eth0

  其中,eth0为参数值,表示需要抓包的网口,这是个必需参数哦。

  tcpdump的具体参数及意义:

  -i:指定tcpdump监听的网络接口

  -s:指定要监听数据包的长度

  -c:指定要监听的数据包数量,达到指定数量后自动停止抓包

  -w:指定将监听到的数据包写入文件中保存

  -A:指定将每个监听到的数据包以ACSII可见字符打印

  -n:指定将每个监听到数据包中的域名转换成IP地址后显示

  -nn:指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示

  -e:指定将监听到的数据包链路层的信息打印出来,包括源mac和目的mac,以及网络层的协议

  -p:将网卡设置为非混杂模式,不能与host或broadcast一起使用

  -r:指定从某个文件中读取数据包

  -S:指定打印每个监听到的数据包的TCP绝对序列号而非相对序列号

  tcpdump支持很多的关键字,下面先看几个例子:

  (例1)tcpdump -i eth0 host 192.168.0.250 ----- 在网口eth0上抓取主机地址为192.168.0.250的所有数据包 。

  (例2)tcpdump -i eth0 net 192.168.0.0/24 ------ 在网口eth0上抓取网络地址为192.168.0.0/24的所有数据包

  (例3)tcpdump -i eth0 port 80 ------ 在网口eth0上抓取端口为80的所有数据包(注意,这里不区分是源端口还是目的端口)

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  当然,我们也可以指定源端口或目的端口

  (例4)tcpdump -i eth0 src port 80 and dst port 6100 --- 在网口eth0上抓取源端口为80且目的端口为6100的数据包,这里用到了and逻辑运算符

  (例5)tcpdump -i eth0 icmp --- 在网口eth0上抓取所有icmp协议的数据包

  以上几个例子,可以大致体现出tcpdump的基本用法。

  实际上,tcpdump主要包括三种类型的关键字,第一种是关于类型的关键字,主要包括host,net,port,如上面的例(1)(2)(3),第二种

  是确定传输方向的关键字,主要包括src,dst,src or dst,src and dst,这些关键字指明了传输的方向,如上面的例(4)。第三种是协议关键字,包括fddi,ip,arp,

  rarp,tcp,udp,imcp等,如上面的例(5)。

  除了这三种类型的关键字外,还有其他重要的关键字,如:gateway,broadcast,less,greater,还有三种逻辑运算,取非运算是'not'、'!',与运算符是'and'、'&&'、

  或运算符是'or'、'||',这些关键字可以组合起来构成强大的组合条件来满足我们的需求。

  借助tcpdump统计http请求

  这里所说的统计http请求,是指统计QPS(每秒请求数),统计前十条被访问最多的url。一般做这样的统计时,我们经常会使用网站访问日志来统计。当我们来到一个陌生的服务器环境,需要立即统计当前前十条被访问最多的url,来初步确定是否存在攻击行为,使用tcpdump则简单得多,因为我们不需要关心网站日志在哪,不需要考虑网站日志有没有开启之类的问题,直接用tcpdump捕捉当前的http包,再进一步过滤,就会得出我们想要的统计。此功能已集成到EZHTTP,下面是效果图:

20151028102323743.png (571×593)

  下面介绍其统计方法。

  1、捕捉10秒的数据包。

  复制代码

  代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  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。

  复制代码

  代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  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:

  复制代码

  代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  (( qps=$(wc -l /tmp/url.txt | cut -d' ' -f 1) / 10 ))

  排除静态文件统计前10访问url:

  复制代码

  代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  grep -v -i -E ".(gif|png|jpg|jpeg|ico|js|swf|css)" /tmp/url.txt | sort | uniq -c | sort -nr | head -n 10

来源:http://www.tulaoshi.com/n/20160331/2050365.html

延伸阅读
当我们用Linux的桌面环境的时候,有时屏幕发生偏移或分辩率太低,解决办法总共有两个,一个是安装显示卡的以驱动,另一个方法是通过xorg-x11软件包所提供的工具 gtf 来调整。 一、显示设置的管理工具 在Fedora 中,显示器和显示卡的配置工具是 system-config-display,存在于软件包system-config-display中,如果您没有这个命令或者在菜单...
标签: 服务器
Linux用户系统中的群组与群组管理员讲解   关于群组: 有效与初始群组、groups, newgrp 代码如下: # /etc/group 这个档案就是在记录 GID 与群组名称的对应了~我的 /etc/group 内容有点像这样: 代码如下: root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,b...
标签: 电脑入门
libvirt是Linux下的虚拟化工具,支持各种虚拟机监控程序,那么要怎么安装虚拟化工具libvirt呢?下面图老师小编就给大家介绍下如何在Linux上安装libvirt虚拟化工具,一起来了解下吧。 安装步骤: by TANG Jia 本测试通过的版本号为:ubuntu12.04、libvirt1.1.2 安装libvirt: 1,安装virtinst apt get installvirtinst 安装libv...
  出处: 中科院计算所软件室 本文讲述Linux环境下,如何使用备份的脚本和命令以及商业化的软件来合理高效地保护磁盘数据安全。 备份与恢复系统承担着事前备份与事后恢复的职能。在当前高速发展的网络环境下,任何一个网络上的信息 系统都不可能保证绝对的安全。只要有网络存在,就会有来自网络的形形色色的威胁。为了抵御网络...
标签: 电脑入门
Linux下的su命令主要用于切换用户,可将普通用户与超级用户相互切换,那么su命令有哪些用途呢?使用su命令后,其他用户是否还在呢?下面随图老师小编一起来看看Linux下su命令的实例讲解吧。 原问: linux中,我以root登录,和以其他用户登录然后使用su命令切换至root用户,有什么不一样,如果一样的话,我执行su命令之后,其他的用户还在...

经验教程

928

收藏

74
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部