(1)请论述FTP的工作原理。
答:
FTP的工作模式分为主动模式和被动模式
主动模式:
客户端打开一个随机的端口(端口号大于1024,在这里,我们称为x),同时一个FTP进程连接至服务器的21号命令端口。此时,源端口为随机端口x,在客户端;远程端口为21,在服务器端。
客户端开始监听端口(x+1),同时向服务器发送一个端口命令(通过服务器的21号命令端口),此命令告诉服务器现在客户端正在监听的端口号并且已准备好从此端口接收数据。这个端口就是我们所知的数据端口。
服务器打开20号端口并且建立和客户端数据端口的连接。此时,源端口为20,远程数据端口为(x+1)。
客户端通过本地的数据端口建立一个和服务器20号端口的连接,然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。
被动模式:
当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N>1024和N+1)。
第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。
这样做的结果是服务器会开启一个任意的非特权端口(P>1024),并发送PORTP命令给客户端。
然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
(2)网络中的FTP与NAT结合,FTP在防火墙场景需要注意什么?
答:
FTP和NAT结合后,在防火墙需要开启ASPF(应用层包过滤)以及ALG(应用层代理网关)功能,才能正常访问FTP业务。
在主动模式和被动模式情况下,防火墙安全策略如果只方向控制通道的流量,是无法正常实现FTP业务的访问,因为FTP的数据通道协商的端口号具有随机性,无法精确进行预测,为了让防火墙能动态放行数据通道的流量,需要开启ASPF功能,即通过对FTP控制通道应用层信息进行分析,提前预测数据通道报文行为。根据应用层信息中的IP和端口创建Server-map表,后续数据通道产生的报文到达FW后命中该Server-map表项,不再受安全策略的限制,被动放行,并生成会话表项。
在结合NAT的场景下,配置ALG功能后,在主动模式下FW通过分析PORT命令的应用层信息,将PORT命令中携带的私网IP和私网端口转换成公网地址和公网端口后再转发给服务器,并创建Server-map表。服务器向转换后的公网地址和公网端口发起数据连接,报文到达FW后命中该Server-map表项,自动将目的地址和端口转换为真实的私网地址,从而放行数据通道的数据。
被动模式下FW通过分析PASVCommand命令的应用层信息,将命中携带的私网IP和私网端口转换成公网地址和公网端口后再转发给客户端,并创建Server-map表。客户端向转换后的公网地址和公网端口发起数据连接,报文到达FW后命中该Server-map表项,自动将目的地址和端口转换为真实私网地址,从而放行数据通道的数据。
FTPServer配置命令
ftp server enable //开启FTP服务器
set default ftp-directory flash //配置FTP服务目录
aaa //进入AAA数据库
local-user huawei password cipher 123 //配置本地用户华为
local-user huawei privilege level 3 //配置访问级别
local-user huawei ftp-directory flash: //配置用户文件目录
local-user huawei service-type ftp //用户服务模式为FTP