什么是ASPF,为什么需要ASPF?

2019-09-25 09:59:03 阅读量:


 

在配置安全策略前,我们先大概了解下FTP协议。协议分为单通道协议和多通道协议,单通道协议即在传输过程中占用一个端口号,如我们常见的Telnet、SSH、HTTP等。多通道协议即在传输过程中占用两个或两个以上的端口号,如FTP、DNS、QQ等。
 

FTP协议是一个典型的多通道协议,在其工作过程中,FTP Client 和FTP Server 之间将会建立两条连接:控制连接和数据连接。控制连接用来传输FTP 指令和参数,其中就包括建立数据连接所需要的信息;数据连接用来获取目录及传输数据。数据连接使用的端口号是在控制连接中临时协商的。
 

根据数据连接的发起方式FTP协议分为两种工作模式:主动模式(PORT 模式)和被动模式(PASV 模式)。主动模式中,第二信道FTP Server 主动向FTP Client 发起数据连接;被动模式中,第二信道FTP Server 被动接收FTP Client 发起的数据连接。
 

哪个模式一般是取决于FTP客户端,这里我们以主动模式为例进行讲解,主动模式的协议交互流程如下:


首先 FTP 客户端向FTP服务器的21端口发起连接建立控制通道,然后通过PORT命令协商客户端使用的数据传输端口号。协商成功后,服务器主动向客户端的这个端口号发起数据连接。而且每次数据传输都会协商不同的端口号。我们配置安全策略时应该放行 FTP 协议,也就是21 端口。
 

security-policy

  source-zone trust

  source-address 10.1.4.1 32

  service ftp

 

 


正常登录,那是不是说明没有问题?别急,敲一下dir(ftp 中查看数据列表)

 

 

如何在防火墙开启ASPF呢,命令很简单,进入到系统视图:

 


当我们启用后,继续进行测试
 


FTP访问成功!!那我们接下来看看防火墙上的session表项

 

发现有两条表项,有一条ftp-data的表项从10.1.3.1(FTPserver)的20号端口来访问10.1.4.1(FTPclient)50763。我们并没有放行相应的策略,上面已经提到了server-map表,那来看看防火墙上的server-map表吧。

 

Server-map 表中记录了FTP 服务器向FTP 客户端的50763端口号发起的数据连接,服务器向客户端发起数据连接时将匹配这个Server-map 表转发,而无需再配置反向安全策略。


数据连接的第一个报文匹配 Server-map表转发后,防火墙将生成这条数据连接的会话,该数据连接的后续报文匹配会话表转发,不再需要重新匹配Server-map表项。由于产生的是动态的Server-map表项一直没有报文匹配,经过一定老化时间后就会被删除。这种机制保证了Server-map 表项这种较为宽松的通道能够及时被删除,保证了网络的安全性。当后续发起新的数据连接时会重新触发建立Server-map表项。