• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

华三防火墙针对TCP协议会话的ASPF机制探究

  • 0关注
  • 1收藏 609浏览
粉丝:35人 关注:3人

组网及说明

不涉及


告警信息

不涉及


问题描述

ASPF(Advanced Stateful Packet Filter,高级状态包过滤)是为了解决包过滤防火墙存在的问题而提出的概念,主要功能有

·              应用层协议检测:检查应用层协议信息,如报文的协议类型和端口号等信息,并且监控每一个连接的应用层协议状态。对于所有连接,每一个连接状态信息都将被ASPF维护,并用于动态地决定数据包是否被允许通过防火墙进入内部网络,以阻止恶意的入侵。

·              传输层协议检测:检测传输层协议信息,包括TCP协议、UDP协议、UDP-Lite协议、SCTP协议、Raw IP协议、ICMP协议、ICMPv6协议和DCCP协议。例如TCP/UDP检测,能够根据源、目的地址及端口号决定TCPUDP报文是否可以通过防火墙进入内部网络。

·              ICMP差错报文检测:正常ICMP差错报文中均携带有本报文对应连接的相关信息,根据这些信息可以匹配到相应的连接。如果匹配失败,则根据当前配置决定是否丢弃该ICMP报文。

·              TCP连接首包检测:对TCP连接的首报文进行检测,查看是否为SYN报文,如果不是SYN报文则根据当前配置决定是否丢弃该报文。缺省情况下,不丢弃非SYN首包,适用于不需要严格TCP协议状态检查的组网场景。例如当防火墙设备首次加入网络时,网络中原有TCP连接的非首包在经过新加入的设备时如果被丢弃,会中断已有的连接,造成不好的用户体验,因此建议暂且不丢弃非SYN首包,等待网络拓扑稳定后,再开启非SYN首包丢弃功能。

 

对于ASPF的研究可以参考该案例:H3C防火墙ASPF状态检测机制


本案例针对TCP协议简述防火墙处理流程


过程分析


常见的TCP状态机流程图如下:


先说结论,目前防火墙默认syn包,和ack报文在策略允许的情况下可以建立会话,syn+ack,fin+ack,reset+ack不可以建立会话。


syn包建立会话以及syn/ack无法建立会话这些观点应该没有问题,下面测试ack报文能否建立会话:

 

Receiving, interface = M-GigabitEthernet1/0/0/0

version = 4, headlen = 20, tos = 0

pktlen = 40, pktid = 53008, offset = 0, ttl = 128, protocol = 6

checksum = 56064, s = 10.153.43.154, d = 10.63.16.77

channelID = 0, vpn-InstanceIn = 0, vpn-InstanceOut = 0.

VsysID = 1

prompt: Receiving IP packet from interface M-GigabitEthernet1/0/0/0.

Payload: TCP

  source port = 4151, destination port = 80

  sequence num = 0x270bd60e, acknowledgement num = 0xd89bde2f, flags = 0x10

  window size = 65535, checksum = 0x9aa9, header length = 20.

 

 

*Jan 13 18:45:06:648 2024 F5080D_1 SESSION/7/TABLE:

 Tuple5(EVENT): 10.153.43.154/4151-->10.63.16.77/80(TCP(6))

 Session entry was created.

*Jan 13 18:45:06:648 2024 F5080D_1 FILTER/7/PACKET: The packet is permitted. Src-ZOne=Management, Dst-ZOne=DMZ;If-In=M-GigabitEthernet1/0/0/0(325), If-Out=Route-Aggregation1.100(337); Packet Info:Src-IP=10.153.43.154, Dst-IP=10.63.16.77, VPN-Instance=, Src-MacAddr=0024-e8ae-161f,Src-Port=4151, Dst-Port=80, Protocol=TCP(6), Application=http(31),Terminal=invalid(0), Url-category=invalid(65535), SecurityPolicy=any, Rule-ID=0.

 

*Jan 13 18:45:06:648 2024 F5080D_1 IPFW/7/IPFW_PACKET:

Sending, interface = Route-Aggregation1.100

version = 4, headlen = 20, tos = 0

pktlen = 40, pktid = 53008, offset = 0, ttl = 127, protocol = 6

checksum = 56320, s = 10.153.43.154, d = 10.63.16.77

channelID = 0, vpn-InstanceIn = 0, vpn-InstanceOut = 0.

VsysID = 1

prompt: Sending IP packet received from interface M-GigabitEthernet1/0/0/0 at interface Route-Aggregation1.100.

Payload: TCP

  source port = 4151, destination port = 80

  sequence num = 0x270bd60e, acknowledgement num = 0xd89bde2f, flags = 0x10

  window size = 65535, checksum = 0x9aa9, header length = 20.

 

查看会话计数,确实收到一个报文就建立会话:

RBM_P<F5080D_1>disp session ta ipv4 dest 80 v

Slot 0 in chassis 1:

Initiator:

  Source      IP/port: 10.153.43.154/4151

  Destination IP/port: 10.63.16.77/80

  DS-Lite tunnel peer: -

  VPN instance/VLAN ID/Inline ID: -/-/-

  Protocol: TCP(6)

  Inbound interface: M-GigabitEthernet1/0/0/0

  Source security zone: Management

Responder:

  Source      IP/port: 10.63.16.77/80

  Destination IP/port: 10.153.43.154/4151

  DS-Lite tunnel peer: -

  VPN instance/VLAN ID/Inline ID: -/-/-

  Protocol: TCP(6)

  Inbound interface: Route-Aggregation1.100

  Source security zone: DMZ

