网络基础知识笔记05:FTP基本原理与配置(下)
网络基础知识笔记05 FTP基本原理与配置
由于本笔记有借鉴其他博文的内容,但仅做学习使用。已在下方给出原文链接,如有侵权,请联系本人进行删除,谢谢。
FTP(File Transfer Protocol)是用来传送文件的协议。使用FTP实现远程文件传输的同时,还可以保证数据传输的可靠性和高效性。
本次笔记主要介绍FTP的配置验证以及命令详解,做到对交换机配置的备份与还原,再简单探讨一下SFTP协议的基本配置。
Tips:目前FTP,TFTP,SFTP v1协议存在安全风险,本笔记为了简化说明,只采用FTP协议作为描述。实际环境建议使用SFTP v2版本的协议进行文件传输。最后再简要介绍一下SFTP协议的基本配置。
FTP配置验证与命令详解
配置完FTP服务器后,可以在客户端使用ftp命令用来与远程FTP服务器建立控制连接,并进入FTP客户端视图。

进入FTP视图后,以下介绍几种常用的命令以供学习参考。
(1)查看FTP服务器上的文件
一般情况下用户都会被限制目录的访问权限,只可在当前目录下进行操作。
dir:显示服务器目录和文件列表
ls:显示服务器简易的文件列表
cd:进入服务器指定的目录
Tips:补充知识
① dir命令可以与通配符“.”和“?”配合使用。例如显示当前目录中所有扩展名为jpg的文件,可使用命令dir .jpg。
② cd命令中必须带目录名。比如 cd main 表示进入当前目录下的main子目录。
(2)设定传输方式
binary命令用来在设备作为FTP客户端时设置文件传输方式为Binary模式,又称二进制模式
ascii命令用来设置文件传输方式为ASCII码模式
type命令查看当前的传输方式
Tips:补充知识
缺省情况下,文件传输方式为ASCII模式。
(3)下载文件
get命令用来从远端FTP服务器下载单个文件并保存到本地。
命令:get filename [newname]
参数解释:filename为需要从FTP服务器下载的文件名,newname为文件保存在客户端设备上时使用的新的文件名(如果不指定newname,文件将以原名保存)。下同。
mget命令用来从远端FTP服务器下载多个文件并保存到本地。
命令:mget filename [filename ....]
mget命令也支持与通配符配合使用。
(4)上传文件
put命令用来从本地FTP客户端上传单个文件到远端FTP服务器。
命令:put filename [newname]
上传文件前,应该根据文件的类型设置传输方式,本机的工作目录也应该设置为上传文件所在的目录。
(5)其他FTP命令
close:结束与服务器的FTP会话
quit:结束与服务器的FTP会话并退出FTP环境
pwd:查看FTP服务器上的当前工作目录
rename filename [newfilename]:重命名FTP服务器上的文件
delete filename:删除FTP服务器上的文件
help:显示FTP命令的帮助信息。
应用举例:通过FTP协议对交换机配置的备份与还原
网络拓扑与上例中使用的相同。

Step 1:首先在FTP客户端添加几条配置命令。如下图所示:

可以看到,这是配置了三条静态路由在上面,模拟成该设备原本是有庞大的配置信息,现在我们需要做的是将这些配置信息备份到FTP服务器上去。
Step 2:退回到用户视图(即刚登入交换机时的界面,能看到<>尖括号),保存配置文件。
如下图所示:使用命令save all 来保存交换机的配置文件。此时可以输入保存文件的文件名,若不输入默认名称为vrpcfg.zip

使用命令dir可以查看刚保存下来的配置文件
Step 3:使用命令ftp连接FTP服务器(192.168.1.1),输入用户名和密码

这里使用的用户名和密码是在前面介绍FTP基本配置时已经配置好了的。
接着使用命令put上传配置文件到FTP服务器。

最后使用命令dir查看FTP服务器上是否已经成功上传配置文件

最后输入q退出
Step 4:为了模拟当交换机设备配置文件因故障而丢失或损坏的场景,可以使用命令reset saved-configuration将交换机的配置文件清空。

清空配置后使用reboot重启交换机,弹出的第一个选项是询问你是否将现有在用的交换机配置保存,选择N,否则startup的配置又会覆盖saved的配置文件了,这样就达不到清空配置的目的。第二个选项询问是否确定重启,选择Y。

重启过后,所有配置清空。

Tips:实际生产环境中,要清空配置文件务必要谨慎,这里只是实验需要才会这样做。
Step 5:登录FTP服务器将配置文件的备份下载回本地,使用命令get。
首先,配置端口IP,确保与FTP服务器的正常通信。

然后登录FTP服务器,使用命令get将配置文件的备份下载回本地。

接着指定该文件为startup的配置文件,最后重启即可


你会发现,刚才清空的配置又回来了。说明实验成功。

扩展知识:SFTP协议的原理与配置简析
(1)FTP协议的局限性:明文传输
在FTP协议中,数据传输是不加密的,我们可以通过抓包来验证。



我们可以看到,即使是登录时向FTP服务器发送的登录用户名和密码,FTP协议使用的都是明文传输的方式。这样FTP就存在数据泄露的风险,为网络黑客有机可乘,所以目前主流使用更为安全的SFTP v2版本的协议进行数据传输。
用户希望在终端与设备之间进行安全的文件传输操作,将设备配置为SSH服务器,提供SFTP服务,服务器通过对客户端的认证和双向的数据加密,实现用户对安全文件传输操作的要求。
(2)SFTP基本配置步骤
采用如下的思路配置用户通过SFTP进行文件操作:
Step 1:在SSH服务器端生成本地密钥对及使能SFTP服务器功能,实现在服务器端和客户端进行安全地数据交互。
Step 2:配置SSH服务器端的VTY用户界面。
Step 3:配置SSH用户,包括认证方式以及用户名和密码等。
Step 4:配置SSH服务器的访问权限,实现对SSH用户的限制。
Step 5:从终端通过第三方软件OpenSSH实现访问SSH服务器。
(2)SFTP配置实例
Step 1:使能SFTP服务器功能

生成本地密钥对(非对称加密算法RSA)

Step 2:配置服务器端的VTY用户界面


查看配置结果

Step 3:配置SSH用户,包括认证方式以及用户名和密码等。



Tips:命令优化空间(如上图中的红圈处)
①cipher可以优化为irreversible-cipher,因为cipher的加密方式是可逆的而irreversible-cipher不可逆,相对更为安全。
②权限等级可以设为15,拥有更细化的权限管理。
Step 4:配置SSH服务器的访问权限(关于ACL的知识后面的笔记会再作介绍)

将ACL应用

Step 5:从终端通过OpenSSH软件实现访问SFTP服务器。
只有在用户终端安装了OpenSSH软件后,Windows命令行提示符才能识别OpenSSH相关命令。
小结
这里存放一些想要记住的基础知识点
①FTP使用的默认端口有:
服务器端使用TCP 21端口与客户端建立控制连接。
服务器端使用TCP 20端口与客户端建立数据连接。
②如果不配置FTP用户可访问的默认目录,则FTP用户无法登录设备。
使用命令set default ftp-directory <directory location>来建立默认目录。
参考链接:https://blog.51cto.com/mingxiaoming/1967595
https://network.51cto.com/art/201909/603552.htm
https://blog.csdn.net/u013423085/article/details/93219255
https://blog.csdn.net/qq_38526635/article/details/82147980
https://bbs.51cto.com/thread-1076177-1.html