一、简介
ftp文件传输是一种明文的传输方式,通过抓包工具可以轻易的截取用户的传输内容以及密
码等信息,所以需要一种更安全的传输机制。
ftp的安全传输方式有多种,例如:ftps和sftp。但是最经常用的应该是基于ssl的FTPS,
它通过ssl安全机制对ftp的传输内容进行加密。
FTPS是在安全套接层使用标准的FTP协议和指令的一种增强型TFP协议,为FTP协议和
数据通道增加了SSL安全功能。FTPS也称作“FTP-SSL”和“FTP-over-SSL”。SSL是一个在客户
机和具有SSL功能的服务器之间的安全连接中对数据进行加密和解密的协议。
二、SFTP和FTPS之间的区别
都是为ftp连接加密,协议非常相似。一个是借助ssl协议加密,一个时借助ssh加密。
Ssl 是为http/smtp等加密设计的,ssh是为telnet/ftp等加密、建立传输通道而设计的。
三、FTPS的实现
(1)实验所需安装的包
Redhat linux 5.4
mod_ssl-2.2.3-31.el5.i386.rpm #ssl
vsftpd-2.0.5-16.el5.i386.rpm #ftp
wireshark-1.0.8-1.el5_3.1.i386.rpm #抓包工具(测试使用)
(2)FTPS环境搭建过程
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
[root@localhost ~]# cd /mnt/cdrom/Server/
[root@localhost Server]# yum install -y mod_ssl-2.2.3-31.el5.i386.rpm
[root@localhost Server]# yum install -y vsftpd-2.0.5-16.el5.i386.rpm
[root@localhost Server]# yum install -y wireshark
[root@localhost Server]# yum install -y wireshark
下面进行CA的创建:
[root@localhost Server]# cd /etc/pki/
[root@localhost pki]# ll
[root@localhost pki]# vim tls/openssl.cnf
说明:可以通过 :88,90 s/match/optional 命令进行快速修改
[root@localhost pki]# cd CA/
[root@localhost CA]# mkdir crl certs newcerts #建立所对应的目录
[root@localhost CA]# touch index.txt serial #创建所需要的文件
[root@localhost CA]# ll
[root@localhost CA]# echo "01" >serial #将序号01追加到serial中
[root@localhost CA]# cat serial
[root@localhost CA]# openssl genrsa 1024 >private/cakey.pem #创建ca的私钥
[root@localhost CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
#创建ca的证书
[root@localhost CA]# chmod 600 private/cakey.pem #修改权限,安全考虑
[root@localhost CA]# cd /etc/vsftpd/
[root@localhost vsftpd]# mkdir certs
[root@localhost vsftpd]# cd certs/
[root@localhost certs]# openssl genrsa 1024 >vsftpd.key #产生FTP的私钥
[root@localhost certs]# openssl req -new -key vsftpd.key -out vsftpd.csr #产生FTP的证书请求文件
[root@localhost certs]# openssl ca -in vsftpd.csr -out vsftpd.cert #CA颁发证书给FTP
[root@localhost certs]# chmod 600 *
[root@localhost certs]# vim /etc/vsftpd/vsftpd.conf #编辑ftp的配置文件
[root@localhost certs]# service vsftpd restart
至此FTPS的环境已经搭建完毕,下面我们就来进行抓包测试,看是否能看到用户的信息:
ftp的连接本人使用的是flashfxp客户端
我们先在ftp服务器上进行抓包,在进行ftp的连接,观察所抓到的包的情况;
[root@localhost ~]# tshark -ni eth0 -R "tcp.dstport eq 21" #在eth0上的21端口进行抓包
在不用ftps时:
使用ftps后:
说明:已经加密,所以看不到了,这样显得更安全。
转载于:https://blog.51cto.com/chenyz/812990