如何为FTP和TFTP开放安全策略
FTP
FTP是多通道协议,客户端首先向服务端的21号端口发起连接请求,建立控制通道,然后客户端和服务端通过协商来确定数据通道的端口。根据FTP工作模式的不同,其协商过程也不同。
- 主动模式:客户端随机选择一个端口,发起PORT命令,通知服务端自己使用该端口来接收数据。服务端从20号端口向该端口发起新的连接。
- 被动模式:客户端发起PASV命令,服务端随机选择一个端口,通知客户端向该端口发起数据请求。
不管是哪种工作模式,数据通道使用的端口都是随机的。你无法为数据通道配置精确的安全策略。这个时候,你需要在安全域间启用ASPF功能来解决这个问题。
firewall interzone trust untrust detect ftp quit
当然,ASPF只是解决数据通道的问题,你仍然需要为控制通道配置安全策略。
序号 |
名称 |
源安全区域 |
目的安全区域 |
源地址/地区 |
目的地址/地区 |
服务 |
动作 |
---|---|---|---|---|---|---|---|
101 |
Allow inbound traffic |
trust |
local |
10.1.1.10/24 |
10.1.1.1/24 |
ftp (TCP: 21) |
permit |
102 |
Allow outbound traffic |
local |
untrust |
10.1.2.1/24 |
10.1.2.10/24 |
ftp (TCP: 21) |
permit |
103 |
Allow transmit traffic |
trust |
untrust |
10.1.1.10/24 |
10.1.2.10/24 |
ftp (TCP: 21) |
permit |
以FTP服务器(10.1.2.10)工作于主动模式为例,客户端(10.1.1.10)和服务器之间会建立两个会话。ftp表示控制通道会话,客户端主动访问服务器;ftp-data表示数据通道会话,服务器主动访问客户端。
<sysname> display firewall session-table Current Total Sessions : 2 ftp VPN:public --> public 10.1.1.10:64752+->10.1.2.10:21 //ftp表示此会话为ftp控制通道,+->表示该会话进入ASPF流程 ftp-data VPN:public --> public 10.1.2.10:20-->10.1.1.10:31050 //ftp-data表示此会话为FTP数据通道 <sysname> display firewall server-map Type: ASPF, 10.1.2.10 -> 10.1.1.10:31050, Zone: --- Protocol: tcp(Appro: ftp-data), Left-Time: 00:00:15 //ftp-data表示防火墙通过ASPF流程识别此数据流为FTP数据流 VPN: public -> public
TFTP
TFTP是简单文件传输协议,其与FTP的主要不同之处在于:
- TFTP基于UDP传输,使用69号端口建立控制通道。因此,需要在安全策略中指定服务为tftp (UDP 69)。
- TFTP跟FTP一样动态协商数据通道端口,但不是ASPF默认支持的协议,需要自定义配置。
acl 3000 rule permit udp destination-port eq 69 quit firewall interzone trust untrust detect user-defined 3000 outbound quit
其中,detect user-defined 3000 outbound命令中,outbound表示客户端从高优先级的安全区域访问位于低优先级的安全区域的服务端,反之则为inbound。