ASPF 技术介绍
1.1 ASPF简介
为了解决包过滤防火墙存在的问题,并提出一种新的解决方案,在网络流量控制方面取得了突破性进展
1.1.1 ASPF的主要功能
ASPF能够实现的主要功能有:
· 对于应用层的协议进行识别和获取相关细节。
· 在网络通信中对传输介质中的数据包进行分析。
- 检测到的信息包括TCP、UDP、UDP-Lite、SCTP、Raw IP、ICMP以及其扩展版本ICMPv6等。
- 每个数据包的状态都会被记录下来,并用于动态判断是否允许其通过防火墙进入内部网络空间。
· 当接收到来自本地网络上的ICMP错误报告时,默认会包含与当前连接相关的详细信息。
· 在处理TCP通信时,默认情况下不会丢弃非SYN类型的首报文;但在网络环境较为复杂或处于初始阶段时建议暂时不丢弃这些报文以避免影响现有连接的安全性。
1.1.2 ASPF应用
在边界节点上运行的ASPF与基于包的防火墙协同运行,在这种架构下,依据ACL规则对报文进行过滤操作(阻挡或通过报文筛选);而ASPF则负责记录允许通过的报文信息,并确保这些响应报文能够正常传输至配置了包过滤防火墙的内部网络设备。
1.1.3 ASPF基本概念
1. 单通道协议和多通道协议
ASPF将应用层协议划分为:
单一连接协议:仅通过单一连接进行数据传输,在应用运行期间完成一次完整的交互过程;例如SMTP和HTTP。
在多通道机制下实施的应用开发中,在整个应用运行过程中都需要实现多个通信链路之间的协调工作;其中一种典型的应用实例是FTP协议。
2. 内部接口和外部接口
如果设备实现了对内网和外网的互联,并基于ASPF技术对内网上的主机及服务器进行防护配置,则该类内网上的端口就被统称为内网口,在外网上的相关端口则统称为外网口
如果旨在保护内部网络,则可以选择在设备外部接口的输出端口或设备内部接口的输入端口上采用ASPF。
3. 安全域间实例
实例用于指定ASPF中需要检测的业务流的相关源和目的安全域。这些源和目的安全域分别描述了经过网络设备后的第一个数据包进入以及离开的安全区域。可参考《安全配置指导》一书中对security domain的相关介绍。
1.1.4 ASPF检测原理
1. 应用层协议检测基本原理
图1-1 应用层协议检测基本原理示意图

如图所示,在边界设备上设置访问控制列表可以使内部网络的主机能够连接到外部网络的同时阻止外部网络的主机连接到内部网络。然而由于该机制会过滤用户请求返回的数据包 从而导致无法实现有效的通信连接 为此可以通过采用基于ASPF的应用层协议检测的方法能够解决这一问题
一旦设备上实现了协议层面的端到端检测功能,则该协议能够实现对所有应用程序层通信连接的监控。以下将详细阐述其工作原理
· 在单通道协议中,在ASPF接收到的第一个数据包被发送出去时就会生成一个对话表格目(Session Table Entry)。该对话表目记录了相应的向前数据包和反向数据包的信息,并用于维持对话状态以及检查对话状态转换是否正确。
通过匹配某条对话表目中的所有数据包即可规避静态包过滤策略的应用。
在采用多通道通信机制时,在ASPF(Active Session Pairing Framework)中不仅负责生成初始对话表格(Session Table),其行为还受到当前通信双方协议状态的影响。具体而言,在ASPF中将根据双方通信状态的变化动态地生成相应的关联表格(Associative Tables),这些表格用于建立跨相关对话关系——即以一种高效的方式将同一业务相关的不同对话单元进行联系与管理。这些表格会在整个通信过程运行期间动态生成,并在其运行流程结束后被移除以释放系统资源。其主要作用是匹配对话开销最小化,并确保经过双方有效协商后的消息能够避免静态包过滤策略带来的潜在问题
单通道应用层协议(如HTTP)的检测流程较为简单,在建立连接时会自动创建会话表项,在断开连接时相应的会话表项也会被删除以避免内存泄漏问题。以下将采用FTP为例来阐述多通道应用层协议的检测流程。
图1-2 FTP检测过程示意图

