一、概要
传输附件一般就2种思路,http文件流传输和ftp传输,本文讲解ftp、ftps、sftp,一般windows下使用ftp和ftps,linux环境使用sftp(当然也可以安装ftp使用),ftp是明文传输,因此安全性不能保证,ftps是在ftp的基础上添加证书,之后对传输通道进行加密,因此可以保证安全,sftp是使用ssh文件传输协议,也保证了传输的安全性,ftp的端口是21,ftps的端口是990,sftp的端口是22,ftp和ftps是由命令传输通道和数据传输通道2个组成功,sftp是一个通道,ftps和sftp比较容易混淆,下面具体说下异同点
Ftps |
sftp |
FTPS是指带SSL的文件传输协议 |
SFTP指的是SSH文件传输协议 |
FTPS不支持基于密钥的认证 |
可以使用SSH密钥来验证SFTP连接 |
FTPS支持证书 |
SFTP不支持证书 |
FTPS使用多端口号码。每次提出文件传输请求时,都需要为数据通道打开另一个端口号 |
SFTP只需要一个单一的端口号用于所有的SFTP通信,并使其易于安全和提供更大的保护 |
认证是通过x.509证书进行的 |
认证是通过SSH密钥进行的 |
FTPS对命令和文件数据有单独的连接 |
SFTP没有为命令和文件数据提供单独的连接 |
二、说明
2.1 ftp
如果是自己方提供ftp,对方业务系统调用时,注意下要首先检查并开通对应端口,ftp分为命令控制端口(21)和数据传输端口,下面是对数据传输端口的说明
(1)端口策略
数据传输端口,和业务系统具体使用的模式有关,分为2种,如果是业务系统使用主动模式,此时自己方的20要能到对方的某个端口;如果是业务系统使用被动模式,此时对方能连接到自己方指定的被动端口上(filezilla中配置项)
(a)主动模式
即服务器主动连接客户端的数据端口
工作过程:
(1)客户端以随机非特权端口N,就是大于1024的端口,对服务端21端口发起连接
(2)客户端开始监听 N+1端口;
(3)服务端会主动以20端口连接到客户端的N+1端口。
优点:
服务端配置简单,利于服务器安全管理,服务器只需要开放21端口
缺点:
如果客户端开启了防火墙,或客户端处于内网(NAT网关之后), 那么服务器对客户端端口发起的连接可能会失败
(b)被动模式
即服务器被动地等待客户端连接自己的数据端口。
工作过程:
(1)客户端以随机非特权端口连接服务端的21端口
(2)服务端开启一个非特权端口为被动端口,并返回给客户端
(3)客户端以非特权端口+1的端口主动连接服务端的被动端口
缺点:
服务器配置管理稍显复杂,不利于安全,服务器需要开放随机高位端口以便客户端可以连接,因此大多数FTP服务软件都可以手动配置被动端口的范围(50000到60000)
(c)常见客户端设置
FTP服务器部署默认采用的是主动模式,如想启用被动模式均需手动配置或手动开启。
FTP客户端大多数默认使用PASV(被动)模式,IE默认使用PORT(主动)模式。
|