02-FTP和TFTP配置
本章节下载: 02-FTP和TFTP配置 (361.31 KB)
FTP(File Transfer Protocol,文件传输协议)用于在FTP服务器和FTP客户端之间传输文件,是IP网络上传输文件的通用协议。
FTP协议使用TCP端口20和21进行传输。端口20用于传输数据,端口21用于传输控制消息。
设备既可以作为FTP服务器,也可以作为FTP客户端。
FTP有两种文件传输模式:
· 二进制模式,用于传输非文本文件(比如后缀名为.app、.bin和.btm的文件);
· ASCII码模式,用于传输文本格式的文件(比如后缀名为.txt、.bat和.cfg的文件)。
当设备作为FTP客户端时,用户可通过命令行指定使用的传输模式,缺省为二进制模式;当设备作为FTP服务器时,使用的传输模式由FTP客户端决定。
FTP有两种工作方式:
· 主动方式(PORT):建立数据连接时由FTP服务器发起连接请求,当FTP客户端处于防火墙后时不适用(如FTP客户端处于私网内)。
· 被动方式(PASV):建立数据连接时由FTP客户端发起连接请求,当FTP服务器限制客户端连接其高位端口(一般情况下大于1024)时不适用。
是否使用被动方式由FTP客户端程序决定,不同FTP客户端软件对FTP工作方式的支持情况可能不同,请在使用时以软件的实际情况为准。
设备作为FTP服务器或FTP客户端时,若flash目录所在磁盘文件系统为VFAT类型,则设备支持接收的单个文件大小最大为4G,超出时将会写入失败。
FTP服务器配置任务如下:
(1) 启动FTP服务器功能
(2) 配置FTP服务器的认证和授权
(3) (可选)配置FTP服务器访问限制
(4) (可选)配置FTP服务器连接管理参数
(5) (可选)配置FTP服务器引用SSL
(6) (可选)配置FTP服务器发送报文的DSCP优先级
(7) (可选)释放已建立的FTP连接
(1) 进入系统视图。
system-view
(2) 启动FTP服务器功能。
ftp server enable
缺省情况下,FTP服务器功能处于关闭状态。
只有认证通过并授权成功的用户,才能通过FTP访问设备上的指定路径。
设备对FTP客户端的认证,有以下两种方式:
· 本地认证:设备作为认证服务器,在本设备上验证FTP客户端的用户名和密码是否合法。
· 远程认证:远程认证是指设备将用户输入的用户名/密码发送给远端的认证服务器,由认证服务器来验证用户名/密码是否匹配。
设备对FTP客户端的授权,有以下两种方式:
· 本地授权:设备给FTP客户端授权,指定FTP客户端可以使用设备上的某个路径。
· 远程授权:远程服务器给FTP客户端授权,指定FTP客户端可以使用设备上的某个路径。
关于认证和授权的详细配置请参见“用户接入与认证配置指导”中的“AAA”。
通过将FTP服务与ACL关联,可以过滤掉来自某些FTP客户端的FTP请求报文,只允许符合ACL过滤规则的FTP客户端访问设备。
配置ACL限制FTP客户端时:
· 当未引用ACL时,允许所有FTP客户端访问设备;
· 当引用的ACL不存在或者为空时,禁止所有FTP客户端访问设备;
· 当引用的ACL非空时,则只有ACL中permit的用户才能访问设备,禁止其他用户访问设备,以避免非法用户访问设备;
· 如果多次使用该命令配置FTP服务与ACL关联,最新配置生效。
· 在引用的ACL中,若某规则指定了vpn-instance参数,则表示该规则仅对VPN报文有效;若规则未指定vpn-instance参数,则表示该规则仅对公网报文有效。
关于ACL的详细描述和介绍请参见“ACL和QoS配置指导”中的“ACL”。
该配置只过滤新建立的FTP连接,不会对已建立的FTP连接和操作造成影响。
(1) 进入系统视图。
system-view
(2) 配置FTP服务器访问限制。
ftp server acl { advanced-acl-number | basic-acl-number | ipv6 { advanced-acl-number | basic-acl-number } }
缺省情况下,FTP服务器的访问不受ACL限制。
(3) 开启匹配ACL deny规则后打印日志信息功能。
ftp server acl-deny-log enable
缺省情况下,匹配ACL deny规则后打印日志信息功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 配置FTP服务器的连接空闲时间。
ftp timeout minutes
缺省情况下,连接空闲时间为30分钟。
如果在设置的连接空闲时间到期时,FTP服务器和客户端一直没有信息交互,则断开它们之间的连接。
(3) 配置使用FTP方式同时登录设备的在线的最大用户连接数。
aaa session-limit ftp max-sessions
缺省的最大用户连接数为32。
配置本命令后,已经在线的用户连接不会受到影响,只对新的用户连接生效。如果当前在线的用户连接数已经达到最大值,则新的连接请求会被拒绝,登录会失败。
关于该命令的详细描述请参见“用户接入与认证命令参考”中的“AAA”。
当支持FTP安全扩展协议的两台设备建立FTP连接时,通过将FTP服务与SSL服务器端策略关联,可以建立一条安全的SSL连接来传输数据,保证FTP传输的安全性。
(1) 进入系统视图。
system-view
(2) 配置FTP服务器引用SSL。
ftp server ssl-server-policy policy-name
缺省情况下,FTP服务器未引用SSL服务器端策略。
(1) 进入系统视图。
system-view
(2) 配置FTP服务器发送的FTP报文的DSCP优先级。
(IPv4网络)
ftp server dscp dscp-value
(IPv6网络)
ftp server ipv6 dscp dscp-value
缺省情况下,FTP服务器发送的FTP报文的DSCP优先级为0。
(1) 进入系统视图。
system-view
(2) 配置指定统计时间内FTP用户登录失败的告警上报和取消阈值。
ftp server login-failed threshold-alarm upper-limit report-times lower-limit resume-times period period-time
缺省情况下,统计时间为5分钟,FTP用户登录失败的告警上报和取消阈值分别为30和20。
配置本命令后,在指定的统计时间内,当FTP用户登录失败的次数大于等于告警上限阈值,或者从超过上限回落到小于下限阈值时,将产生对应的告警信息,以便管理及时了解FTP用户登录的实时情况。
请在用户视图下执行本命令,释放已建立的FTP连接。请选择其中一项进行配置。
· 强制释放与指定用户之间的FTP连接。
free ftp user username
· 强制释放与指定IP地址的主机之间的FTP连接。
free ftp user-ip [ ipv6 ] ip-address [ port port ]
可在任意视图下执行以下命令:
display ftp-server
· 查看当前FTP登录用户的详细情况。
· 主设备和从设备共同组成IRF。主设备的成员编号为1,从设备的成员编号为2。
· IRF作为FTP服务器,PC作为FTP客户端。
· 将存储在PC上的文件temp.bin上传到FTP服务器,并使用FTP功能备份IRF的配置文件。
· FTP客户端登录FTP服务器的用户名为abc,密码为hello12345。
图1-1 FTP服务器典型配置组网图
如果主设备和从设备剩余的内存空间不够,请使用delete /unreserved file-url命令删除部分暂时不用的文件后再执行以下操作。
配置前请确保Device和PC之间路由可达,IP地址如图1-1所示,具体配置步骤略。
(1) IRF(FTP server)上的配置
# 在IRF上添加一个本地用户abc,并设置其认证密码为hello12345,访问时使用的用户角色为network-admin,授权访问目录为Flash的根目录,abc可以使用的服务类型为FTP。
<Sysname> system-view
[Sysname] local-user abc class manage
[Sysname-luser-manage-abc] password simple hello12345
[Sysname-luser-manage-abc] authorization-attribute user-role network-admin work-directory flash:/
如果要直接访问从设备Flash的根目录,需要将“authorization-attribute work-directory flash:/”配置中的“flash:/”替换成“slot2#flash:/”。
[Sysname-luser-manage-abc] service-type ftp
[Sysname-luser-manage-abc] quit
# 启动IRF的FTP服务功能。
[Sysname] ftp server enable
[Sysname] quit
(2) PC(FTP client)的配置
# 以用户名abc、密码hello12345登录FTP服务器。
c:\> ftp 1.1.1.1
Connected to 1.1.1.1.
220 FTP service ready.
User(1.1.1.1:(none)):abc
331 Password required for abc.
Password:
230 User logged in.
# 将传输模式设置为ascii,并将IRF的配置文件config.cfg下载到PC本地进行备份。
ftp> ascii
200 TYPE is now ASCII
ftp> get config.cfg back-config.cfg
# 将传输模式设置为binary,并上传文件temp.bin到主设备存储介质的根目录下。
ftp> binary
200 TYPE is now 8-bit binary
ftp> put temp.bin
# 退出FTP。
FTP客户端配置任务如下:
(1) 建立FTP连接
(2) (可选)显示帮助信息
(3) (可选)查看FTP服务器上的目录/文件
(4) (可选)操作FTP服务器上的目录
(5) (可选)操作FTP服务器上的文件
(6) (可选)更改登录用户
(7) (可选)FTP连接的维护与调试
(8) (可选)断开FTP连接
建立FTP连接配置任务如下:
(1) (可选)配置FTP客户端发送的FTP报文的源地址
(2) 登录FTP服务器
(3) 配置FTP文件传输方式
· 使用ftp client source命令指定了源地址后,又在ftp命令中指定了源地址,则采用ftp命令中指定的源地址进行通信。
· 使用ftp client ipv6 source命令指定了源地址后,又在ftp ipv6命令中指定了源地址,则采用ftp ipv6命令中指定的源地址进行通信。
(1) 进入系统视图。
system-view
(2) 配置FTP客户端发送的FTP报文的源地址。
(IPv4网络)
ftp client source { interface interface-type interface-number | ip source-ip-address }
缺省情况下,未配置源地址,使用路由出接口的主IP地址作为设备发送FTP报文的源IP地址。
(IPv6网络)
ftp client ipv6 source { interface interface-type interface-number | ipv6 source-ipv6-address }
缺省情况下,未配置源地址,设备自动选择IPv6 FTP报文的源IPv6地址,具体选择原则请参见RFC 3484。
· 从用户视图登录FTP服务器。
(IPv4网络)
ftp [ ftp-server [ service-port ] [ vpn-instance vpn-instance-name ] [ dscp dscp-value | source { interface interface-type interface-number | ip source-ip-address } | -d ] * ]
(IPv6网络)
ftp ipv6 [ ftp-server [ service-port ] [ vpn-instance vpn-instance-name ] [ dscp dscp-value | source { interface interface-type interface-number | ipv6 source-ipv6-address } | -d ] * [ -i interface-type interface-number ] ]
· 从FTP客户端视图登录FTP服务器。
a. 请在用户视图下执行本命令,进入FTP客户端视图。
ftp [ ipv6 ]
b. 登录FTP服务器。
open server-address [ service-port ]
(1) 请在用户视图下执行本命令,进入FTP客户端视图。
ftp
(2) 设置FTP文件传输的模式。
¡ 配置FTP文件传输的模式为ASCII模式。
ascii
¡ 配置FTP文件传输的模式为二进制模式。
binary
缺省情况下,文件传输模式为二进制模式。
(3) 切换数据的传输方式。
passive
缺省情况下,数据传输的方式为被动方式。
(1) 请在用户视图下执行本命令,进入FTP客户端视图。
ftp
(2) 显示命令或命令的帮助信息。
¡ 方式一
help [ command-name ]
¡ 方式二
? [ command-name ]
(1) 请在用户视图下执行本命令,进入FTP客户端视图。
ftp
(2) 查看FTP服务器上的目录/文件。
¡ 方式一
dir [ remotefile [ localfile ] ]
¡ 方式二
ls [ remotefile [ localfile ] ]
使用dir或者ls命令查看FTP服务器上的目录/文件的详细信息。
(1) 请在用户视图下执行本命令,进入FTP客户端视图。
ftp
(2) 操作FTP服务器上的目录
¡ 显示当前用户正在访问的FTP服务器上的路径。
pwd
¡ 切换FTP服务器上的工作路径。
cd { directory | .. | / }
¡ 退出FTP服务器的当前目录,返回FTP服务器的上一级目录。
cdup
¡ 在FTP服务器上创建目录。
mkdir directory
¡ 删除FTP服务器上指定的目录。
rmdir directory
执行本命令前,请确认指定目录不会再被使用,以免误删有用目录。
(1) 请在用户视图下执行本命令,进入FTP客户端视图。
ftp
(2) 显示或切换FTP客户端本地的工作路径。
lcd [ directory | / ]
上传的文件为该路径下的文件时,缺省情况下文件下载后也将保存到该路径。
使用dir或者ls命令了解FTP服务器上的目录结构以及文件所处的位置。
(1) 请在用户视图下执行本命令,进入FTP客户端视图。
ftp
(2) 操作FTP服务器上的文件
¡ 删除FTP服务器上的文件。
delete remotefile
执行本命令前,请确认指定文件不会再被使用,以免误删有用文件。
用户必须具有删除的权限才能执行该操作。
¡ 重命名文件。
rename [ oldfilename [ newfilename ] ]
¡ 上传本地文件到FTP服务器。
put localfile [ remotefile ]
¡ 下载FTP服务器上的文件。
get remotefile [ localfile ]
¡ 在原文件的内容后面添加新文件的内容。
append localfile [ remotefile ]
¡ 指定重传点。
restart marker
配合put、get、append等命令使用。
¡ 更新本地文件。
newer remotefile
¡ 从本地文件的尾部开始获取文件的剩余内容。
reget remotefile [ localfile ]
当设备作为FTP客户端,与FTP服务器连接建立成功后,可以通过该功能实现不同权限用户之间的切换。用户成功切换后,不会影响当前的FTP连接(即FTP控制连接、数据连接以及连接状态都不变)。
如果在用户切换时,输入的用户名/密码错误,则会断开当前连接,用户必须重新登录才能继续访问FTP服务器。
(1) 请在用户视图下执行本命令,进入FTP客户端视图。
ftp
(2) 在现有FTP连接上重新发起FTP认证。
user username [ password ]
当设备作为FTP客户端,与FTP服务器连接建立成功后,通过以下命令,可以帮助用户定位和诊断FTP连接出现的问题。
(1) 请在用户视图下执行本命令,进入FTP客户端视图。
ftp
(2) 维护与调试FTP连接
¡ 显示FTP服务器支持的FTP相关协议命令字。
rhelp
¡ 显示FTP服务器支持的FTP相关协议命令字的帮助信息。
rhelp protocol-command
¡ 显示FTP服务器的状态。
rstatus
¡ 显示FTP服务器上指定目录或文件的详细信息。
rstatus remotefile
¡ 显示当前FTP连接的状态。
status
¡ 显示FTP服务器的系统信息。
system
¡ 切换FTP功能的协议信息开关。
verbose
缺省情况下,FTP协议信息开关处于开启状态。
¡ 打开FTP调试信息开关。
debug
缺省情况下,FTP客户端调试信息开关处于关闭状态。
¡ 清除缓存的命令应答。
reset
(1) 请在用户视图下执行本命令,进入FTP客户端视图。
ftp
(2) 断开与FTP服务器的连接。请选择其中一项进行配置。
¡ 断开与FTP服务器的连接,并留在FTP客户端视图。请选择其中一项进行配置。
disconnect
close
¡ 断开与FTP服务器的连接,并退回到用户视图。请选择其中一项进行配置。
bye
quit
可在任意视图下执行以下命令,显示设备作为FTP客户端时的源地址配置。
display ftp client source
TFTP(Trivial File Transfer Protocol,简单文件传输协议)用于在TFTP服务器和TFTP客户端之间传输文件。它基于UDP协议,使用UDP端口建立连接、收/发数据报文。与基于TCP的FTP协议比较,TFTP不需要认证,没有复杂的报文交互,部署简单,适用于客户端和服务器均很可靠的网络环境。
当设备作为TFTP客户端时,可以把设备的文件上传到TFTP服务器,还可以从TFTP服务器下载文件到设备。如果下载时设备上已经存在一个和目标文件名同名的文件,则系统会先将设备上已有的文件删除,再保存远端文件。如果下载失败(如网络断开等原因),则原文件已被删除,无法恢复。因此,当下载启动文件或配置文件等重要文件时,建议使用一个当前目录下不存在的文件名作为目标文件名。
(1) 进入系统视图。
system-view
(2) (可选)使用ACL限制设备可访问哪些TFTP服务器。
tftp-server acl acl-number
缺省情况下,未使用ACL对设备可访问的TFTP服务器进行限制。
(3) 配置TFTP客户端的源地址。
tftp client source { interface interface-type interface-number | ip source-ip-address }
缺省情况下,未配置源地址,使用路由出接口的主IP地址作为设备发送TFTP报文的源IP地址。
(4) 退回用户视图。
quit
(5) 在IPv4网络,用TFTP上传/下载文件。
tftp tftp-server { get | put | sget } source-filename [ destination-filename ] [ vpn-instance vpn-instance-name ] [ dscp dscp-value | source { interface interface-type interface-number | ip source-ip-address } ] * [ -d ]
使用tftp client source命令指定了源地址后,又在tftp命令中指定了源地址,则采用tftp命令中指定的源地址进行通信。
(1) 进入系统视图。
system-view
(2) (可选)在IPv6网络,使用ACL限制设备可访问哪些TFTP服务器。
tftp-server ipv6 acl ipv6-acl-number
缺省情况下,未使用ACL对设备可访问的TFTP服务器进行限制。
(3) 在IPv6网络,配置TFTP客户端的源地址。
tftp client ipv6 source { interface interface-type interface-number | ipv6 source-ipv6-address }
缺省情况下,未配置源地址,设备自动选择IPv6 TFTP报文的源IPv6地址,具体选择原则请参见RFC 3484。
(4) 退回用户视图。
quit
(5) 在IPv6网络,用TFTP上传/下载文件。
tftp ipv6 tftp-server [ -i interface-type interface-number ] { get | put | sget } source-filename [ destination-filename ] [ vpn-instance vpn-instance-name ] [ dscp dscp-value | source { interface interface-type interface-number | ipv6 source-ipv6-address } ] * [ -d ]
使用tftp client ipv6 source命令指定了源地址后,又在tftp ipv6命令中指定了源地址,则采用tftp ipv6命令中指定的源地址进行通信。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!