如图所示,在线参考文献索引系统中
FTP检测在FTP连接建立到拆除过程中的处理如下:
核查FTP客户端向FTP服务器发送的IP数据包内容,并确认其属于基于TCP协议的FTP数据包范畴。随后核对端口号值,并确认此连接是用于建立与目标FTP服务器之间正常会话所需的控制连接;在此基础上创建并记录相关会话信息
(2) 解析相关FTP控制连接报文的信息,并基于会话表项的数据进行TCP连接状态评估。当解析到收到的FTP命令中包含建立数据传输通道指令时,则为每个相关数据连接创建相应的关联表项描述其特征信息。
在收到返回的FTP控制连接报文时,在线依据会话表信息执行TCP状态检查;通过状态检测的结果来判断是否允许接收该报文
当FTP数据连接报文经过设备时,将导致创建会话表项用于建立数据连接,并删除与之相关的相关表项。
(5) 对于返回的数据连接报文,则需要在收到FTP数据时,在收到的数据中匹配相应的数据连接会话表项,并根据这些会话表项完成TCP状态检测流程;随后依据检查结果判断是否允许该报文通过。
当数据链接终止后, 该数据链接的相关会话表项将会随之被删除. 当FTP链接终止后, 该链接相关的会话表项也将随之被删除.
2. 传输层协议检测基本原理
该协议检测机制通过建立会话表项来收集并记录相关传输层信息如源地址、目的地址及端口号等数据,并最终实现动态放行报文的目的。
ASPF外部接口应返回与之前发出去的报文一致的数据包,并要求源IP地址、目的IP地址以及端口号码必须严格吻合。若上述条件未能满足,则该返回的数据包会被丢弃。因此,在仅配置TCP检测而非应用层检测的情况下(例如在处理多端口的应用层协议如FTP时),数据连接就无法建立。
1.2 ASPF配置限制和指导
若启用了'detect'命令,则会对报文中的应用层协议执行ASPF检查;否则会分别针对传输层协议以及应用层协议中的FTP数据执行ASPF检查流程。
当设备上的其他业务模块启动ALG功能时
ASPF策略默认已经开启对传输层协议的检测,无需进行配置,也不能修改。
可依据ASPF策略参数配置应用层协议检测功能设置。当前系统能够支持DNS、FTP、H323、HTTP、SCCP、SIP及SMTP等部分应用层协议的状态合法性验证,并对检测到不符合规范的报文进行丢弃处理。而对于其余未被包含的应用层协议,则仅负责维护连接状态信息而不进行状态合法性验证。
1.3 ASPF配置任务简介
ASPF配置任务如下:
(1) 配置ASPF策略
(2) 在安全域间实例上应用ASPF策略
(3) (可选)开启域间策略丢包时发送ICMP差错报文功能
(4) (可选)开启日志的实时发送功能
1.4 配置ASPF策略
(1) 进入系统视图。
system-view
(2) 创建ASPF策略,并进入ASPF策略视图。
aspf policy aspf-policy-number
生成ASPF策略后,默认情况下系统将自动启用对传输层协议的检测,并且无需额外设置即可完成该操作;此外,在此状态下也无法手动更改相关参数
(3) (可选)配置对应用层协议的ASPF检测。
detect { dns (其子项包括drop与logging两种操作) * } {( ftp, h323, http, sccp, sip, smtp 等 ) [采取drop操作] } gtp ils mgcp nbt pptp rsh rtsp sqlnet tftp xdmcp
缺省情况下,配置了应用层协议FTP的ASPF检测。
在设置action参数的过程中,ASPF还会对应用层协议进行协议状态的有效性验证,并对不满足协议状态要求的报文按照预先设定的操作进行处理。
(4) (可选)开启ICMP差错报文丢弃功能。
icmp-error drop
缺省情况下,不丢弃ICMP差错报文。
(5) (可选)开启非SYN的TCP首报文丢弃功能。
tcp syn-check
缺省情况下,不丢弃非SYN的TCP首报文。
1.5 在安全域间实例上应用ASPF策略
1. 功能简介
仅当预先配置好的 ASPF 策略被应用于相应的安全域间实例时,
则能够实现对该流量的检测。
一旦在某个安全域间实例中部署了 ASPF 策略,
则后续处理该实例的所有通信数据。
每一条来自该安全域间实例的数据包都将被逐一比对 against 会话表项。
无法找到对应且满足过滤规则而不做拦截的情况下,
则会导致生成新的 session table 条目。
仅当预先配置好的 ASPF 策略被应用于相应的安全域间实例时,
则能够实现对该流量的检测。
一旦在某个安全域间实例中部署了 ASPF 策略,
则后续处理该实例的所有通信数据。
每一条来自该安全域间实例的数据包都将被逐一比对 against 会话表项。
无法找到对应且满足过滤规则而不做拦截的情况下,
则会导致生成新的 session table 条目。
在域间实例上ASPF必须与包过滤防火墙协同工作:为了在域间实例上配置包过滤策略以实现跨安全域通信的目的,在确保网络安全的前提下,默认情况下这些策略将被启用;为部署高级威胁防护功能,在配置ASPF策略时,默认情况下该系统将执行报文检测与放行操作。
2. 配置步骤
(1) 进入系统视图。
system-view
(2) 进入安全域间实例视图。
实施区域配对的安全措施从源区获取并传输到目标以及其对应的目标区名称
关于安全域间实例的具体配置,请参见“安全命令参考”中的“安全域”。
(3) 在安全域间实例上应用ASPF策略。
aspf apply policy aspf-policy-number
在默认情况下,在安全域间实例上应用了一个默认设置ASPF策略。该策略能够检测所有传输层协议及FTP协议的数据报文,并执行相应的ASPF检测操作;然而,在这种配置下ICMP差错报文检测功能被关闭,并且非SYN标志位下的TCP首报文丢弃功能也处于禁用状态。
1.6 开启域间策略丢包时发送ICMP差错报文功能
1. 功能简介
在默认情况下,在安全域间实例中设置安全域间策略以过滤掉不符合该策略的数据包,并且会忽略ICMP错误报告包的传输。这有助于降低网络中的无用数据包数量并节省带宽资源
运行 traceroute 功能时涉及的 ICMP 差错报文传输必须启用该错误报告功能以确保 traceroute 能够正确发送 ICMP 错误报告。
2. 配置步骤
(1) 进入系统视图。
system-view
(2) 开启域间策略丢包时发送ICMP差错报文功能。
aspf icmp-error reply
缺省情况下,在域间策略丢包时,设备不发送ICMP差错报文。
1.7 开启日志的实时发送功能
1. 功能简介
该功能仅限于安全策略、对象策略以及包过滤模块的日志发送,并且能够正确处理这些日志数据。
日志的发送方式支持如下两种:
缓存工作流程:当同一数据流的第一份报文与相关策略匹配时,
设备将该记录存储至本地缓存,
随后启动一个定时器用于控制后续的发送频率。
只有在该时间间隔到达时,
系统才会评估是否继续执行后续操作。
在这一设定时间内,
如果有流量与当前记录匹配,
则会立即触发并执行相应操作;
否则系统将在该时间段结束后进行处理。
当缓存中的记录数量达到上限时,
新增符合条件的数据流将无法生成新的记录。
默认情况下,
相邻记录之间的发包时间为5分钟,
且这一设置不可更改。
实时发送采用的方式是:在接收同一数据流时,在首报文中匹配相关策略后生成并立即发送该记录;而该系统设计中并未对记录的数量设置限制;针对持续不断的数据流量而言;如果所匹配的相关策略允许这些报文通过,则该设备仅会记录一次;反之,在遇到相关策略拒绝这些报文时,则该设备会对这条数据流中的每一个报文都单独记录一次
关于安全策略、对象策略以及包过滤开启记录日志功能的详细说明,请您参考各模块的相关配置信息。
2. 配置步骤
(1) 进入系统视图。
system-view
(2) 开启日志的实时发送功能。
aspf log sending-realtime enable
缺省情况下,日志的实时发送功能处于关闭状态,使用缓存方式发送。
1.8 ASPF显示和维护
在设置完上述配置后,在任何视图中运行该命令即可观察到配置后ASPF的运行情况,通过分析显示信息来验证配置的效果是否理想。
在用户视图下执行reset命令可以清除ASPF的统计信息。
表1-1 ASPF显示和维护
1.9 案例操作

