逍遥一派 发表于 2015-1-18 11:40:22

Linux制作之Linux下的sniffer工具--Tcpdump的安装和利用仓酷云

讨论什么版本好并无意义,关键是你是不是真心想学.不过,为了避免曲高和寡,最好选用的人多的版本。
在现在浩瀚的黑客手艺中,嗅探器(sniffer)是最多见,也是最主要的手艺之一。用过windows平台上的sniffer工具(比方,netxray和snifferpro软件)的伴侣大概都晓得,在共享式的局域网中,接纳sniffer工具几乎能够对收集中的一切流量一清二楚!Sniffer工具实践上就是一个收集上的抓包工具,同时还能够对抓到的包举行剖析。因为在共享式的收集中,信息包是会播送到收集中一切主机的收集接口,只不外在没有利用sniffer工具之前,主机的收集设备会判别该信息包是不是应当吸收,如许它就会丢弃不该该吸收的信息包,sniffer工具却使主机的收集设备吸收一切抵达的信息包,如许就到达了收集监听的效果。实在,sniffer工具既能够合适于黑客的利用,也一样有益于收集办理员和收集程序员。关于收集办理职员来讲,利用嗅探器能够随时把握收集的实践情形,在收集功能急剧下落的时分,能够经由过程sniffer工具来剖析缘故原由,找出形成收集堵塞的来历。关于收集程序员来讲,经由过程sniffer工具来调试程序。
  上面就向人人先容一个在linux下优异的嗅探器-------tcpdump.(我们上面的操纵都在redhat6.2linux2.2.14的情况中经由实践测试.)


一.Tcpdump的安装
  在linux下tcpdump的安装非常复杂,一样平常由两种安装体例。一种是以rpm包的情势来举行安装。别的一种是以源程序的情势安装。
  1.rpm包的情势安装
  这类情势的安装是最复杂的安装办法,rpm包是将软件编译后打包成二进制的格局,经由过程rpm命令能够间接安装,不必要修正任何工具。以超等用户登录,利用命令以下:
    #rpm-ivhtcpdump-3_4a5.rpm
  如许tcpdump就顺遂地安装到你的linux体系中。怎样,很复杂吧。
  2.源程序的安装
  既然rpm包的安装很复杂,为何还要接纳对照庞大的源程序安装呢?实在,linux一个最年夜的诱人的地方就是在她下面有良多软件是供应源程序的,人们能够修正源程序来满意本人的特别的必要。以是我出格倡议伴侣们都接纳这类源程序的安装办法。
  ·第一步获得源程序在源程序的安装体例中,我们起首要获得tcpdump的源程序分发包,这类分发包有两种   情势,一种是tar紧缩包(tcpdump-3_4a5.tar.Z),另外一种是rpm的分发包(tcpdump-3_4a5.src.rpm)。这两种   情势的内容都是一样的,分歧的仅仅是紧缩的体例.tar的紧缩包可使用以下命令解开:
     #tarxvfztcpdump-3_4a5.tar.Z
    rpm的包可使用以下命令安装:
     #rpm-ivhtcpdump-3_4a5.src.rpm
    如许就把tcpdump的源代码解压到/usr/src/redhat/SOURCES目次下.

  ·第二步做好编译源程序前的筹办举动
   在编译源程序之前,最好已断定库文件libpcap已安装终了,这个库文件是tcpdump软件所需的库文件   。一样,你同时还要有一个尺度的c言语编译器。在linux下尺度的c言语编译器通常为gcc。在tcpdump的   源程序目次中。有一个文件是Makefile.in,configure命令就是从Makefile.in文件中主动发生Makefile文   件。在Makefile.in文件中,能够依据体系的设置来修正BINDEST和MANDEST这两个宏界说,缺省值是
     BINDEST=@sbindir@
     MANDEST=@mandir@
   第一个宏值标明安装tcpdump的二进制文件的路径名,第二个标明tcpdump的man匡助页的路径名,你能够修   改它们来满意体系的需求。

  ·第三步编译源程序
   利用源程序目次中的configure剧本,它从体系中读出各类所需的属性。而且依据Makefile.in文件主动生   成Makefile文件,以便编译利用.make命令则依据Makefile文件中的划定规矩编译tcpdump的源程序。利用make   install命令安装编译好的tcpdump的二进制文件。
   总结一下就是:
     #tarxvfztcpdump-3_4a5.tar.Z
     #viMakefile.in
     #./configure
     #make
     #makeinstall

