zoukankan      html  css  js  c++  java
  • 【人在运维囧途_06】 借助 sniffer 诊断 Linux 网络故障

        运维者、善假于物也、形如 sniffer(嗅探器)
        sniffer 在网络安全领域是一把双刃剑、或被黑客作为网络攻击工具、或协助运维诊断网络故障
        
        本文以 Linux 平台下三个常用的网络嗅探器 Tcpdump、Ethereal 和 EtherApe 为例
        介绍如何借助 sniffer 来诊断网络故障,从而保障网络高效安全地运行
        但由于 sniffer 实在太强大、本文也只是 入门性 的做些介绍、有兴趣的朋友可进一步学习
        
        ● Tcpdump是一个命令行方式的网络流量监测工具。它诞生的时间较早,是许多图形化嗅探器的雏形
        ● Ethereal是一个图形化的网络流量监测工具,比命令行方式的Tcpdump友好很多,可以实时地观看捕获过程
        ● EtherApe也是一个图形化的网络流量监测工具、与Ethereal不同,EtherApe可以通过对主机间的连接进行检测
        
        
        ㈠ Tcpdump 
           
           在网络性能急剧下降的时候,可以通过 Tcpdump 来分析原因,找出造成网络阻塞的根源
           Tcpdump 能截获网卡上收到的数据包,并能够协助网络管理员对其中的内容进行相应的分析
           
           对于运维人员、了解如何使用 Tcpdump 来捕获感兴趣的数据包是一项必须掌握的基本功
           
           ⑴ Tcpdump 安装
              
              GNU/Linux 发行版缺省都会安装、如果没有可到:http://www.tcpdump.org 下载
           
           ⑵ Tcpdump 命令行选项
              
              Tcpdump是一个命令行方式的网络嗅探器、如果不进行过滤,过多数量的包会使运维人员很难理清头绪
              
              Tcpdump 常用命令行选项: 
              
              -a  :         将网络地址和广播地址转变成容易识别的名字
              -d  :         将已截获的数据包的代码以人容易理解的格式输出
              -dd :       将已截获的数据包的代码以C程序的格式输出
              -ddd:      将已截获的数据包的代码以十进制格式输出
              -e  :         输出数据链路层的头部信息
              -f  :          将internet地址以数字形式输出
              -l  :          将标准输出变为行缓冲方式
              -n  :        不将网络地址转换成易识别的主机名,只以数字形式列出主机地址(如IP地址),这样可以避免DNS查询
              -t  :         不输出时间戳
              -v  :        输出较详细的信息,例如IP包中的TTL和服务类型信息
              -vv :       输出详尽的报文信息
              -c  :        在捕获指定个数的数据包后退出
              -F  :        从指定的文件中读取过滤规则,忽略命令行中指定的其它过滤规则
              -i  :         指定监听的网络接口
              -r  :        从指定的文件中读取数据包(该文件一般通过-w选项产生)
              -w  :      将截获的数据包直接写入指定的文件中,不对其进行分析和输出
              -T  :       将截获的数据包直接解释为指定类型的报文

              
               
           ⑶ 例子
              

              ① 从指定的网络接口截获5个 ARP 数据包,并且不将网络地址转换成主机名 

    [root@Rocky ~]# tcpdump arp -i eth0 -c 5 -n
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
    10:59:46.728425 arp who-has 192.168.1.1 tell 192.168.1.110
    11:00:17.315719 arp who-has 192.168.1.1 tell 192.168.1.111
    11:00:17.317911 arp who-has 192.168.1.1 tell 192.168.1.111
    11:00:17.418271 arp who-has 192.168.1.1 tell 192.168.1.111
    11:00:17.418980 arp who-has 192.168.1.1 tell 192.168.1.111
    5 packets captured
    5 packets received by filter
    0 packets dropped by kernel


                 10:59:46:为截获数据包的时间
                 728425  :为毫秒数
                 arp:表明该数据包时 ARP 请求
                 who-has 192.168.1.1 tell 192.168.1.110:表示 110 请求 1 的 MAC 地址
                 
      
              ② 截获主机“9.185.10.57”所有收到和发出的数据包
                 
                 tcpdump host 9.185.10.57
                       
                 
              ③ 截获在主机“9.185.10.57”和主机“9.185.10.58”或“9.185.10.59”之间传递的数据包
                 
                 tcpdump host 9.185.10.57 and \>\(9.185.10.58 or 9.185.10.59\)
                 
              ④ 截获主机“9.185.10.57”和除主机“9.186.10.58”外所有其它主机之间通信的IP数据包
                 
                 tcpdump ip host 9.185.10.57 and ! 9.185.10.58
                 
              ⑤ 截获主机“9.185.10.57”接收或发出的FTP(端口号为21)数据包
                 
                 tcpdump tcp port 21 host 9.185.10.57
                 
              ⑥ 如果怀疑系统正受到(DoS)攻击,可通过截获发往本机的所有ICMP包,确定目前是否有大量的ping流向服务器
                 
                 tcpdump icmp -n -i eth0
                 
                 


        ㈡ Ethereal
           
           ⑴ 下载并安装
           
           ***请确认 libpcap 包已经安装****    
           # cp ethereal-0.9.9.tar.bz2 /usr/local/src/
           # cd /usr/local/src/
           # bzip2 -d ethereal-0.9.9.tar.bz2
           # tar xvf ethereal-0.9.9.tar
           # cd ethereal-0.9.9
           # ./configure
           # make
           # make install
           
           ⑵ 简单的捕获过程
              
              大概可分 2 步:
              
              Ⅰ 点击 "filter":可直接在预置的条件里选择、也可自己新建、比如:
                   Filter name:Rocky
                   Filter string: host 124.127.185.106

                

                 

              Ⅱ 点击 "capture "、在 "capture filter"选项框里面填上过滤条件

                   

        ㈢ EtherApe
           
           ⑴ 安装
              
              # gunzip etherape-0.9.11.tar.gz 
              # tar vxf etherape-0.9.11.tar 
              # cd etherape-0.9.11
              # ./configure
              # make 
              # make install
        
      
        
           ⑵ 简单的捕获过程 
           
              大致如下:
              
              Ⅰ 单击“Pref.”按钮,打开“Preferences”,在“Capture”属性页中“Capture filter”
              Ⅱ 如果对IP数据包感兴趣,这时可以将EtherApe切换到IP模式。单击“Capture”菜单,选择“Mode”菜单项

                   

  • 相关阅读:
    4.数据库表相关操作
    2.快速创建springboot项目 连pom文件里面的配置都不用配了
    1.开始Springboot 基本配置和helloworld
    mysql 对数据库操作的常用sql语句
    mysql简单操作
    1.开始Spring
    关于java中的异常
    关于maven
    npm相关知识点
    git源代码管理工具操作步骤
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/2999695.html
Copyright © 2011-2022 走看看