一.理论知识介绍

1.  FTP(File Transfer Protocol, FTP)

FTP是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。

FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unencode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间会非常长,并且不时的必需执行一些冗长的登陆进程。

FTPS

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.首先对我们的光盘进行挂载

FTPS

2.安装openssl的rpm包

FTPS

3.修改CA目录下的配置文件

FTPS

FTPS

FTPS

4.在CA目录下建立3个目录和2个文件

FTPS

5.为CA建立私钥并改变其权限属性

FTPS

6.颁发证书

FTPS

三.搭建ftp服务器 1.安装vsftp的包

FTPS

2.创建一个certs目录存放自己的ftp的证书钥匙、请求文件、证书文件

FTPS

在certs目录下建立钥匙文件

FTPS

请求CA颁发证书

FTPS

FTPS

3.修改文件权限,提高安全性

FTPS

4.启动ftp服务并将其设为自动启动

FTPS

四.在客户端验证 1.安装wireshark的抓包工具 wireshark-1.0.8-1.el5_3.1.i386.rpm

FTPS

FTPS

2.创建账户

FTPS

3.修改vsftpd 的配置文件 [[email protected] certs]# vim /etc/vsftpd/vsftpd.conf

FTPS

4.重新启动vsftpd服务

FTPS

5.使用客户端工具Flash FXP 登录ftp,安装只要一步到位就行

FTPS

FTPS 

 

FTPS

7.成功连接

FTPS

FTPS

8.观察烛火的ip包,发现已经加密

FTPS