FTPS是借助ssl协议加密,ssl是为http/smtp等加密设计的;;SFTP是借助ssh加密,ssh是为telnet/ftp等加密、建立传输通道而设计的。ssh建立传输通道就是为了加密和传输,而且这个通道是可以用来远程登录。创建加密通道对文件进行加密。
从原理上简单的讲:FTPS是ftp-over-ssl的意思,即ftp借助ssl协议加密传输,不但要用ftp服务器还要用ssl协议加密。sftp协议是ssh中的一条独立的协议,利用sftp服务器就可以传输数据。
下面笔者以ssl来实现ftps的安全传输:
用ssl的是ftps.(传输层的加密)
SSL验证: 1、只密码验证 2、SSL证书验证,需要建立CA服务器
实验思路:首先安装wireshark抓包工具,在没有使用CA服务器的情况下抓包,查看抓包情况。然后安装CA服务器为ftp服务器颁发证书。再次抓包,查看抓包。注:此实验中CA服务器与ftp服务器处于同一个主机上
新建用户:
[root@lyt ~]# useradd user1 #新建用户user1,用于抓包测试。
[root@lyt ~]# passwd user1
安装wireshare:
[root@lyt ~]# mkdir /mnt/cdrom
[root@lyt ~]# mount /dev/cdrom /mnt/cdrom/
[root@lyt ~]# cd /mnt/cdrom/Server/
[root@lyt Server]# vim /etc/yum.repos.d/rhel-debuginfo.repo #编辑本地yum
[root@lyt Server]# yum install wireshark –y #安装wireshark抓包工具
安装vsftp:
[root@lyt Server]# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm
[root@lyt Server]# service vsftpd start
使用抓包工具,查看在没有使用ssl时的抓包情况:
[root@lyt Server]# tshark -ni eth0 -R "tcp.dstport eq 21" #由于客户端必须使用21端口与服务器建立连接,所以此处对于21号端口进行抓包
用户名和密码已经泄露:
搭建CA服务器:
[root@lyt Server]# cd /etc/pki/tls/
[root@lyt tls]# vim openssl.cnf