• TCP标志信息


    TCP标志信息

    格式:tcp-flag { ack | established | fin | psh | rst | syn | urg }*

    在高级ACL中,当协议类型指定为TCP时,设备支持基于TCP标志信息过滤报文。

    TCP报文头有6个标志位:
    • URG(100000):标识紧急指针有效

    • ACK(010000):标识确认序号有效

    • PSH(001000):标识接收方应该尽快将这个报文段上交给应用层

    • RST(000100):标识重建连接

    • SYN(000010):同步序号,用来发起一个连接

    • FIN(000001):标识发送方完成发送任务

    TCP标志信息中的established,表示标志位为ACK(010000)或RST(000100)。

    指定tcp-flag的ACL规则可以用来实现单向访问控制。假设,要求192.168.1.0/24网段用户可以主动访问192.168.2.0/24网段用户,但反过来192.168.2.0/24网段用户不能主动访问192.168.1.0/24。可通过在设备上连接192.168.2.0/24网段的接口入方向上,应用ACL规则来实现该需求。

    由TCP建立连接和关闭连接的过程可知,只有在TCP中间连接过程的报文才会ACK=1或者RST=1。根据这个特点,配置如下两种ACL规则,允许TCP中间连接过程的报文通过,拒绝该网段的其他TCP报文通过,就可以限制192.168.2.0/24网段主动发起的TCP连接。

    • 类型一:配置指定ackrst参数的ACL规则

      rule 5 permit tcp source 192.168.2.0 0.0.0.255 tcp-flag ack  //允许ACK=1的TCP报文通过       
      rule 10 permit tcp source 192.168.2.0 0.0.0.255 tcp-flag rst   //允许RST=1的TCP报文通过
      rule 15 deny tcp source 192.168.2.0 0.0.0.255  //拒绝该网段的其他TCP报文通过
      
    • 类型二:配置指定established参数的ACL规则

      rule permit tcp source 192.168.2.0 0.0.0.255 tcp-flag established  // established表示ACK=1或者RST=1,表示允许TCP中间连接过程的报文通过
      rule deny tcp source 192.168.2.0 0.0.0.255     //拒绝该网段的其他TCP报文通过
      

    IP分片信息

    格式:none-first-fragment

    基本ACL和高级ACL支持基于IP分片信息过滤报文。

    IP分片除了首片报文外,还有后续分片报文,又叫做非首片分片报文。仅首片分片报文携带四层信息(如TCP/UDP端口号等),后续分片报文均不携带。网络设备收到分片报文后,会判断其是否是最后一个分片报文。如果不是,则为其分配内存空间,以便于最后一个分片报文到达后完成重组。黑客可以利用这一点,向接收方设备发起分片报文攻击,始终不向接收方发送最后一个分片报文,使得接收方的内存得不到及时释放(接收方会启动一个分片重组的定时器,在定时器超时前如果无法完成重组,将向发送方发送ICMP重组超时差错报文;如果定时器超时后仍未完成重组,则丢弃已存储的分片报文)。在分片报文发送数量很多并且发送速度很快的情况下,接收方的内存很容易被占满,从而导致接收方没有足够的内存资源处理其他正常的业务。

    为了解决这个问题,可以配置指定none-first-fragment匹配项的ACL规则来阻塞非首片分片报文,从而达到防范分片报文攻击的目的。

    针对非分片报文、首片分片报文、非首片分片报文这三类报文,ACL的处理方式如表7所示。

    表7 ACL对IP分片报文的处理方式

    规则包含的匹配项

    非分片报文

    首片分片报文

    非首片分片报文

    三层信息(如源/目的IP地址)

    三层信息匹配上,则返回匹配结果(permit/deny);未匹配上,则转下一条规则进行匹配

    三层信息匹配上,则返回匹配结果(permit/deny);未匹配上,则转下一条规则进行匹配

    三层信息匹配上,则返回匹配结果(permit/deny);未匹配上,则转下一条规则进行匹配

    三层信息 + 四层信息(如TCP/UDP端口号)

    三层和四层信息都匹配上,则返回匹配结果(permit/deny);未匹配上,则转下一条规则进行匹配

    三层和四层信息都匹配上,则返回匹配结果(permit/deny);未匹配上,则转下一条规则进行匹配

    不匹配,转下一条规则进行匹配

    三层信息 + none-first-fragment

    不匹配,转下一条规则进行匹配

    不匹配,转下一条规则进行匹配

    三层信息匹配上,则返回匹配结果(permit/deny);未匹配上,则转下一条规则进行匹配

    例如,ACL 3012中存在以下规则:

    #                                   
    acl number 3012                                                                 
     rule 5 deny tcp destination 192.168.2.2 0 none-first-fragment                  
     rule 10 permit tcp destination 192.168.2.2 0 destination-port eq www           
     rule 15 deny ip                                                                
    #  
    • 该报文是非分片报文或首片分片报文时:如果该报文的目的端口号是80(www对应的端口号是80),则报文与rule 10匹配,报文被允许通过;如果该报文的目的端口号不是80,则报文与rule 15匹配,报文被拒绝通过。

    • 该报文是非首片分片报文时:该报文与rule 5匹配,报文被拒绝通过。

  • 相关阅读:
    gitlab centos 安装配置运维笔记
    CentOS 7 升级内核 Kernel
    VMware 桥接模式 复制物理网络连接状态的作用
    diskpart setid value list
    怎样判断Windows的DPI大小?
    Camtasia Studio 6录制视频时鼠标闪烁的解决办法
    ssh的各个jar包作用
    MyEclipse优化技巧
    Struts详细用法
    Ajax的readyState和status属性
  • 原文地址:https://www.cnblogs.com/endv/p/16154902.html
Copyright © 2020-2023  润新知