1 防火墙上配置IP地址
interface GigabitEthernet1/0/1
设置为路由模式的端口
配置组合模式以启用铜缆连接
将IP地址设置为10.1.1.1,并网关掩码设为255.255.255.0
interface GigabitEthernet1/0/7
设置为路由模式的端口
配置组合模式以启用铜缆连接
将IP地址设置为192.168.1.254,并网关掩码设为255.255.255.0
启用内网ping通路管理
启用外网ping通路管理
2 核心交换机配置IP地址
interface Gigabit Ethernet 1/0/2
port configured for link-local routing
fiber-optic mode enabled
assign IP address 2.2.2.254 with subnet mask 255.255.255.0
interface Gigabit Ethernet 1/0/6
port configured for link-local routing
fiber-optic mode enabled
assign IP address 10.1.1.2 with subnet mask 255.255.255.0
3 配置静态路由
ip route-static 2.2.2.0 24 10.1.1.2
4 将防火墙的指定接口加入对应的区域
Assign the security zone a designation of Local
Assign it a designation of Trust
accessport Gigabit Ethernet 1.0.1 is configured in the Trust zone
Assign it a designation of DMZ
Assign it a designation of Untrust
accessport Gigabit Ethernet 1.0.7 is configured in the Untrust zone
Assign it a designation of Management
5 创建规则ACL 3500
#
acl advanced 3500
rule 0 permit ip source 192.168.1.0 0.0.0.255
#
配置ACL 500以实现对所有来自外部网络的IP流量进行过滤。
建立ASPF策略1并配置用于检测FTP等应用层协议的报文。
在GigabitEthernet1/0/1接口的输入端口实施包过滤策略以阻止所有来自外部网络的IP数据包进入内部网络。
将GigabitEthernet1/0/1接口输出端口上的数据流量与ASPF会话表中的对应项进行匹配后允许外部网络返回的数据包进入内部网络空间。
6 配置ASPF策略
#
aspf policy 1
detect ftp
#
此命令用于创建或选择一个ASPF策略,并指定其编号为1。\n在新华三(H3C)设备上运行此命令时,请注意ASPF策略编号通常在1至256之间。\n有关详细信息,请参阅相关配置文档。
该命令用于在所选的ASPF策略中激活对FTP(File Transfer Protocol)的应用层检测功能。FTP是一种多通道协议,在发起控制连接后会动态建立数据连接。这些数据连接可以是主动型(由服务器向客户端指定端口建立通信)或被动型(由客户端向服务器任意端口发送请求)。detect ftp命令使设备能够识别这种行为模式,并使其相关的数据连接能够通过防火墙进行访问管理,即使这些数据连接的端口在发起控制连通前是未知的。
策略类型
[ASPF-FW-aspf-policy-1]detect ?
dns Domain Name System (DNS)
ftp File Transfer Protocol (FTP)
gtp GPRS Tunneling Protocol(GTP)
h323 H323 Protocol
http Hypertext Transfer Protocol (HTTP)
ils Internet Locator Service (ILS)
mgcp Media Gateway Control Protocol (MGCP)
nbt NetBIOS over TCP/IP (NBT)
pptp Point-to-Point Tunneling Protocol (PPTP)
rsh Remote Shell (RSH)
rtsp Real Time Streaming Protocol(RTSP)
sccp Skinny Client Control Protocol (SCCP)
sip Session Initiation Protocol(SIP)
smtp Simple Message Transfer Protocol (SMTP)
sqlnet Structured Query Language Net (SQLNET)
tftp Trivial File Transfer Protocol(TFTP)
xdmcp X Display Manager Control Protocol (XDMCP)
DNS(Domain Name System)是一种将域名映射到IP地址的技术。它使用户能够通过易于记忆的域名访问互联网上的资源。
FTP (File Transfer Protocol) :主要用于在不同网络之间的设备间传输数据。
GTP (GPRS Tunneling Protocol) :该协议旨在构建基于GPRS网络的数据传输隧道,并实现数据包的传输。
H.323 是一种多媒体通信协议;它涉及语音、视频和数据通信;在视频会议及网络语音传输中得到广泛应用,并支持VoIP技术
HTTP (Hypertext Transfer Protocol) :超越文字的网络通信技术(HTTP),通过网络从网站发送文件至本地终端的通讯机制。
ILS (Internet Locator Service) :ILS(Internet Locator Service) 是一种专门的技术规范体系或系统架构描述文档(Technical Specification Document),其核心功能是实现基于互联网的定位服务机制,并提供相应的接口规范以支持相关应用开发与部署工作。
MGCP (Media Gateway Control Protocol) :该协议用于管理媒体网关上的语音、视频和数据流。
NBT (NetBIOS over TCP/IP) :基于TCP/IP协议的NBT提供了局域网中的网络服务。
PPTP (Protocol of Point-to-Point Tunneling Protocol, PTTP) :该协议旨在通过公共网络实现虚拟专用网络(VPN)之间的直接通信。
RSH (Remote Shell) :远程Shell,允许用户在远程计算机上执行命令。
RTSP (Real Time Streaming Protocol):实时光流协议用于控制多媒体流服务器上的媒体流动,请注意此处可能需要调整语序或句式以避免重复。
Lightweight Client Control Protocol (LCCP) :轻客户端控制协议,在IP电话系统中被用来进行设备控制。
SIP (Session Initiation Protocol) :Session Initiation Protocol (SIP) 是一种用于在媒体服务器之间建立、更新以及关闭多媒体对话的协议体系架构。它通过提供一组标准接口来实现对媒体流的控制,并且支持多路径传输等特性以提高网络资源利用率和可靠性。
SMTP (缩写为SMTP的Simple Message Transfer Protocol) :这是一个广泛采用的通信协议,在互联网上传输邮件。
SQLNET (Structured Query Language Net) :它是一种用于 Oracle 数据库系统中的数据库连接和通信的结构化查询语言网络。
SFTP (Simple File Transfer Protocol) :文件传输协议的一种,在不同网络设备之间实现文件共享与交换;该技术主要应用于配置网络设备并建立基础网络环境。
XDMCP (X Display Manager Control Protocol) 通常称为 X 显示管理器控制协议,在计算环境中被广泛使用以实现跨终端的图形交互功能。该协议通过提供一组标准接口来统一不同设备之间的数据传输方式,并支持多分辨率缩放、窗口管理和资源重用等功能。
7 采用ASPF策略
**#
资源对齐配置中的信任关系如下:
Trust source Trust destination Untrust
包过滤器设置为3500
应用政策编号1
8 检测ASPF
[ASPF-FW]display aspf session ipv4
Slot 1 :
Initiator:
Source IP/port: 192.168.1.254/13302
Destination IP/port: 192.168.1.1/2048
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: ICMP(1)
Inbound interface: InLoopBack0
Source security zone: Local
[ASPF-FW]display aspf session verbose
Slot 1 :
Initiator:
Source IP/port: 192.168.1.254/13331
Destination IP/port: 192.168.1.1/2048
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: ICMP(1)
Inbound interface: InLoopBack0
Source security zone: Local
Responder:
Source IP/port: 192.168.1.1/13331
Destination IP/port: 192.168.1.254/0
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: ICMP(1)
Inbound interface: GigabitEthernet1/0/7
Source security zone: Untrust
State: ICMP_REPLY
Application: ICMP
Rule
ID: -/-/-
Rule name:
Start time: 2024-09-11 15:01:04 TTL: 26s
Initiator->Responder: 0 packets 0 bytes
Responder->Initiator: 0 packets 0 bytes
Total sessions found: 1
