通过FTP进行文件操作
用户可以使用FTP协议在本地与远程终端之间进行文件操作,在版本升级等文件业务操作中此协议广泛应用。
配置流程
使用FTP协议存在安全风险,建议使用SFTP V2或SCP方式进行文件操作。
通过FTP进行文件操作的配置流程如表7-5所示。序号1、2、3、4之间没有严格的配置顺序。
操作步骤
- 配置FTP服务器功能及参数表7-7 配置FTP服务器功能及参数
操作步骤
命令
说明
进入系统视图
system-view
-
(可选)指定FTP服务器端口号
ftp [ ipv6 ] server port port-number
缺省情况下,FTP服务器端口号是21。
如果配置了新的端口号,FTP服务器端先断开当前已经建立的所有FTP连接,然后使用新的端口号开始尝试连接。这样可以有效防止攻击者对FTP服务标准端口的访问。
使能FTP服务器
ftp [ ipv6 ] server enable
缺省情况下,设备的FTP服务器功能是关闭的。
指定FTP服务器的源地址
ftp server source { -a source-ip-address | -i interface-type interface-number }
ftp server source all-interface
ftp ipv6 server source -a ipv6-address [-vpn-instancevpn-instance-name ]
ftp ipv6 server source all-interface
指定FTP服务器的源地址,实现对设备进出报文的过滤,保证安全性。
配置了服务器的源地址后,登录服务器时,所输入的服务器地址必须与该命令中配置的一致,否则无法成功登录。
说明:执行ftp server source all-interface或ftp ipv6 server source all-interface命令后,FTP服务器会接收来自所有接口的登录连接请求,增加系统安全风险,建议用户取消配置该命令。
(可选)配置FTP连接空闲时间
ftp [ ipv6 ] server timeout minutes
缺省情况下,连接空闲时间为30分钟。
在设定的时间内,如果FTP连接始终处于空闲状态时,系统将自动断开FTP连接。
(可选)配置在一定时间内通过FTP登录服务器失败次数的告警上报门限和告警恢复门限
ftp server login-failed threshold-alarm upper-limit report-times lower-limit resume-times period period-time
缺省情况下,在5分钟内发生30次或以上次数的登录失败,即产生告警,在5分钟内登录失败次数小于20,即告警恢复。
提交配置
commit
-
如果变更端口号前FTP服务已经启动,则不能变更成功。需执行undo ftp [ ipv6 ] server命令关闭FTP服务,再进行端口号变更。
当客户端与设备之间的文件操作结束后,请执行undo ftp [ ipv6 ] server命令,及时关闭FTP服务器功能,从而保证设备的安全。
- 配置FTP本地用户
当用户通过FTP进行文件操作时,需要在作为FTP服务器的设备上配置本地用户名及口令、指定用户的服务类型以及可以访问的目录,否则用户将无法通过FTP访问设备。
表7-8 配置FTP本地用户操作步骤
命令
说明
进入系统视图
system-view
-
进入AAA视图
aaa
-
配置本地用户名和密码
local-user user-name password irreversible-cipher irreversible-cipher-password
-
配置本地用户级别
local-user user-name level level
必须将用户级别配置在管理员级别(3级或15级),否则FTP连接将无法成功。
配置本地用户的服务类型为FTP
local-user user-name service-type ftp
缺省情况下,本地用户可以使用所有的接入类型。
配置FTP用户的授权目录
local-user user-name ftp-directory directory
缺省情况下,本地用户的FTP目录为空。
当有多个FTP用户且有相同的授权目录时,可以执行ftp server default-directory directory命令,为FTP用户配置缺省工作目录。此时,不需要通过local-user user-name ftp-directory directory命令为每个用户配置授权目录。
提交配置
commit
-
- (可选)配置FTP访问控制
ACL是一系列有顺序的规则组的集合,这些规则根据数据包的源地址、目的地址、端口号等来描述。ACL通过规则对数据包进行分类,这些规则应用到路由设备,路由设备根据这些规则判断哪些数据包可以接收,哪些数据包需要拒绝。
用户可以配置FTP访问控制列表,实现只允许指定的客户端登录到设备,以提高安全性。
ACL规则:当ACL的rule配置为permit时,则允许匹配该rule规则的其他设备与本设备建立FTP连接。
当ACL的rule配置为deny时,则拒绝匹配该rule规则的其他设备与本设备建立FTP连接。
当ACL配置了rule,但来自其他设备的报文没有匹配该rule规则时,则拒绝其他设备与本设备建立FTP连接。
当ACL未配置rule时,则允许任何其他设备与本设备建立FTP连接。
表7-9 (可选)配置FTP访问控制操作步骤
命令
说明
进入系统视图
system-view
-
进入ACL视图
acl { [ number ] acl-number | name acl-name }
-
配置ACL规则
rule [ rule-id ] [ name rule-name ] { deny | permit } [ fragment-type fragment | source { source-ip-address { source-wildcard | 0 | src-netmask } | any } | time-range time-name | vpn-instance vpn-instance-name | logging ] *
-
退回到系统视图
quit
-
配置FTP基本访问控制列表
ftp [ ipv6 ] server acl { acl-number | acl-name }
-
提交配置
commit
-
- (可选)配置IP地址锁定功能
用户FTP登录失败后,根据IP地址记录FTP登录失败的次数,当一定时间内失败次数达到阈值后,将IP地址锁定,所有通过该IP地址登录的用户均不能正常连接。
表7-10 (可选)配置IP地址锁定功能操作步骤
命令
说明
进入系统视图
system-view
-
使能FTP服务器上的客户端IP地址锁定功能
undo ftp server ip-block disable
缺省情况下,FTP服务器上的客户端IP地址锁定功能处于使能状态。
配置连续认证失败次数和连续失败时间周期
ftp server ip-block failed-times failed-times period period
缺省情况下,锁定用户前的连续认证失败次数为6,连续失败时间周期为5分钟。
配置被锁定用户的自动解锁时间
ftp server ip-block reactive reactive-period
缺省情况下,被锁定用户的自动解锁时间为5分钟。
退回到系统视图
quit
-
解除已锁定的IP地址
activate ftp server ip-block ip-address ip-address [ vpn-instance vpn-name ]
-
提交配置
commit
-
- 用户通过FTP访问设备
从终端通过FTP访问设备,可以选择使用Windows命令行提示符或第三方软件。此处以Windows命令行提示符为例进行配置。
执行Windows命令ftp ip-address,通过FTP方式访问设备。
此处输入的IP地址为设备上配置的IP地址,且与用户终端IP地址路由可达。
根据提示输入用户名和口令,按Enter键,当出现FTP客户端视图的命令行提示符,如ftp>,此时用户进入了FTP服务器的工作目录。(以下显示信息仅为示意)
C:\Windows\System32> ftp 192.168.150.208 连接到 192.168.150.208。 220 FTP service ready. 用户(192.168.150.208:(none)):huawei 331 Password required for huawei. 密码: 230 User logged in. ftp>
- 通过FTP命令进行文件操作
用户访问FTP服务器后,可以通过FTP命令进行文件操作,包括目录操作、文件操作、配置文件传输方式、查看FTP命令在线帮助等。
用户的操作权限受限于服务器上对该用户的权限设置。
以下各操作没有严格顺序,可根据需求选择一种或多种操作项目。
表7-11 通过FTP命令进行文件操作操作项目
命令
说明
改变服务器上的工作路径
cd remote-directory
-
改变服务器的工作路径到上一级目录
cdup
-
显示服务器工作路径
pwd
-
显示或者改变客户端的工作路径
lcd [ local-directory ]
与pwd不同的是,lcd命令执行后显示的是客户端的本地工作路径,而pwd显示的则是远端服务器的工作路径。
在服务器上创建目录
mkdir remote-directory
创建的目录可以为字母和数字等的组合,但不可以为<、>、?、\、:等特殊字符。
在服务器上删除目录
rmdir remote-directory
-
显示服务器上指定目录或文件的信息
dir/ls [ remote-filename [ local-filename ] ]
- ls命令只能显示出目录/文件的名称,而dir命令可以查看目录/文件的详细信息,如大小,创建日期等。
- 如果指定远程文件时没有指定路径名称,那么系统将在用户的授权目录下搜索指定的文件。
删除服务器上指定文件
delete remote-filename
-
上传单个或多个文件
put local-filename [ remote-filename ]
或
mput local-filenames
- put命令是从本地设备上传单个文件至远端服务器。
- mput命令是从本地设备上传多个文件至远端服务器。
下载单个或多个文件
get remote-filename [ local-filename ]
或
mget remote-filenames
- get命令是从远端服务器下载单个文件并存储在本地。
- mget命令是从远端服务器下载多个文件并存储在本地。
配置传输文件的数据类型为ASCII模式
ascii
二选一
缺省情况下,文件传输方式为ASCII模式。
传输文本文件使用ASCII方式,传输程序、系统软件、数据库文件等使用二进制模式。
配置传输文件的数据类型为二进制模式
binary
配置文件传输方式为被动方式
passive
二选一
缺省情况下,数据传输方式是主动方式。
配置文件传输方式为主动方式
undo passive
查看FTP命令的在线帮助
remotehelp [ command ]
-
使能系统的提示功能
prompt
缺省情况下,不使能信息提示。
说明:本命令只应用在使用mput命令和mget命令的多文件传输场景中。其中对于使用mget命令的场景,如果被传输的文件已经在本地存在,无论系统提示的功能被使能还是被禁止,系统都会提示用户是否覆盖本地已存在的文件。
打开verbose开关
verbose
如果打开verbose开关,将显示所有FTP响应,包括FTP协议信息,以及FTP服务器返回的详细信息。
- (可选)更改登录用户
设备可以在不退出FTP客户端视图的情况下,以其他的用户名登录到FTP服务器。所建立的FTP连接,与执行ftp命令建立的FTP连接完全相同。
操作步骤
命令
说明
FTP客户端视图下,更改当前的登录用户
user user-name
更改当前的登录用户后,原用户与服务器的连接将断开。
- 断开与FTP服务器的连接
用户可以在FTP客户端视图中选择不同的命令断开与FTP服务器的连接。
操作步骤
命令
说明
终止与服务器的连接,并退回到用户视图
bye 或 quit
二选一。
终止与服务器的连接,并留在FTP客户端视图
close 或 disconnect