二.Tcpdump的利用
  tcpdump接纳命令行体例,它的命令格局为:
  tcpdump[-adeflnNOpqStvx][-c数目][-F文件名]
          [-i收集接口][-r文件名][-ssnaplen]
          [-T范例][-w文件名][表达式]

  1.tcpdump的选项先容
   -a   将收集地点和播送地点变化成名字;
   -d   将婚配信息包的代码以人们可以了解的汇编格局给出;
   -dd   将婚配信息包的代码以c言语程序段的格局给出;
   -ddd   将婚配信息包的代码以十进制的情势给出;
   -e   在输入行打印出数据链路层的头部信息;
   -f   将内部的Internet地点以数字的情势打印出来;
   -l   使尺度输入变成缓冲行情势;
   -n   不把收集地点转换成名字;
   -t   在输入的每行不打印工夫戳;
   -v   输入一个略微具体的信息,比方在ip包中能够包含ttl和服务范例的信息;
   -vv   输入具体的报文信息;
   -c   在收到指定的包的数量后,tcpdump就会中断;
   -F   从指定的文件中读取表达式,疏忽别的的表达式;
   -i   指定监听的收集接口;
   -r   从指定的文件中读取包(这些包一样平常经由过程-w选项发生);
   -w   间接将包写进文件中,其实不剖析和打印出来;
   -T   将监听到的包间接注释为指定的范例的报文,罕见的范例有rpc(远程历程挪用)和snmp(复杂       收集办理协定;)

  2.tcpdump的表达式先容
   表达式是一个正则表达式,tcpdump使用它作为过滤报文的前提,假如一个报文满意表达式的前提,则这个报文将会被捕捉。假如没有给出任何前提,则收集上一切的信息包将会被截获。
   在表达式中一样平常以下几品种型的关头字,一种是关于范例的关头字,次要包含host,net,port,比方host210.27.48.2,指明210.27.48.2是一台主机,net202.0.0.0指明202.0.0.0是一个收集地点,port23指明端标语是23。假如没有指定范例,缺省的范例是host.
   第二种是断定传输偏向的关头字,次要包含src,dst,dstorsrc,dstandsrc,这些关头字指了然传输的偏向。举例申明,src210.27.48.2,指明ip包中源地点是210.27.48.2,dstnet202.0.0.0指明目标收集地点是202.0.0.0。假如没有指明偏向关头字,则缺省是srcordst关头字。
   第三种是协定的关头字,次要包含fddi,ip,arp,rarp,tcp,udp等范例。Fddi指明是在FDDI(散布式光纤数据接口收集)上的特定的收集协定,实践上它是"ether"的别号,fddi和ether具有相似的源地点和目标地点,以是能够将fddi协定包看成ether的包举行处置和剖析。其他的几个关头字就是指了然监听的包的协定内容。假如没有指定任何协定,则tcpdump将会监听一切协定的信息包。
   除这三品种型的关头字以外,其他主要的关头字以下:gateway,broadcast,less,greater,另有三种逻辑运算,取非运算是not!,与运算是and,&&;或运算是or,||;
   这些关头字能够组合起来组成壮大的组合前提来满意人们的必要,上面举几个例子来讲明。
   (1)想要截获一切210.27.48.1的主机收到的和收回的一切的数据包:
    #tcpdumphost210.27.48.1
   (2)想要截获主机210.27.48.1和主机210.27.48.2或210.27.48.3的通讯,利用命令:(在命令行中合用   括号时,必定要
    #tcpdumphost210.27.48.1and(210.27.48.2or210.27.48.3)
   (3)假如想要猎取主机210.27.48.1除和主机210.27.48.2以外一切主机通讯的ip包,利用命令:
    #tcpdumpiphost210.27.48.1and!210.27.48.2
   (4)假如想要猎取主机210.27.48.1吸收或收回的telnet包,利用以下命令:
    #tcpdumptcpport23host210.27.48.1

  3.tcpdump的输入了局先容
   上面我们先容几种典范的tcpdump命令的输入信息
   (1)数据链路层头信息
   利用命令#tcpdump--ehostice
   ice是一台装有linux的主机,她的MAC地点是0:90:27:58:AF:1A
   H219是一台装有SOLARIC的SUN事情站,它的MAC地点是8:0:20:79:5B:46;上一条命令的输入了局以下所示:
21:50:12.847509eth0<8:0:20:79:5b:460:90:27:58:af:1aip60:h219.33357>ice.telne
t0:0(0)ack22535win8760(DF)
  剖析:21:50:12是显现的工夫,847509是ID号,eth0<暗示从收集接口eth0承受该数据包,eth0>暗示从收集接口设备发送数据包,8:0:20:79:5b:46是主机H219的MAC地点,它标明是从源地点H219发来的数据包.0:90:27:58:af:1a是主机ICE的MAC地点,暗示该数据包的目标地点是ICE.ip是标明该数据包是IP数据包,60是数据包的长度,h219.33357>ice.telnet标明该数据包是从主机H219的33357端口发往主机ICE的TELNET(23)端口.ack22535标明对序列号是222535的包举行呼应.win8760标明发送窗口的巨细是8760.

  (2)ARP包的TCPDUMP输入信息
   利用命令#tcpdumparp
   失掉的输入了局是:
  22:32:42.802509eth0>arpwho-hasroutetellice(0:90:27:58:af:1a)
  22:32:42.802902eth0<arpreplyrouteis-at0:90:27:12:10:66(0:90:27:58:af:1a)
  剖析:22:32:42是工夫戳,802509是ID号,eth0>标明从主机收回该数据包,arp标明是ARP哀求包,who-hasroutetellice标明是主机ICE哀求主机ROUTE的MAC地点。0:90:27:58:af:1a是主机ICE的MAC地点。

  (3)TCP包的输入信息
   用TCPDUMP捕捉的TCP包的一样平常输入信息是:
  src>dst:flagsdata-seqnoackwindowurgentoptions
  src>dst:标明从源地点到目标地点,flags是TCP包中的标记信息,S是SYN标记,F(FIN),P(PUSH),R(RST)"."(没有标志);data-seqno是数据包中的数据的按次号,ack是下次希冀的按次号,window是吸收缓存的窗口巨细,urgent标明数据包中是不是有告急指针.Options是选项.

  (4)UDP包的输入信息
   用TCPDUMP捕捉的UDP包的一样平常输入信息是:
  route.port1>ice.port2:udplenth
  UDP非常复杂,下面的输入行标明从主机ROUTE的port1端口收回的一个UDP数据包到主机ICE的port2端口,范例是UDP,包的长度是lenth

  下面,我就具体先容了TCPDUMP的安装和利用,但愿会对人人有所匡助。假如想要纯熟使用TCPDUMP这个LINUX情况下的SNIFFER利器,还必要人人在理论中总结履历,充实发扬它的能力。
原文链接:http://blog.ccidnet.com/blog.php?do=showone&uid=61531&type=blog&itemid=182540

学习python,无论你是打算拿他当主要开发语言,还是当辅助开发语言,你都应该学习他,因为有些时间我们耗不起。

小妖女 发表于 2015-1-19 20:40:46

熟悉操作是日常学习Linux中的三大法宝。以下是作者学习Linux的一些个人经验,供参考:

飘飘悠悠 发表于 2015-1-24 16:16:56

我学习Linux的心得体会 ,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。

山那边是海 发表于 2015-1-26 22:34:28

在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。

灵魂腐蚀 发表于 2015-2-4 21:04:23

我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2000,后来又有了XP,上大学时又有了win7。

爱飞 发表于 2015-2-8 05:04:03

学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。

若相依 发表于 2015-2-24 06:44:22

写学习日记,这是学习历程的见证,同时我坚持认为是增强学习信念的法宝。

金色的骷髅 发表于 2015-3-7 11:39:29

随着Linux技术的更加成熟、完善,其应用领域和市场份额继续快速增大。目前,其主要应用领域是服务器系统和嵌入式系统。然而,它的足迹已遍布各个行业,几乎无处不在。

admin 发表于 2015-3-11 11:40:13

熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。

变相怪杰 发表于 2015-3-14 12:32:43

尽量不要提问纯属是扯蛋.学习Linux特别是自己一个人初学入手的时候没人教很困难.当然如果可以的话平时多去买些Linux书...对学习Linux很有帮助.

谁可相欹 发表于 2015-3-19 06:40:01

当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。

老尸 发表于 2015-3-27 10:37:22

为什么要学Linux呢?每个人都有不同的看法,下面我说说自己的感想吧。?

乐观 发表于 2015-3-27 23:10:32

Linux?最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具,所以Linux操作系统有着广泛的应用空间。

逍遥一派 发表于 2015-3-30 20:59:48

我学习Linux的心得体会 ,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。

再见西城 发表于 2015-4-7 08:08:28

其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。

因胸联盟 发表于 2015-4-9 15:56:09

另外Linux上也有很多的应用软件,安装运行了这些软件后,你就可以在Linux上编辑文档、图?片,玩游戏、上网、播放多媒体文件等。

透明 发表于 2015-4-10 10:43:25

有疑问前,知识学习前,先用搜索。

分手快乐 发表于 2015-4-14 02:20:58

另外Linux上也有很多的应用软件,安装运行了这些软件后,你就可以在Linux上编辑文档、图?片,玩游戏、上网、播放多媒体文件等。

莫相离 发表于 2015-4-25 15:39:17

让我树立了很大的信心学好这门课程,也学到了不少专业知识和技能。?

深爱那片海 发表于 2015-4-29 07:49:45

学习Linux应具备的。[书籍+网络资源]
页: [1] 2
查看完整版本: Linux制作之Linux下的sniffer工具--Tcpdump的安装和利用仓酷云