为什么FTP的被动式更安全
认识FTP协议
在公司的文件共享用到较多的就是使用FTP协议共享文件, 平常使用手机共享文件到电脑, 往往也是FTP协议
FTP 使用一个端口用于发送命令,另一个用于发送和接收数据。FTP 服务器使用的标准端口号为 21,仅用于发送命令。由于 21 端口专门用于发送命令,因此该端口被称为命令端口。例如,要获取 FTP 服务器上存在的文件夹和文件的列表,FTP 客户端会发出“LIST”命令。然后,FTP 服务器将所有文件夹和文件的列表发送回 FTP 客户端。那么用于发送和接收数据的互联网连接呢?用于传输数据的端口称为数据端口。数据端口的数量将根据连接的“模式”而有所不同。(有关主动和被动模式,请参见下文。)
客户端决定是主动连接模式或被动连接模式
-
主动模式:
在这种模式下,用户从 FTP 客户端的一个随机端口(随机端口 x(大于1024))连接到服务器的 21 端口。
client发送PORT命令,告诉服务器它应该连接到客户端的哪个端口,即(随机端口 1027)。
服务器从端口 20 连接到客户端指定的端口,即随机端口 1027。
一旦建立连接,数据传输就会通过这些客户端和服务器端口进行。
服务器需要发起一个请求连接到客户端. 这样的连接有时候会被客户端的防火墙阻止, 也就是说要使用主动模式,需要关闭防火墙. so很不安全
-
被动模式
在客户端无法接受连接(例如被防火墙阻止)的情况下,必须使用被动模式。这是最常见的模式,因为现在客户端位于防火墙后面(例如内置的 Windows 防火墙)。
在这种模式下,用户从 FTP 客户端的一个随机端口(随机端口 1024)连接到服务器的 21 端口。它发送PASV命令,告诉客户端它应该连接到服务器的哪个端口,即(随机端口 2024)以建立连接。
客户端从随机端口 1027 连接到服务器指定的端口,即随机端口 2024。一旦建立连接,数据传输就会通过这些客户端和服务器端口进行。
被动模式下所有的请求都是客户端发起的
FTP的优势
- 允许传输多个文件和目录
- 当连接丢失时可以恢复传输
- 传输文件的大小没有限制
- 传输比HTTP快
FTP的不足
- FTP是明文传输,所以在被抓包时,轻松的可以截获数据
linux 中内置的支持FTP软件为vsFTP(Very Secure FTP)
为什么说vsFTP是安全的呢
1进程分离,处理不同任务的进程彼此是独立运行的;
2进程运行时均以最小权限运行;
3多数进程都使用chroot进行了禁锢,防止客户访问非法共享目录
参考链接
https://www.deskshare.com/resources/articles/ftp-how-to.aspx
https://afteracademy.com/blog/what-is-ftp-and-how-does-an-ftp-work
<Linux运维之道>
我的原文在我的公众号cloudEng, 关注我不迷路
posted on 2022-02-26 22:07 joe_HelloWorld 阅读(265) 评论(0) 编辑 收藏 举报