精华内容
下载资源
问答
  • 对网络层数据包进行过滤和控制
    2021-05-18 13:50:18

    对于网络管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过嗅探器来分析原因,找出造成网络阻塞的根源。Tcpdump就是Linux平台下一个以命令行方式运行的网络流量监测工具。它能截获网卡上收到的数据包,并能够协助网络管理员对其中的内容进行相应的分析。

    嗅探器能够截获指定接口或所有接口的数据包,这取决于如何对嗅探器进行配置。缺省情况下嗅探器一般会显示所有从网络上截获的数据包,但通常会因为数据量过大而使网络管理员理不清头绪。因此,嗅探器一般都提供有相应的机制来对截获的数据包进行过滤,从而只显示符合特定要求的数据包。Tcpdump提供了一整套完善的规则来对截获的数据包进行过滤,由于大多数图形化的嗅探器都使用类似的过滤机制,因此对Linux网络管理员来说,了解如何使用Tcpdump来捕获感兴趣的数据包是一项必须掌握的基本功。

    Tcpdump的安装

    在一些Linux发行版中,Tcpdump通常作为标准的软件包被默认安装,执行“tcpdump”命令可以确定是否已经安装了Tcpdump。如果系统中还没有安装Tcpdump,可以去“3.7.1为例,讲述如何安装Tcpdump,此处使用的操作系统是Red Hat 8.0。

    首先下载最新的源码包,并将其解压缩,命令如下:

    # cp tcpdump-3.7.1.tar.gz /usr/local/src/

    # cd /usr/local/src/

    # tar xzvf tcpdump-3.7.1.tar.gz

    在编译Tcpdump之前,应先确定pcap库(libpcap)已经安装完毕。这个库是编译Tcpdump时所必需的。如果该库已经安装,就可以执行下面的命令来编译并安装Tcpdump:

    # cd tcpdump-3.7.1

    # ./configure

    # make

    # make install

    Tcpdump的命令行选项

    Tcpdump是一个命令行方式的网络嗅探器。它通过使用命令选项来过滤网卡截获的数据包,如果不进行过滤,过多数量的包会使网络管理员很难理清头绪。Tcpdump的命令格式如下:

    tcpdump [ -adeflnNOpqRStuvxX ] [ -c 数量 ] [ -C 文件尺寸 ] [ -F 文件名 ] [ -i 网络接口 ] [ -m 文件名 ] [ -r 文件名 ] [ -s 长度 ] [ -T 类型 ] [ -w 文件名 ] [ -E algo:secret ] [ 表达式 ]

    表1 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 将截获的数据包直接解释为指定类型的报文,目前支持的类型有cnfp、rpc、rtp、snmp、vat和wb。

    表1给出了一些常用的Tcpdump命令行选项,使用这些选项可以过滤出真正感兴趣的数据包。

    使用Tcpdump的命令行选项可以很方便地过滤出需要的数据包。例如,要过滤掉所有除ARP请求和应答的通信数据,可以输入“tcpdump arp”命令。该命令只对ARP的请求和应答信息进行截获,在Tcpdump的输出信息中,请求是“arp who-has”这样的条目,而应答则是“arp reply”这样的条目,如图1所示。

    图1 ARP过滤

    如果要做更多的处理,比如从指定的网络接口截获5个ARP数据包,并且不将网络地址转换成主机名,则可以用命令“tcpdump arp -i eth0 -c 5 -n”。

    Tcpdump的过滤表达式

    Tcpdump的过滤表达式是一个正则表达式,Tcpdump利用其作为过滤数据包的条件。如果一个数据包满足表达式的条件,则这个数据据包将会被捕获;如果不指定表达式,则在网络上任何两台主机间的所有数据包都将被截获。过滤表达式的作用就是使Tcpdump只输出网络管理员所需要的数据,如一个指定的网络接口和特定主机间的IP数据包。

    Tcpdump的过滤表达式中一般有如下几种类型的关键字:

    ◆ 类型关键字

    这类关键字用于指定主机、网络或端口,包括host、net和port三个关键字。例如,可以用“host 9.185.10.57”来标明监听的主机;用“net 9.185.0.0”来标明监听的网络;用“port 23”来标明监听的端口。如果没有在表达式中指明类型,则缺省的类型为host。

    ◆ 方向关键字

    这类关键字用于指定截获的方向,包括dst、src、dst or src、dst and src四个关键字。例如,可以用src 9.185.10.57来指明截获的数据包中的源主机地址;用“dst net 9.185.0.0”来指明截获的数据包中的目标网络地址。如果没有在表达式中指明方向,则缺省的方向为“dst or src”,即两个方向的数据包都将被捕获。对于数据链路层协议(如SLIP和PPP),使用inbound和outbound来定义方向。

    ◆ 协议关键字

    这类关键字用于指定要截获的数据包所属的协议,包括ether、fddi、tr、ip、ip6、arp、rarp、decnet、tcp和udp等关键字。关键字fddi指明在FDDI(分布式光纤数据接口网络)上的特定网络协议。实际上它是ether的别名。fddi和ether具有类似的源地址和目标地址,所以可以将fddi协议包当作ether的包进行分析和处理。其它几个关键字只是指定了所要截获的协议数据包。如果没有在表达式中指明协议,则Tcpdump会截获所有协议的数据包。

    除了上述三种类型的关键字外,Tcpdump的过滤表达式中还可以指定的一些重要关键字包括gateway、broadcast、multicast、less、greater。这些关键字对于监听网络中的广播和多播很有帮助。关于这些关键字的更多信息和用法请参考Tcpdump的man手册。

    在Tcpdump的过滤表达式中,各类关键字之间还可以通过布尔运算符来构成组合表达式,以满足实际运用时的需要。布尔运算符包括取非运算符(not或!)、与运算符(and或&&)、或运算符(or或||),使用布尔运算符可以将表达式组合起来构成强大的组合条件,从而能够对Tcpdump的过滤器做进一步细化。

    下面给出几个使用Tcpdump过滤数据包的例子,嗅探器提供的过滤表达式对于管理员监测网络运行状况非常重要:

    1. 如果想要截获主机“9.185.10.57”所有收到和发出的数据包,可以使用如下命令:

    # tcpdump host 9.185.10.57

    2. 如果想要截获在主机“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)

    需要注意的是,在使用布尔运算符构成组合表达式时,有时需要使用括号来表达复杂的逻辑关系。如果要在命令行中使用括号,一定要用转义字符(“”)对括号进行转义,否则命令行解释器将给出语法错误的提示。

    3. 如果想要截获主机“9.185.10.57”和除主机“9.186.10.58”外所有其它主机之间通信的IP数据包,可以使用如下命令:

    # tcpdump ip host 9.185.10.57 and ! 9.185.10.58

    4. 如果想要截获主机“9.185.10.57”接收或发出的FTP(端口号为21)数据包,可以使用如下命令:

    # tcpdump tcp port 21 host 9.185.10.57

    5. 如果怀疑系统正受到拒绝服务(DoS)攻击,网络管理员可以通过截获发往本机的所有ICMP包,来确定目前是否有大量的ping指令流向服务器,此时就可以使用下面的命令:

    # tcpdump icmp -n -i eth0

    更多相关内容
  • 访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件接口上的数据包进行过滤,允许其通过或丢弃。 (2)作用: 1)访问控制列表被广泛地应用于路由器和三交换机,借助于访问控制列表,可以...

    1 ACL概述

    (1)定义:Access Control List 访问控制列表,其实是一种包过滤技术。访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。
    (2)作用

    • 1)访问控制列表被广泛地应用于路由器和三层交换机,借助于访问控制列表,可以有效地控制用户对网络的访问,从而最大程度地保障网络安全。
    • 2)当ACL表应用在路由器接口上时,ACL中指令用来告诉路由器哪些数据包可以收、哪些数据包需要拒绝。
    • 3)其他场合大多数起到条件匹配的功能。

    (3)基于什么过滤三层IP包头(源IP地址、目标IP地址)、四层头部(TCP、UDP端口号)、[5层数据(偶尔)]。
    (4)应用场合:路由器和三层交换机、防火墙配置(一般称为策略)。本节内容主要介绍应用于路由器及三层交换机的ACL。

    tips:
    1)本节的ACL是对网络资源的控制。
    2)为什么ACL是一种包过滤技术呢,为什么不是帧呢?由于是对IP包进行过滤。
    3)防火墙不建议对5层数据进行过滤,因为会降低速度。防火墙主要是过滤网络流量,但是对病毒木马并不是专场,需要过滤病毒木马,可以买IDS和IPS。

    2 ACL原理

    (1)ACL表必须应用到接口的进或出方向才生效。如下图,进出(in/out)是针对路由器而言,在每个接口上都有两个方向。
    在这里插入图片描述
    (2)一个接口的一个方向(进或出)仅应用一张ACL表。
    (3)应用到进还是出方向取决于流量控制的总方向。
    (4)检查顺序:ACL表严格自上而下逐条检查,因此条目顺序很重要。
    (5)ACL表中自上而下有多个条目,每个条目由条件与动作构成。每当有流量来时,严格自上而下逐条检查条目,①当流量完全满足条件时,执行动作;②当流量不完全满足条件时,继续检查下一条;③当所有条件都不满足时,则拒绝通过,这是隐藏在ACL表最后的。
    (6)案例

    • 1)案例1
      在这里插入图片描述
    • 2)案例2
      在这里插入图片描述
      3)案例3

    在这里插入图片描述

    3 ACL分类

    ACL主要分为标准ACL扩展ACL。其中扩展ACL运用得更多。

    3.1 标准ACL

    (1)表号范围1~99。只要将表号设置在这个范围内,就是标准ACL表。
    (2)特点:只能基于数据包中的源IP地址对包进行过滤。
    (3)配置位置:流量流经的路由器上,由于标准ACL表只能检查源IP,因此需要尽可能配置在离目标近的路由器,以避免误杀。
    (4)应用于进口还是出口,取决于流量控制的总方向。
    (5)要应用到哪个路由器就在哪个路由器上配置命令:

    '''创建标准ACL及编写标准ACL'''
    en
    conf t
    access-list 表号(1) 动作 条件       	                    #每条命令均需要表明针对哪个表
    access-list 表号(1) permit/deny 源IP或源网段 反子网掩码	#每条命令均需要表明针对哪个表
    #反子网掩码:将正子网掩码0和1取反,例如正子网掩码255.255.255.0对应反子网掩码为0.0.0.255
    #反子网掩码的作用:用来匹配,与0对应的需要严格匹配,与1对应的忽略。
    access-list 1 deny 10.1.1.1 0.0.255.255				#表示拒绝所有源IP为10.1.x.x的数据包
    access-list 1 deny 10.1.0.0 0.0.255.255				#为了更方便理解且没有歧义,上一行一般写成这样
    access-list 1 deny 10.1.1.1 255.255.255.255			#表示拒绝所有人
    access-list 1 deny any								#上一行的简写
    access-list 1 permit any							#表示允许所有数据包通行
    access-list 1 deny 10.1.1.1 0.0.0.0  			    #表示拒绝源IP为10.1.1.1的主机
    access-list 1 deny host 10.1.1.1					#上一行的简写
    
    '''查看表'''
    en
    show ip access-list 表号(1#查看表1,如果不指定表号,则查看所有ACL表。
    
    '''删除表'''
    en
    conf t
    no access-list 表号(1#删除表,需要指定表号。
    
    '''编辑完ACL表后,需要将ACL表应用于哪个接口哪个方向'''
    en
    conf t
    int f0/x
    ip access-group 表号(1in/out	#in或out二选一
    exit
    

    (6)完整案例:

    #禁止源IP10.1.1.1的通过,禁止20.1.1.0网段的通过,其他所有都放行
    conf t
    acc 1 deny host 10.1.1.1
    acc 1 deny 20.1.1.0 0.0.0.255
    acc 1 permit any
    

    3.2 扩展ACL

    (1)表号范围:100~199。
    (2)特点:可以基于源IP地址、目标IP地址、端口号、协议等对IP包进行过滤。
    (3)配置位置:流量流经的路由器上,由于扩展ACL表条件丰富,因此尽可能配置在离源IP近的路由器,以减少路由器负担。
    (4)应用于进口还是出口,取决于流量控制的总方向。
    (5)要应用到哪个路由器就在哪个路由器上配置命令:

    '''创建标准ACL及新增条目'''
    en
    conf t
    #标准命令,要满足所有条件才执行动作。
    #协议一般写tcp/udp/ip/icmp,当有写端口号时,必须写对应的协议TCP或UDP。注意tcp/udp/icmp均需要流经ip。
    #当需求为拒绝某IP/网段访问某目标IP/网段的所有服务时,协议写IP。
    #[]表示可选项,即除了端口号其余的都要写,eq表示等于。
    acc 表号 permit/deny 协议 源IP或源网段 反子网掩码 目标IP或目标网段 反子网掩码 [eq 端口号] 
    
    # 表示允许主机10.1.1.1访问主机20.1.1.3的TCP80端口
    acc 100 permit tcp host 10.1.1.1 host 20.1.1.3 eq 80
    
    # 表示禁止主机10.1.1.1访问任何服务器的UDP53端口,该主机将无法进行DNS解析。
    acc 100 deny udp host 10.1.1.1 any eq 53
    
    #表示禁止主机10.1.1.1访问网段20.1.1.0
    acc 100 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255 
    
    #表示禁止主机10.1.1.1访问网段20.1.1.0基于TCP的服务,一般很少这样用
    acc 100 deny tcp host 10.1.1.1 20.1.1.0 0.0.0.255 
    
    #表示禁止主机10.1.1.1ping20.1.1.0网段
    acc 100 deny icmp host 10.1.1.1 20.1.1.0 0.0.0.255 
    
    # 表示允许所有通过
    acc 100 permit ip any any
    
    '''查看表'''
    en
    show ip access-list 1		#查看表1,如果不指定表号,则查看所有ACL表。
    
    '''删除表'''
    en
    conf t
    no access-list 1			#删除表,需要指定表号。
    
    '''编辑完ACL表后,需要将ACL表应用于哪个接口哪个方向'''
    en
    conf t
    int f0/x
    ip access-group 标号(如100in/out	#in或out二选一
    exit
    

    4 编写ACL的步骤

    (1)ACL表编辑及应用应该在整个网络已经能做正常ping通后再考虑。
    (2)由于ACL表是用于过滤IP包,因此首先要根据流量的流向和使用的ACL表类型,判断ACL写的位置(哪个路由器、哪个接口、哪个方向上)
    (3)再考虑如何写

    • 1)开始编写时先判断大部分流量是拒绝通过还是允许通过,决定ACL表最后一行如何编写。
    • 2)写的时候要注意:越往上一般条件限制越严格。
      (4)一般情况下,标准或扩展ACL表一旦编写好,无法修改某一条、无法删除某一条、也无法修改顺序、也无法插入某一条,只能一直在最后添加新的条目。如果要修改/删除/调整顺序,只能删除整张表,重新写。

    5 命名ACL

    (1)是对标准ACL和扩展ACL的功能完善,不是第三类ACL表。
    (2)作用:可以对标准或扩展ACL进行自定义命名。
    (3)优点:(1)自定义命名更容易辨认,也便于记忆。(2)可以任意修改/删除/插入某一条。
    可以理解为进入ACL表配置模式才能修改/删除/插入条目,在全局配置模式就只能删除整个表。
    (4)相关命令:

    • 1)创建并编写标准和扩展ACL
    en
    conf t
    '''创建并编写标准和扩展ACL'''
    acc 1 deny host 10.1.1.1							
    acc 1 deny host 20.1.1.1
    acc 1 permit any
    acc 100 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255 
    acc 100 permit ip any any
    do sh ip acc
    

    在这里插入图片描述

    • 2)创建并编写命名ACL
    '''创建并编写命名ACL'''
    #需求:希望内网的人都可以访问网站服务器、外网都不能访问网站服务器
    ip access-list extended/standard 自定义表名  #创建命名ACL表,其中ex表示扩展、stan表示标准。该命令会进入扩展ACL表配置模式,不用每一句均以“access+表号”开头
    ip access-list ex kongzhi-80-oa                             #创建命名ACL表kongzhi-80-oa
        permit tcp 192.168.0.0 0.0.255.255 host 10.1.1.1 eq 80  #允许内网192.168网段访问主机10.1.1.1的tcp80端口。
        permit tcp 172.16.0.0 0.0.255.255 host 10.1.1.1 eq 80	#允许内网172.16网段访问主机10.1.1.1的tcp80端口。		
        deny ip 192.168.0.0 0.0.255.255 host 10.1.1.0           #禁止内网192.168网段访问主机10.1.1.1的其他所有服务
    exit
    #查看所有表
    do sh ip acc
    

    在这里插入图片描述

    • 3)删除或插入命名ACL的条目
    '''删除某一条'''
    ip access-list extended/standard 自定义表名   #进入某ACL表
         no 条目ID                               #删除某一条
         exit
         
    '''插入某一条'''
    ip access-list extended/standard 自定义表名   #进入某ACL表
         条目ID  动作 条件                        #条目ID位于需要插入的两条条目之间。
         exit
    
    '''具体例子'''          
    ip access-list ex kongzhi-80-oa #再次进入命名ACL表,进行条目调整
        no 20                   #删除该表中表号为20的条目,也可以写“no 动作 条件”,但为了方便,一般写条目
        15 permit tcp 172.16.0.0 0.0.255.255 host 10.1.1.1 eq 80  #插入条目,先写条目ID。
        exit
    do sh ip acc                                            #查看所有表
    

    在这里插入图片描述

    • 4)利用命名ACL的方式删除或插入标准ACL和扩展ACL的条目
    ip access-list ex 100
        no 10
        15 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255 
          exit
    do sh ip acc                                            #查看所有表
    

    在这里插入图片描述

    6 实验1—基于Cisco Packet Tracer

    6.1 实验要求

    搭建以下网络拓扑图,并要求以下全部使用标准ACL表实现:
    (1)要求10网段禁止访问整个50网段,访问其他不受限制;
    (2)要求40.1.1.1PC禁止访问50网段,其他访问均不受影响;
    (3)要求10.1.1.1禁止访问40网段,其他不受影响。
    在这里插入图片描述

    6.2 实验步骤

    ACL表编辑及应用应该在整个网络已经能做正常ping通后再考虑,因此需要先让整个网络ping通。
    (1)首先给PC配IP地址
    (2)给路由器各接口配置IP
    (3)给路由器配置路由
    (4)考虑ACL表写在哪个路由器哪个接口的哪个方向上,开始编写ACL表

    6.3 实验具体思路及命令

    • (1)(2)(3)步骤及命令详见《路由实验演示》
    • (4)考虑ACL表写在哪个路由器哪个接口的哪个方向上
      根据实验要求可知,需要写两张表,表1写在R2的F1/0接口的出方向(用于满足第一二条实验要求),表2写在R3的F0/0接口的出方向((用于满足第三条实验要求)。开始编写ACL表,具体命令如下:
    #在R2上配置
    en
    conf t
    ho R2
    access-list 1 
    access-list 1 deny 10.1.1.0 0.0.0.255
    access-list 1 deny host 40.1.1.1
    access-list 1 permit any
    int f1/0
    ip acess-group 1 out
    exit
    do show ip acess-list
    do wr
    #在R3上配置
    en
    conf t
    ho R3
    access-list 1 
    access-list 1 deny host 10.1.1.1
    access-list 1 permit any
    int f0/0
    ip acess-group 1 out
    exit
    do show ip acess-list
    do wr
    

    7 实验2—基于Cisco Packet Tracer

    7.1 实验要求

    在这里插入图片描述

    7.2 实验步骤

    (1)二层交换部分:

    • 第1步:配置trunk接口模式
    • 第2步:配置VTP域及创建虚拟局域网—VLAN
    • 第3步:划分接口到对应VLAN

    (2)三层路由部分:

    • 第1步:核心交换机开启三层路由并创建虚拟接口,然后给网关配置IP并开启
    • 第2步:核心交换机与路由器相连的接口升级为三级接口并配置IP
    • 第3步:路由器接口配置IP
    • 第4步:配置路由表

    (3)创建并编写ACL表
    考虑ACL表写在哪个路由器哪个接口的哪个方向上,开始编写ACL表

    7.3 实验具体思路及命令

    '''在三层交换机的出接口配置这张表'''
    conf t
    ip access-list ex kongzhi-shangwang 
    deny ip 192.168.1.0 0.0.0.255 0.0.0.0 0.0.0.0
    permit ip 192.168.0.0 0.0.255.255 0.0.0.0 0.0.0.0
    exit
    do show ip acc b
    int f0/3
    ip acess-group kongzhi-shangwang out
    exit
    
    
    '''在三层交换机中财务部的网关这张表'''
    conf t
    ip access-list ex kongzhi-caiwu 
    deny ip 192.168.0.0 0.0.255.255 192.168.3.0 0.0.0.255
    permit ip any any
    exit
    do show ip acc
    int vlan 30
    ip acess-group kongzhi-caiwu in
    exit
    

    8 归纳总结

    (1)NTFS权限列表也是ACL表,不过那是对用户的控制,而本节与之无关,本节是对网络流量的控制。
    (2)理解ACL表应配置在哪个路由器、哪个接口、哪个方向上。
    (3)掌握ACL的原理、条目的执行规律以及根据需要编写ACL条目。
    (4)熟悉相关命令。

    参考文章

    [1]《访问控制列表百科
    [2] 《ACL——控制路由器上接口大门的进出规则》
    [3] 视频传送门

    展开全文
  • 数据包是TCP/IP协议通信传输中的数据...但是TCP/IP协议是工作在OSI模型第三层(网络层)、第四层(传输层)上的,而帧是工作在第二层(数据链路层)。上一层的内容由下一层的内容来传输,所以在局域网中,包是包含在帧里的
  • 1.掌握使用Wireshark软件监听捕获网络数据包。 2.掌握通过实际观察网络数据进行分析而了解网络协议运行情况。 二 实验要求 1.设备要求:计算机若干台(装有Windows 2000/XP/2003操作系统、装有网卡),局域网环境...
  • 中间层数据包过滤可以辅助实现个人防火墙及通信内容监控的功能。
  • Wireshark是一种流行的网络数据包捕获分析工具。 它以前被称为Ethereal。 Wireshark捕获来自不同类型接口的数据包,并将它们作为浮动列表打印到屏幕。 它还提供有关特定数据包的详细信息。 Wireshark还可以读取...

    Wireshark is a popular network packet capture and analysis tool. It is previously named as Ethereal. Wireshark captures packets from a different type of interfaces and prints them as a floating list to the screen. It also provides detailed information about a specific packet. Wireshark can also read already captured packets in different formats like cap , pcap etc.

    Wireshark是一种流行的网络数据包捕获和分析工具。 它以前被称为Ethereal。 Wireshark捕获来自不同类型接口的数据包,并将它们作为浮动列表打印到屏幕。 它还提供有关特定数据包的详细信息。 Wireshark还可以读取不同格式的已捕获数据包,例如cappcap等。

    下载并安装 (Download and Install)

    Wireshark is supported by a lot of platforms. Let’s install

    许多平台都支持Wireshark。 让我们安装

    视窗:(Windows:)

    For Windows operating system we need to download the wireshark installation file from the official web site. The latest version of Wireshark can be downloaded from the following link.

    对于Windows操作系统,我们需要从官方网站下载wireshark安装文件。 可以从以下链接下载最新版本的Wireshark。

    https://www.wireshark.org/#download

    https://www.wireshark.org/#download

    Windows provides a different type of installers like 32 bit, 64 bit, portable. If we do not have required privileges to install application we can use portable Wireshark which do not needs installation.

    Windows提供了不同类型的安装程序,例如32位,64位,便携式。 如果我们没有安装应用程序所需的特权,则可以使用不需要安装的便携式Wireshark。

    Ubuntu,Debian,Mint: (Ubuntu, Debian, Mint:)

    Ubuntu, Debian, Mint and other deb based distributions provide Wireshark from their official repositories. Just issue the following command to install Wireshark.

    Ubuntu,Debian,Mint和其他基于deb的发行版从其官方存储库中提供了Wireshark。 只需发出以下命令来安装Wireshark。

    $ sudo apt install wireshark-qt
    

    Fedora,CentOS,RedHat: (Fedora, CentOS, RedHat:)

    Fedora, CentOS, and RedHat provide Wireshark package in their repositories too. In order to install Wireshark in Fedora, CentOS and RedHat issue following command.

    Fedora,CentOS和RedHat也在其存储库中提供Wireshark软件包。 为了在Fedora中安装Wireshark,CentOS和RedHat发出以下命令。

    $ sudo yum install wireshark-qt
    

    选择接口和捕获数据包 (Select Interface and Capture Packets)

    One of the fundamental operation with Wireshark is selecting an interface to capture network packets. When we open Wireshark we will see the following screen.  Available interfaces are listed with their name current network traffic on that interface is shown with a simple graph.

    Wireshark的基本操作之一是选择一个接口来捕获网络数据包。 当我们打开Wireshark时,我们将看到以下屏幕。 可用接口以其名称列出,该接口上的当前网络流量以简单图形显示。

    Select Interface and Capture Packets
    Select Interface and Capture Packets
    选择接口和捕获数据包

    Here we will see that namedLocal Area Connection interface has some network traffic. By the way, Wireshark can listen to USB interfaces too.

    在这里,我们将看到命名的Local Area Connection接口具有一些网络流量。 顺便说一下,Wireshark也可以监听USB接口。

    LEARN MORE  What is Address Resolution Protocol (ARP) and How It Works?
    了解更多什么是地址解析协议(ARP)及其工作原理?

    We double click on andLocal Area Connection this will start network capture on this interface and a new screen will be opened where the network packets flow.

    双击并单击“ Local Area Connection这将在此接口上开始网络捕获,并在网络数据包流向的位置打开一个新屏幕。

    Select Interface and Capture Packets
    Select Interface and Capture Packets
    选择接口和捕获数据包

    显示特定的数据包详细信息(Show Specific Packet Details)

    We generally look at some specific packets to analyze. We can locate the packet we want in a simple way from the right side of the packet flow list and click on the packet. This will show detailed packet information in the middle section where Frame, Ethernet, IP, TCP/UDP, and Application layer information provided. In the lowest and third section, we will see application layer data in hex format.

    我们通常查看一些特定的数据包进行分析。 我们可以从数据包流列表的右侧以简单的方式找到所需的数据包,然后单击该数据包。 这将在中间部分显示详细的数据包信息,其中提供了帧,以太网,IP,TCP / UDP和应用程序层信息。 在最低和第三部分,我们将以十六进制格式查看应用程序层数据。

    Show Specific Packet Details
    Show Specific Packet Details
    显示特定的数据包详细信息

    过滤捕获的数据包(Filter Captured Packets)

    In a busy network, there will be a lot of packets flying around. This will make to look some packets one by one very hard job. Wireshark has very powerful filtering features. We can filter captured packets according to a protocol like IP, TCP, UDP, IP address, Source address destination address, TCP port, mac address, DNS packet, SNMP packet etc. There are a lot of them. We will simply look most popular of them. We can get the whole list of supported filter expressions by clicking buttonExpression on the left up corner. We can see the filter textbox and buttonExpression.

    在繁忙的网络中,将有很多数据包在飞来飞去。 这将使查找某些数据包变得非常困难。 Wireshark具有非常强大的过滤功能。 我们可以根据协议过滤捕获的数据包,例如IP,TCP,UDP,IP地址,源地址目标地址,TCP端口,mac地址,DNS数据包,SNMP数据包等。它们很多。 我们只会看起来其中最受欢迎。 通过单击左上角的“ Expression ”按钮,可以获取支持的过滤器表达式的完整列表。 我们可以看到过滤器文本框和按钮Expression

    Filter Captured Packets
    Filter Captured Packets
    过滤捕获的数据包

    List of supported expressions. As we can see there are a lot of protocols like.

    支持的表达式列表。 我们可以看到有很多类似的协议。

    过滤ARP数据包 (Filter ARP Packets)

    In this example we will filter ARP packets and section or the packet list only provides ARP protocol packets. We will only use arp in the filter box.

    在此示例中,我们将过滤ARP数据包,而section或数据包列表仅提供ARP协议数据包。 我们将仅在过滤器框中使用arp

    arp
    
    Filter ARP Packets
    Filter ARP Packets
    过滤ARP数据包

    根据目标IP地址过滤(Filter According To Destination IP Address)

    Another popular usage is filtering packet those have specified destination IP address. In this example, we will filter and only show those packets which have a destination IP address is 192.168.122.ip.

    另一种流行的用法是过滤具有指定目标IP地址的数据包。 在此示例中,我们将过滤并仅显示目标IP地址为192.168.122.ip.那些数据包。

    ip.dst == 192.168.122.1
    
    Filter According To Destination IP Address
    Filter According To Destination IP Address
    根据目标IP地址过滤

    根据源IP地址过滤(Filter According To Source IP Address)

    We can also filter according to source IP address too. In this example, we will filter IP source address 192.168.122.1

    我们也可以根据源IP地址进行过滤。 在此示例中,我们将过滤IP源地址192.168.122.1

    ip.src == 192.168.122.1
    
    Filter According To Source IP Address
    Filter According To Source IP Address
    根据源IP地址过滤

    过滤DNS数据包(Filter DNS Packets)

    We can filter DNS packets with keyworddnsserver like below.

    我们可以使用关键字dnsserver过滤DNS数据包,如下所示。

    dnsserver
    
    Filter DNS Packets
    Filter DNS Packets
    过滤DNS数据包

    关注TCP流(Follow TCP Stream)

    During a regular web page load or request, there will be some round trip to download data. If we need to inspect the whole request and response traffic we need to filter multiple packets. We can accomplish this by filtering according to a TCP session or TCP stream. It is called Follow TCP Stream .

    在常规的网页加载或请求期间,将有一些往返下载数据。 如果我们需要检查整个请求和响应流量,则需要过滤多个数据包。 我们可以通过根据TCP会话或TCP流进行过滤来完成此操作。 它称为“ Follow TCP Stream

    LEARN MORE  How To Specify Host, Port and Protocol For Tcpdump?
    了解更多信息如何为Tcpdump指定主机,端口和协议?
    Follow TCP Stream
    Follow TCP Stream
    关注TCP流

    This will provide the following screen which provides the whole HTTP request and response session. We can also search these with bottomFind.

    这将提供以下屏幕,其中提供了整个HTTP请求和响应会话。 我们也可以使用底部的Find搜索这些。

    封包统计 (Packet Statistics)

    One of the best features is the packet statistics. We can get a lot of different type of statistics with the menuStatistics from up. We can get the following statistical information.

    最好的功能之一是数据包统计信息。 通过向上菜单“ Statistics信息”,我们可以获得许多不同类型的统计信息。 我们可以获得以下统计信息。

    • Endpoints

      终点
    • HTTP

      HTTP
    • IP

      知识产权
    • Ethernet

      乙太网路
    • PRotocol Hierarchy

      PRotocol层次结构
    Packet Statistics
    Packet Statistics
    封包统计

    停止捕捉(Stop Capturing)

    We can stop capturing network packets with Wireshark with the red button in the toolbar menu.

    我们可以使用工具栏菜单中的红色按钮停止使用Wireshark捕获网络数据包。

    保存捕获的数据包 (Save Captured Packets)

    We can save captured files. In order to save we firstly stop live packet capture. Then from the menuFile and save or Save as menus.

    我们可以保存捕获的文件。 为了保存,我们首先停止实时数据包捕获。 然后从菜单FilesaveSave as菜单。

    Save Captured Packets
    Save Captured Packets
    保存捕获的数据包

    打开Cap,Pcap等捕获文件(Open Capture Files Like Cap , Pcap)

    We can open already saved a different type of capture formats like cap,  pcap ,ngcap etc. from File menu. We can also open recently opened capture files.

    我们可以从File菜单中打开已经保存的不同类型的捕获格式,例如cap,pcap,ngcap等。 我们还可以打开最近打开的捕获文件。

    Open Capture Files Like Cap , Pcap
    Open Capture Files Like Cap , Pcap
    打开Cap,Pcap等捕获文件

    翻译自: https://www.poftut.com/wireshark-capture-filter-inspect-network-packets/

    展开全文
  • 使用iptables进行TCP数据包过滤

    千次阅读 2020-01-17 15:20:18
    在Linux系统内核空间中,有面向网络的防火墙实现。...netfilter是处于内核态的,netfilter是Linux操作系统核心内部的一个数据包处理模块,它具有如下功能: 1. 网络地址转换(Network Address...

    在Linux系统内核空间中,有面向网络的防火墙实现。这个防火墙是由软件实现的,是逻辑上的防火墙。用户可以设置某些的“安全设定”,配置到这个网络防火墙的“安全框架”中。这个“安全框架”就是netfilter。

        netfilter是处于内核态的,netfilter是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能:

        1. 网络地址转换(Network Address Translate)

        2. 数据包内容修改

        3. 以及数据包过滤的防火墙功能。

        刚刚我们提到用户可以在netfilter中自定义“安全设定”,就需要一个中间代理把用户态的“安全设定”配置到内核态中的“安全框架(netfilter)”,这个代理就是iptables。

        iptables可以提供给我们用户一些选项来自定义netfilter的功能。这次我们讨论使用iptables进行TCP数据报过滤。

        在命令行输入sudo iptables -L查看防火墙管理的三个“链”:

    Chain INPUT表示进入路由器的数据报、Chain FORWARD表示经过路由器的数据报、Chain OUTPUT表示从路由器从路由器出去的数据报。这里三者默认都是ACCEPT(接收)。

        target代表如何处理捕获的数据报,共有3种可定义的方法:ACCEPT(接收)、REJECT(拒绝)、DROP(丢弃)。prot代表协议;opt代表选项;source代表源地址;destination代表目的地址;最后一列是描述。


        举个例子,下面是wireshark抓取的正常发送的数据报:

        接下来我们使用iptables在OUTPUT链中DROP掉有PSH标志位的TCP报文

    在Chain OUTPUT中多了一行过滤规则。sudo iptables -A OUTPUT -p tcp --tcp-flags PSH PSH --dport 9000 -j DROP

    -A <Chain name>指定过滤规则的链,这里指定了输出链。

    -p <protocol> [options]指定协议和协议的选项,这里指定了tcp的标志位PSH。

    --dport <port>指定目的端口(destination port)号,这里指定了9000。同时可以使用--sport <port>指定源端口号。

    -j <DROP|REJECT|ACCEPT>指定过滤方法,这里指定了丢弃(DROP)。

    iptables更多的选项和用法可以用命令iptables -h查看。

        接着我们在这个过滤规则下重新抓取刚才的数据报:

        这次发送的数据报的PSH标志都被过滤掉了,接收方应用层对并不知道数据报已经到达,造成了接收方窗口溢出。

        最后,使用iptables --delete删除过滤规则前,需要知道过滤规则的行号。在命令行输入sudo iptables -L --line-numbers查看。

        刚才的过滤规则在OUTPUT链的行号2,现在可以输入sudo iptables --delete OUTPUT 2删除规则。再次查看过滤表。

        已成功删除。

    注:本文为小Yip原创,未经许可不得在任何平台转载。如需转载,与作者联系~

    欢迎加入linux交流群:734638086,分享工作经验。

    关注微信公众号:技术训练营(微信ID:TechBootcamp),获取更多资讯~

    微信扫一扫,发现更精彩。

    展开全文
  • 畅通无阻的网络性能是许多 NetOps 活动的核心目标,其中之一是通过使用数据包数据和网络流来解决网络性能问题。当聚合分析流和数据包数据时,网络洞察力可以引导团队找到更好的解决方案。对于每次性能下降时都依赖...
  • 为此 ,分析基于 NDIS( network driver interface specification)中间驱动 Windows网络数据包过滤技术的特点 ,采用核心态 NDIS中间驱动程序实现了与底层网络接口设备具体细节无关的高速网络设备监测技术 ,设计...
  • 计算机网络——数据包抓取与分析

    千次阅读 2022-03-28 10:37:44
    学习安装、使用协议分析软件,掌握基本的数据报捕获、过滤和协议的分析技巧,能抓取数据包进行分析。 二、实验内容 协议分析软件的安装和使用、学会抓取数据包的方法并对对抓取数据包进行分析。 三、实验...
  • 第1篇介绍Wireshark的各项功能,包括基础知识、Wireshark的定制、捕获过滤显示过滤器的使用、数据包的着色、导出重组等;第2篇介绍基于WiresharkTCP/IP协议族中常用协议的详细分析,如ARP、IP、UDP、TCP、...
  • 可以把windows操作系统的网络构架粗略划分为6层,其中逻辑链路层、网络层和传输层都是通过传输驱动程序实现的,也叫做协议驱动程序。网络驱动接口标准(NDIS)用于windows环境下网络驱动程序的开发,NDIS提供了很多...
  • 在实际应用中,实现网络数据包捕获的技术代表是Libpcap。Libpcap是一个专业的跨平台的网络数据包捕获开发包...上面截图有很多协议,但是我们可以看出,网络协议分析是指对网络上的数据进行相应的协议分析。网络上的协议
  • 防火墙之数据包过滤iptables

    千次阅读 2019-09-23 15:58:52
    内容简介 防火墙的概述 1、iptables简介 2、iptables基础 ...它通过访问控制机制,确定哪些内部服务允许外部访问,以及允许哪些外部请求可以访问内部服务。它可以根据网络传输的类型决定IP包是否可以传进或...
  • 计算机网络原理 实验3 《IP数据包捕获及数据分析》 一、实验目的 JPCAP是一个能够捕获、发送网络数据包的Java类库包。这个包用到了Winpcap/Libpcap原始套接字API,目前,JPCAP在FreeBSD 3.x、Linux RedHat 6.1、...
  • 网络数据包代理入门指南

    千次阅读 2020-07-01 17:47:07
    网络数据包代理(NPB)是一种类似交换机的网络设备,其大小从便携式设备到1U2 U单元机箱,再到大型机箱板卡系统。与交换机不同,除非明确指示,否则NPB不会以任何方式更改通过它的流量。NPB可以在一个或多个接口...
  • 通过本次实验,熟悉sniffer的使用,并能通过sniffer设定过滤规则,指定的网络行为所产生的数据包进行抓取,并分析所抓取的数据包
  • 嗅探(窃听网络上流经的数据包)

    千次阅读 2020-04-01 21:32:24
    嗅探(窃听网络上流经的数据包) 当你舒适的坐在家里,惬意的享受网络给你带来的便利,收取你的EMAIL,购买你喜欢的物品的时候,你是否会想到你的朋友给你的信件,你的信用卡帐号变成了一个又一个的信息包在网络上不停...
  • Linux系统下网络数据包的处理流程

    千次阅读 2018-07-23 10:19:45
    分析的内核代码版本为4.17.6,涉及到的网卡硬件功能特性逻辑均以intel的82599以太网控制器为例,驱动为ixgbe。本文仅讨论physical function的驱动代码逻辑。 数据包从网卡接收开始,其总体处理流程如下: ...
  • 使用httpflow提取HTTP数据包的请求响应
  • XDP 位于网卡驱动,当数据包经过 DMA 存放到 ring buffer 之后,分配 skb 之前,即可被 XDP 处理。由于 XDP 位于整个 Linux 内核网络软件栈的底部,能够非常早地识别并丢弃攻击报文,具有很高的性能。这为我们改善...
  • Ubuntu16.04下安装了Wireshark的话,应该是已经安装了libpcap0.8的包,如下图:使用sudo apt-get install libpcap-dev安装开发包,安装后系统显示如下图:多了libpcap0.8-devlibpcap-dev两个包。工作可能截取的...
  • 学习安装、使用协议分析软件,掌握基本的数据报捕获、过滤和协议的分析技巧,能抓取数据包进行分析。 二、实验内容与方法 1、使用具有Internet连接的Windows操作系统; 2、抓包软件Wireshark。 协议分析软件的安装...
  • TCP协议工作在网络层IP协议的基础上。本课程设计的目的是设计一个发送接收TCP数据包的程序,其功能是填充一个TCP数据包,发送给目的主机,并在目的主机接收此TCP数据包,将数据字段显示在标准输出上。 2.设计原理 ...
  • eNSP:访问控制列表 ACL

    千次阅读 2021-01-01 18:40:04
    访问控制列表被广泛地应用于路由器和三交换机,借助于访问控制列表,可以有效地控制用户对网络的访问,从而最大程度地保障网络安全。 ACL的作用就是根据条件传输到接口的数据包进行过滤 ACL是由一系列规则组成...
  •   JPCAP是一个能够捕获、发送网络数据包的java类库包。这个包用到了Winpcap/Libpcap原始套接字API,目前,JPCAP在FreeBSD 3.x、Linux RedHat 6.1、Solaris Microsoft Windows 2000/XP系统上已经做过测试,并且...
  • ACL(AccessControlList,访问控制列表)
  • UDP是传输的协议,功能即为在IP的数据报服务之上增加了最基本的服务:复用分用以及差错检测。 UDP提供不可靠服务,具有TCP所没有的优势:UDP无连接,UDP没有拥塞控制等。 2.wireshark抓包 打开wireshark,在关闭...
  • 过滤和分析方法,能分析HTTP、TCP、ICMP等协议。 实验环境 使用具有Internet连接的MacOs操作系统; 抓包软件Wireshark。 实验内容: 安装学习Wireshark软件 抓包与分析HTTP协议 分析TCP协议 分析TCP三次握手 分析...
  • 通常我们只特定网络通信感兴趣。比如我们只打算监听Telnet服务(port 23)以捕获用户名口令信息。获知FTP(port 21)或DNS(UDP port 53)数据流感兴趣。可以通过pcap_compile()pcap_setfilter来设置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,564
精华内容 20,225
热门标签
关键字:

对网络层数据包进行过滤和控制