1 概述
随着网络应用的发展,越来越多的公司和个人利用网络进行文件传输。传统FTP虽然具备高效文件传输功能,但因缺乏安全性,传输的文件容易被网络上的攻击者窃取。而SFTP除了具有和FTP相同的功能外,还具备更高安全性。
本文在Windows 7环境下,分别搭建FTP和SFTP服务器,并从客户端向服务器传输文件。通过wireshark软件抓取传输的测试文件,模拟攻击者窃取文件的行为,分析SFTP和FTP的区别。从客户端向服务器传输文件的网络拓扑如下图所示。
图1-1 文件传输拓扑图
传输的文件内容如下图所示。
图1-2 文件内容
2 什么是FTP
2.1 FTP简介
FTP(File Transfer Protocol,文件传输协议)是IETF Network Working Group所制定的一套标准协议,属于网络协议组的应用层,FTP基于TCP(Transmission Control Protocol,传输控制协议)实现文件传输。FTP是Internet传递文件最主要的方法。
FTP采用客户端/服务器的模式,FTP服务器提供远程客户端的接入与程序操作。用户可以通过客户端向服务器发出命令,查看FTP服务器目录下的文件,并把文件从远程计算机上拷到本地,或把本地的文件传送到服务器上。除此之外,FTP还提供登录验证及读写权限控制等功能。
2.2 搭建FTP服务器
Window 7中自带FTP服务。搭建FTP服务器步骤如下。
(1) 开启FTP服务。打开“控制面板”,在“打开或关闭Windows功能”中勾选“FTP服务器”和“Web管理工具”,如下图所示。
图2-1 开启FTP服务
(2) 打开“控制面板”,在“系统和安全”中点击“管理工具”,双击打开“Internet 信息服务(IIS)管理器”,如下图所示。
图2-2 打开Internet 信息服务(IIS)管理器
(3) 单击右键,并选择“添加FTP站点”,如下图所示。
图2-3 添加FTP站点
(4) 设置FTP站点信息。在“FTP站点名称”中输入建立的FTP站点名称,在“物理路径”中选择服务器FTP站点需要共享的文件夹路径。如下图所示。
图2-4 设置FTP站点信息
(5) 设置服务器IP地址。在“IP地址”中输入服务器的IP地址。“端口”默认设置为21。勾选“自动启动FTP站点”,如下图所示。
图2-5 设置服务器IP地址
(6) 设置身份验证和授权信息。根据需求可选择允许访问的用户,以及选择是否允许读取、写入操作。如下图所示。至此完成FTP服务器搭建。
图2-6 设置身份验证和授权信息
2.3 登录FTP服务器
使用WinSCP作为客户端登录FTP服务器。下载并安装WinSCP.exe。安装完成后,打开软件并进行如下图设置登录FTP服务器。
图2-7 使用WinSCP登录FTP服务器
2.4 FTP文件传输
(1) 传输文件。成功登录FTP服务器后,从客户端向服务器传输测试文件,同时使用wireshark软件抓包模拟攻击者窃取测试文件。如下图所示,红框中十六进制内容即为窃取的文件数据。
图2-8 模拟攻击者窃取文件数据
(2) 转换数据流。
a 选中“FTP Data”后,单击右键,在弹出的窗口中选择“Follow”,并选择“TCP Stream”。如下图所示。
图2-9 转换数据流
b 在弹出的“TCP Stream”窗口中,"Show data as"选择"Raw",并另存为(Save as)一个文件。
说明
“Raw”表示转换为原始数据流。
图2-10 保存转换文件
c 用Notepad++软件打开上一步另存的文件,即可看到文件内容。如下图所示。
图2-11 获取文件内容
3 什么是SFTP
3.1 SFTP简介
SSH(Secure Shell,安全外壳)是一个需要进行加密和认证的,用于远程访问及文件传输的网络安全协议。SSH基于加密和认证的特性可以为用户提供更强大的安全保障机制,在用户使用不安全的网络环境登录设备时,SSH能够有效保护设备不受IP地址欺诈、明文密码截取等攻击。
SFTP(SSH File Transfer Protocol,也称为Secret File Transfer Protocol,安全文件传输协议)基于SSH,能够为文件传输提供安全的加密通道。SFTP具备和FTP一样的功能,即用户可以通过客户端向服务器发出命令,查看SFTP服务器目录下的文件,并把文件从远程计算机上拷到本地,或把本地的文件传送到SFTP服务器上。
3.2 搭建SFTP服务器
(1) 在Window 7中,使用freeSSHd软件搭建SFTP服务器。需要下载并安装freeSSHd.exe。安装完成后,打开软件的设置界面,如下图所示。
图3-1 freeSSHd设置界面
(2) 点击"SSH"选项卡,在“Listen address”中设置SFTP服务器地址,在“Port”中设置SFTP端口号,默认为22,在“Max number of connections”中设置最大连接次数为10,最后勾选“Start SSH server on freeSShd startup”和“User new console engine”。如下图所示。
图3-2 设置SFTP服务器地址和端口号
(3) 点击"Authentication"选项卡,选择用密码认证(Password authentication)方式,而不是公钥认证(Public key authentication)方式。如下图所示。
图3-3 设置SFTP登录验证方式
(4) 点击"Users"选项卡,再点击"Add"按钮,弹出“User Properties”窗口。在“Login”中输入登录Windows服务器的用户名,在“Authorization”中选择使用Windows账户密码登录。如下图所示。
图3-4 添加SFTP用户
(5) 点击"Server status"选项卡,开启SSH服务器。如下图所示。至此完成SFTP服务器搭建。
图3-5 开启SSH服务器
3.3 登录SFTP服务器
使用WinSCP作为客户端登录SFTP服务器。下载并安装WinSCP.exe。安装完成后,打开软件并进行如下图设置登录SFTP服务器。
图3-6 使用WinSCP登录SFTP服务器
3.4 SFTP文件传输
(1) 传输文件。成功登录SFTP服务器后,从客户端向服务器传输测试文件,同时使用wireshark软件抓包模拟攻击者窃取测试文件。如下图所示,红框中十六进制内容即为窃取的文件数据。
图3-7 模拟攻击者窃取文件数据
(2) 转换数据流。如果按照FTP转换数据流的操作,得到的文件内容如下所示。可见虽然在网络上窃取了文件数据,但是无法获得文件内容。
图3-8 获取文件内容
4 SFTP和FTP的区别
通过FTP文件传输和SFTP文件传输的操作分析,SFTP和FTP的区别如下:
●协议不同。
FTP基于TCP/IP协议,使用TCP端口21建立控制通道,使用TCP端口20建立数据通道。SFTP基于SSH协议(使用TCP端口22建立安全通道)。
●安全性不同。
FTP没有安全通道传输数据,SFTP使用SSH建立的加密安全通道传输数据。FTP采用明文传输,攻击者只要在网络上窃取到文件数据,就能轻而易举地得到文件内容。SFTP采用加密传输,攻击者虽然窃取到文件数据,只要不知道加密密钥,也无法得到文件内容。这也是SFTP比FTP更安全的原因。
●传输效率不同。
SFTP在传输过程中需要加密和解密,传输效率不如FTP。
5 结语
从SFTP和FTP的区别可以看出,SFTP是在加密通道中传输文件,安全性比FTP高,适合在公网中传输私有信息。FTP虽然安全性不及SFTP,但FTP不需要加密和解密,传输效率比SFTP高,适合公司内部文件的快速传输,可以根据需要选择不同的文件传输方式。
更多技术博文
-
全调度以太网(GSE),中国智算网络新标准
GSE网络作为一种全调度以太网技术,专为大规模AI训练集群设计,通过按需调度实现无损性能,提供灵活快速的部署方案,构建开放生态,显著提升智算效率和运维体验。
-
#知识百科
-
-
以太和PON,谁能更好地支撑办公室横向流量业务?
了解以太彩光与PON的区别,解析办公资源共享难题,锐捷极简以太彩光方案助您高效适配办公网,共享打印无压力!
-
#交换机
-
-
场景无线 驱动高效办公!锐捷新一代企业无线办公解决方案全新发布!
面对企业数智化转型中的无线办公网络挑战,锐捷新一代企业无线办公解决方案通过全场景AP、智能调度与云端智能运维等技术,实现网络性能、用户体验与运维效率的全面提升。
-
#无线网
-
#办公网
-
-
以太彩光和PON,运维管理谁技高一筹?
锐捷网络提供极简以太全光方案,简化配置流程,降低学习成本,让全光网络升级更平滑。
-
#交换机
-