一.理论知识介绍

1.  FTP(File Transfer Protocol, FTP)

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

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

wps_clip_p_w_picpath-20581

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

wps_clip_p_w_picpath-1644

2.安装openssl的rpm包

wps_clip_p_w_picpath-4564

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

wps_clip_p_w_picpath-7636

wps_clip_p_w_picpath-2848

wps_clip_p_w_picpath-31620

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

wps_clip_p_w_picpath-31982

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

wps_clip_p_w_picpath-20121

6.颁发证书

wps_clip_p_w_picpath-11982

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

wps_clip_p_w_picpath-18881

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

wps_clip_p_w_picpath-21669

在certs目录下建立钥匙文件

wps_clip_p_w_picpath-13680

请求CA颁发证书

wps_clip_p_w_picpath-4247

wps_clip_p_w_picpath-16568

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

wps_clip_p_w_picpath-32004

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

wps_clip_p_w_picpath-28100

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

wps_clip_p_w_picpath-18318

wps_clip_p_w_picpath-8005

2.创建账户

wps_clip_p_w_picpath-27979

3.修改vsftpd 的配置文件 [root@localhost certs]# vim /etc/vsftpd/vsftpd.conf

wps_clip_p_w_picpath-5982

4.重新启动vsftpd服务

wps_clip_p_w_picpath-27024

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

wps_clip_p_w_picpath-27867

p_w_picpath 

 

wps_clip_p_w_picpath-27079

7.成功连接

wps_clip_p_w_picpath-6067

wps_clip_p_w_picpath-6090

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

wps_clip_p_w_picpath-6120