State: TCP_ESTABLISHED

Application: HTTP

Rule ID: 0

Rule name: any

Start time: 2024-01-13 18:45:06  TTL: 1194s

Initiator->Responder:            1 packets         40 bytes

 

Responder->Initiator:            0 packets          0 bytes

 

如果收到正向的syn报文能否转发呢,答案是可以:

RBM_P<F5080D_1>disp session ta ipv4 dest 80 v

Slot 0 in chassis 1:

Initiator:

  Source      IP/port: 10.153.43.154/4151

  Destination IP/port: 10.63.16.77/80

  DS-Lite tunnel peer: -

  VPN instance/VLAN ID/Inline ID: -/-/-

  Protocol: TCP(6)

  Inbound interface: M-GigabitEthernet1/0/0/0

  Source security zone: Management

Responder:

  Source      IP/port: 10.63.16.77/80

  Destination IP/port: 10.153.43.154/4151

  DS-Lite tunnel peer: -

  VPN instance/VLAN ID/Inline ID: -/-/-

  Protocol: TCP(6)

  Inbound interface: Route-Aggregation1.100

  Source security zone: DMZ

State: TCP_ESTABLISHED

Application: HTTP

Rule ID: 0

Rule name: any

Start time: 2024-01-13 18:45:06  TTL: 1196s

Initiator->Responder:            2 packets         88 bytes

 

Responder->Initiator:            0 packets          0 bytes

 

如果收到反向的syn/ack或者syn能否转发呢,答案还是可以。

RBM_P<F5080D_1>disp session ta ipv4 dest 80 v

Slot 0 in chassis 1:

Initiator:

  Source      IP/port: 10.153.43.154/4151

  Destination IP/port: 10.63.16.77/80

  DS-Lite tunnel peer: -

  VPN instance/VLAN ID/Inline ID: -/-/-

  Protocol: TCP(6)

  Inbound interface: M-GigabitEthernet1/0/0/0

  Source security zone: Management

Responder:

  Source      IP/port: 10.63.16.77/80

  Destination IP/port: 10.153.43.154/4151

  DS-Lite tunnel peer: -

  VPN instance/VLAN ID/Inline ID: -/-/-

  Protocol: TCP(6)

  Inbound interface: Route-Aggregation1.100

  Source security zone: DMZ

State: TCP_ESTABLISHED

Application: HTTP

Rule ID: 0

Rule name: any

Start time: 2024-01-13 18:45:06  TTL: 1171s

Initiator->Responder:            2 packets         88 bytes

Responder->Initiator:            1 packets         48 bytes

---------------------------------------------------------------------------------

Slot 0 in chassis 1:

Initiator:

  Source      IP/port: 10.153.43.154/4151

  Destination IP/port: 10.63.16.77/80

  DS-Lite tunnel peer: -

  VPN instance/VLAN ID/Inline ID: -/-/-

  Protocol: TCP(6)

  Inbound interface: M-GigabitEthernet1/0/0/0

  Source security zone: Management

Responder:

  Source      IP/port: 10.63.16.77/80

  Destination IP/port: 10.153.43.154/4151

  DS-Lite tunnel peer: -

  VPN instance/VLAN ID/Inline ID: -/-/-

  Protocol: TCP(6)

  Inbound interface: Route-Aggregation1.100

  Source security zone: DMZ

State: TCP_ESTABLISHED

Application: HTTP

Rule ID: 0

Rule name: any

Start time: 2024-01-13 18:45:06  TTL: 1193s

Initiator->Responder:            2 packets         88 bytes

 

Responder->Initiator:            2 packets         96 bytes

 


解决方法

有些友商的机制和我司实现并不相同,譬如:

表1 报文创建会话的情况

协议

开启状态检测功能

关闭状态检测功能

TCP

SYN报文

创建会话,转发报文

创建会话,转发报文

SYN+ACK、ACK报文

不创建会话,丢弃报文

创建会话,转发报文

我司可以使用如下命令配置ACK报文无法建立会话:

tcp syn-check命令用来开启非SYNTCP首报文丢弃功能。

undo tcp syn-check命令用来关闭非SYNTCP首报文丢弃功能。

【命令】

tcp syn-check

undo tcp syn-check

【缺省情况】

SYNTCP首报文丢弃功能处于关闭状态。

【视图】

ASPF策略视图

【缺省用户角色】

network-admin

mdc-admin

vsys-admin

【使用指导】

ASPFTCP连接的首报文进行检测,查看是否为SYN报文,如果不是SYN报文则根据当前配置决定是否丢弃该报文。

当设备首次加入网络时,网络中原有TCP连接的非首包在经过新加入的设备时如果被丢弃,会中断已有的连接,造成不好的用户体验,因此建议暂且不丢弃非SYN首包,等待网络拓扑稳定后,再开启非SYN首包丢弃功能。

【举例】

设置ASPF策略1丢弃非SYNTCP首报文。

<Sysname> system-view

[Sysname] aspf policy 1

[Sysname-aspf-policy-1] tcp syn-check

 

 


该案例对您是否有帮助:

您的评价:1

若您有关于案例的建议,请反馈:

作者在2024-01-18对此案例进行了修订
0 个评论

该案例暂时没有网友评论

编辑评论

举报

×

侵犯我的权益 >
对根叔知了社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔知了社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作