ASPF(Application Specific Packet Filter)增强VRP平台上的防火墙功能,提供针对应用层的报文过滤功能,类似于Cisco基于报文上下状态的访问控制技术(Context-based Access Control CBAC)
ASPF是一种高级通信过滤,它检查应用层协议信息并监控基于连接的应用层协议状态。对于所有连接,每个连接状态信息都将被ASPF维护并用于动态决定数据包是否被允许通过防火墙或丢弃。
ASPF的安全特性1、支持应用层协议检测
2、支持会话状态动态管理
3、支持IP分片报文检测
4、支持会话日志与调试跟踪
以下通过一简单的案例理解以下ASPF的具体作用。通过eNSP搭建如下环境,FTP客户端经过防火墙访问FTP服务器,安全策略怎么配置呢?
这还不容易,在Trust到Untrust配置安全策略,指定源/目的IP、指定协议为FTP不就好了。
[USG6000V1]security-policy
[USG6000V1-policy-security]rule name policy_allow_ftp
[USG6000V1-policy-security-rule-policy_allow_ftp]source-zone trust
[USG6000V1-policy-security-rule-policy_allow_ftp]source-address 192.168.1.0 24
[USG6000V1-policy-security-rule-policy_allow_ftp]destination-address 202.102.10.100 32
[USG6000V1-policy-security-rule-policy_allow_ftp]service ftp
[USG6000V1-policy-security-rule-policy_allow_ftp]access-authentication
[USG6000V1-policy-security-rule-policy_allow_ftp]action permit
然后我们看看FTP客户端能否成功访问?
从上图看到确实能正常访问到FTP,其实华为USG6000默认情况下是开启了ASPF功能的,如下图
如果我们把ASPF下的FTP钩去掉,还能正常访问吗?答案是不能正常访问。如下图
查看会话表也成功建立了会话:
看起来应该没问题啊,不是说在首包的方向上应用安全策略,后续包直接匹配会话转发吗?
那我们分析一下FTP协议是否有什么特殊之处呢?
FTP协议是一个典型的多通道协议,在其工作过程中,FTP Client和FTP Server之间将会建立两条连接:控制连接和数据连接。控制连接用来传输FTP指令和参数,其中就包括建立数据连接所需要的信息;数据连接用来获取目录及传输数据。数据连接使用的端口号是在控制连接中临时协商的。
根据数据连接的发起方式FTP协议分为两种工作模式:主动模式(PORT模式)和被动模式(PASV模式)。主动模式中,FTP Server主动向FTP Client发起数据连接;被动模式中,FTP Server被动接收FTP Client发起的数据连接。
模式在一般的FTP客户端中都是可以设置的,这里我们以主动模式为例进行讲解,主动模式的协议交互流程如下:
而我们配置的安全策略仅开放了FTP协议,也就是21端口。当FTP客户端向服务器发起控制连接时建立了如下会话。
而服务器向客户端发起数据连接的源/目的端口号分别是20和临时协商的端口号yyyy,显然不是这条连接的后续报文,无法命中此会话转发。因此会出现可以验证用户密码,但是无法获取目录列表的现象。
ASPF是针对应用层的包过滤,其原理是检测通过设备的报文的应用层协议信息,记录临时协商的数据连接,使得某些在安全策略中没有明确定义要放行的报文也能够得到正常转发。
记录临时协商的数据连接的表项称为Server-map表,这相当于在防火墙上开通了“隐形通道”,使得像FTP这样的特殊应用的报文可以正常转发。当然这个通道不是随意开的,是防火墙分析了报文的应用层信息之后,提前预测到后面报文的行为方式,所以才打开了这样的一个通道
说了这么多ASPF怎么配置呢,很简单,对应USG6000,只需要在web页面开启就行了,如下图
FTP访问成功:
此时查看Server-map,可以看到已经自动生成了维护FTP数据连接的表项:
Server-map表中记录了FTP服务器向FTP客户端的2067端口号发起的数据连接,服务器向客户端发起数据连接时将匹配这个Server-map表转发,而无需再配置反向安全策略。
Server-map表项由于一直没有报文匹配,经过一定老化时间后就会被删除。这种机制保证了Server-map表项这种较为宽松的通道能够及时被删除,保证了网络的安全性。当后续发起新的数据连接时会重新触发建立Server-map表项。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved