FTPS
一.理论知识介绍
1. FTP(File Transfer Protocol, FTP)
FTP是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。
FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unencode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间会非常长,并且不时的必需执行一些冗长的登陆进程。
2. FTP服务一般运行在20和21两个端口。
端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。当数据通过数据流传输时,控制流处于空闲状态。而当控制流空闲很长时间后,客户端的防火墙会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。此时,虽然文件可以成功的传输,但因为控制会话会被防火墙断开,传输会产生一些错误。
3. FTP实现的目标
(1).促进文件的共享(计算机程序或数据)
(2).鼓励间接或者隐式的使用远程计算机
(3).向用户屏蔽不同主机中各种文件存储系统的细节
(4).可靠和高效的传输数据
4. FTP两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)
(1)主动模式:FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。
(2)被动模式:FTP库户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。
注意:被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTp服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。
5. Ftps
一种多传输协议,相当于加密版的FTP。当你在FTP服务器上收发文件的时候,你面临两个风险。第一个风险是在上载文件的时候为文件加密。第二个风险是,这些文件在你等待接收方下载的时候将停留在FTP服务器上,这时你如何保证这些文件的安全。你的第二个选择(创建一个支持SSL的FTP服务器)能够让你的主机使用一个FTPS连接上载这些文件。这包括使用一个在FTP协议下面的SSL层加密控制和数据通道。一种替代FTPS的协议是安全文件传输协议(SFTP)。这个协议使用SSH文件传输协议加密从客户机到服务器的FTP连接。 FTPS是在安全套接层使用标准的FTP协议和指令的一种增强型TFP协议,为FTP协议和数据通道增加了SSL安全功能。FTPS也称作“FTP-SSL”和“FTP-over-SSL”。SSL是一个在客户机和具有SSL功能的服务器之间的安全连接中对数据进行加密和解密的协议。
下面是一个案例实验,在linux下操作
二.使用linux自带的openssl搭建证书服务器CA
1.首先对我们的光盘进行挂载
2.安装openssl的rpm包
3.修改CA目录下的配置文件
4.在CA目录下建立3个目录和2个文件
5.为CA建立私钥并改变其权限属性
6.颁发证书
三.搭建ftp服务器 1.安装vsftp的包
2.创建一个certs目录存放自己的ftp的证书钥匙、请求文件、证书文件
在certs目录下建立钥匙文件
请求CA颁发证书
3.修改文件权限,提高安全性
4.启动ftp服务并将其设为自动启动
四.在客户端验证 1.安装wireshark的抓包工具 wireshark-1.0.8-1.el5_3.1.i386.rpm
2.创建账户
3.修改vsftpd 的配置文件 [[email protected] certs]# vim /etc/vsftpd/vsftpd.conf
4.重新启动vsftpd服务
5.使用客户端工具Flash FXP 登录ftp,安装只要一步到位就行
7.成功连接
8.观察烛火的ip包,发现已经加密
转载于:https://blog.51cto.com/chengmingshu/813175