FTPS是在安全套接层使用标准的FTP协议和指令的一种增强型TFP协议,为FTP协议和数据通道增加了SSL安全功能。FTPS也称作“FTP-SSL”“FTP-over-SSL”SSL是一个在客户机和具有SSL功能的服务器之间的安全连接中对数据进行加密和解密的协议。   

  它和sftp连接方法类似,在windows中可以使用FileZilla等传输软件来连接FTPS进行上传,下载文件,建立,删除目录等操作,FileZilla连接时,有显式和隐式TLS/SSL连接之分,连接时也有指纹提示。

实验设备:Linux 5(内核版本 2.6.18-164.e15

          Wireshark抓包工具(Linux 5.4 光盘中自带)

          FTP软件FlashFXP-v4.0.1548

实验环境要求:

              1.关闭防火墙(包括SELINUX

              2.挂载光盘

              3.创建本地yum仓库

实验步骤:

一、安装有关组件

1.安装ftp服务

[root@server ~]# yum install vsftpd

2.安装抓包工具

[root@server ~]# yum install wireshark

3.启动ftp服务

[root@server vsftpd]# service vsftpd start

Starting vsftpd for vsftpd:                                [  OK  ]

[root@server vsftpd]# 

二、测试

1.创建新用户

[root@server ~]# useradd user1

[root@server ~]# passwd user1

Changing password for user user1.

New UNIX password: 

BAD PASSWORD: it is WAY too short

Retype new UNIX password: 

passwd: all authentication tokens updated successfully.

[root@server ~]# 

2.开启抓包工具

首先查看新安装的抓包工具的指令

[root@server ~]# rpm -ql wireshark |less

3.客户端登录

 

3.查看捕获的数据包

三、创建CA

1.修改ssl配置文件

[root@server tls]# pwd

/etc/pki/tls

[root@server tls]# vim openssl.cnf 

 

2.创建有关目录和文件

[root@server CA]# pwd

/etc/pki/CA

[root@server CA]# mkdir certs newcerts

[root@server CA]# touch index.txt serial

3.修改文件

[root@server CA]# echo "01">serial

4.产生私钥

[root@server CA]# pwd

/etc/pki/CA

[root@server CA]# openssl genrsa 1024 >private/cakey.pem

Generating RSA private key, 1024 bit long modulus

...........................++++++

.++++++

e is 65537 (0x10001)

[root@server CA]# 

5.为了安全,将私钥设置权限

[root@server private]# pwd

/etc/pki/CA/private

[root@server private]# chmod 600 cakey.pem 

[root@server private]# 

6.将证书颁发给自己

[root@server CA]# pwd

/etc/pki/CA

[root@server CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650

四、申领证书

1.产生私钥

[root@server vsftpd]# pwd

/etc/vsftpd

[root@server vsftpd]# mkdir certs   创建目录)

[root@server vsftpd]# cd certs/

[root@server certs]# pwd 

/etc/vsftpd/certs

[root@server certs]# openssl genrsa 1024 >vsftpd.key (产生私钥)

Generating RSA private key, 1024 bit long modulus

.......++++++

..................++++++

e is 65537 (0x10001)

2.申请证书

[root@server certs]# openssl req -new -key vsftpd.key -out vsftpd.csr

3.CA签发证书

[root@server certs]# pwd

/etc/vsftpd/certs

[root@server certs]# openssl ca -in vsftpd.csr -out vsftpd.cert

 

4.为了安全性,修改这些文件的权限

[root@server certs]# pwd

/etc/vsftpd/certs

[root@server certs]# ll

total 12

-rw-r--r-- 1 root root 3101 Mar 20 01:46 vsftpd.cert

-rw-r--r-- 1 root root  655 Mar 20 01:45 vsftpd.csr

-rw-r--r-- 1 root root  887 Mar 20 01:43 vsftpd.key

[root@server certs]# chmod 600 *

五、修改vsftpd的有关配置文件

1.修改vsftpd的配置文件

[root@server vsftpd]# pwd

/etc/vsftpd

[root@server vsftpd]# vim vsftpd.conf 

2.重启服务

[root@server ~]# service vsftpd restart

Shutting down vsftpd:                                      [  OK  ]

Starting vsftpd for vsftpd:                                [  OK  ]

六、再次测试

1.开启抓包工具

[root@server ~]# tshark -ni eth0 -R "tcp.dstport eq 21"

2.在客户端上使用客户端工具Flash FXP 登录ftp

 

 

 

3.查看捕获到的信息

 

 

 

七、其它

对比加密之前和加密之后的相关信息。

加密之前

[root@server ~]# tshark -ni eth0 -R "tcp.dstport eq 21"

Running as user "root" and group "root". This could be dangerous.

Capturing on eth0

  0.000000 192.168.10.238 -> 192.168.10.1 TCP 2568 > 21 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=0 TSV=0 TSER=0

  0.000023 192.168.10.238 -> 192.168.10.1 TCP 2568 > 21 [ACK] Seq=1 Ack=1 Win=8192 Len=0

  0.150846 192.168.10.238 -> 192.168.10.1 TCP 2568 > 21 [ACK] Seq=1 Ack=21 Win=8172 Len=0

  2.753635 192.168.10.238 -> 192.168.10.1 FTP Request: USER user1

  2.866664 192.168.10.238 -> 192.168.10.1 TCP 2568 > 21 [ACK] Seq=13 Ack=55 Win=8138 Len=0

  4.624956 192.168.10.238 -> 192.168.10.1 FTP Request: PASS 123

 22.077718 192.168.10.238 -> 192.168.10.1 TCP 2568 > 21 [ACK] Seq=23 Ack=78 Win=8115 Len=0

 31.822434 192.168.10.238 -> 192.168.10.1 FTP Request: QUIT

 31.824755 192.168.10.238 -> 192.168.10.1 TCP 2568 > 21 [FIN, ACK] Seq=29 Ack=92 Win=8101 Len=0

 31.828464 192.168.10.238 -> 192.168.10.1 TCP 2568 > 21 [ACK] Seq=30 Ack=93 Win=8101 Len=0

加密之后

[root@server ~]# tshark -ni eth0 -R "tcp.dstport eq 21"

Running as user "root" and group "root". This could be dangerous.

Capturing on eth0

 35.712386 192.168.10.38 -> 192.168.10.1 TCP 1786 > 21 [SYN] Seq=0 Win=64240 Len=0 MSS=1460

 35.715893 192.168.10.38 -> 192.168.10.1 TCP 1786 > 21 [ACK] Seq=1 Ack=1 Win=64240 Len=0

 35.773589 192.168.10.38 -> 192.168.10.1 FTP Request: AUTH SSL

 35.832823 192.168.10.38 -> 192.168.10.1 FTP Request: \200\310\001\003\001\000\237\000\000\000 \000\300\024\000\300

 35.841104 192.168.10.38 -> 192.168.10.1 FTP Request: \026\003\001\000\206\020\000\000\202\000\200\210\221Qx\216\307T\366IF\233\346ux\311!\304\327\177\241\335\212-\230\247.\020\274\276\371\037\2636\017\332\bW\263

 35.966514 192.168.10.38 -> 192.168.10.1 TCP 1786 > 21 [ACK] Seq=403 Ack=906 Win=63335 Len=0

 37.673583 192.168.10.38 -> 192.168.10.1 FTP Request: \027\003\001\000\030abr>?\347#D\307S\241\000\253\3710\203\316\304V\017\022F\177\341\027\003\001\000 \373\245\304by\314\277\267z\221\335\314\334\233\314A\243A\240a\332Gv\266\315nO\240\343\230\001\206

 37.676359 192.168.10.38 -> 192.168.10.1 FTP Request: \027\003\001\000\030\262H\177\233'\262y\347\t\263X\205\253:\360{"k\001\370O\226\326T\027\003\001\000(\364}\037\215\351

 37.678806 192.168.10.38 -> 192.168.10.1 FTP Request: \027\003\001\000\030~\262\265\a\f\356\224m-aR\233\203\355\210= \023\344V$I_L\027\003\001\000 \027)\250\374}\367\207T\022\237|%:X\335*l\344\243\376\215\262\346\230\346S{\252\355s\360o

 49.414541 192.168.10.38 -> 192.168.10.1 FTP Request: \027\003\001\000\030?1I\020\337\330\332\352\002c\2431\263SR R\345\236\227\f0\356r\027\003\001\000 \237\241:M\277\365\021A\242\201XJjh\227Y\204\035K\3432\325\203\326Z\a\v~)\273\250<

 49.417874 192.168.10.38 -> 192.168.10.1 FTP Request: \027\003\001\000\030\274$\3373y\356ZA\337\210\262\001\330\027\215X|,;6\361\005\357\305\027\003\001\000 \373\263X\374\255\326\337\a\246\207\237+\200\372\217]\223A\337\246T\230\004\214C\177\364eW\243{\001

 49.418902 192.168.10.38 -> 192.168.10.1 TCP 1786 > 21 [ACK] Seq=741 Ack=1200 Win=63041 Len=0

 49.419525 192.168.10.38 -> 192.168.10.1 TCP 1786 > 21 [ACK] Seq=741 Ack=1274 Win=62967 Len=0

 49.420280 192.168.10.38 -> 192.168.10.1 TCP 1786 > 21 [ACK] Seq=741 Ack=1348 Win=62893 Len=0

 49.420784 192.168.10.38 -> 192.168.10.1 TCP 1786 > 21 [ACK] Seq=741 Ack=1422 Win=62819 Len=0

 49.422015 192.168.10.38 -> 192.168.10.1 TCP 1786 > 21 [ACK] Seq=741 Ack=1504 Win=64240 Len=0

 49.422586 192.168.10.38 -> 192.168.10.1 TCP 1786 > 21 [ACK] Seq=741 Ack=1578 Win=64166 Len=0

 49.446569 192.168.10.38 -> 192.168.10.1 FTP Request: \027\003\001\000\030\a`V\371\232\313v2Z\2364a\334\265\314\210\303\2778\271*\225\375\324\027\003\001\000 @\214+\344\302yjNy\232l{/\215\345\f\201\003~\240\206 ,\373f)\376\354%'\313\375

 49.457544 192.168.10.38 -> 192.168.10.1 FTP Request: \027\003\001\000\030\020\005\005\232\326,}\v\257\303U\254m\224\275\232n\302\312\367\3445i\216\027\003\001\000 \272U\225<\361p\001\267\346\0007\372\005\300\316\260\300\224\273] \260\001\260\307\a\024\f(\001%\306

 49.461080 192.168.10.38 -> 192.168.10.1 FTP Request: \027\003\001\000\030\313G\230\206\333\246\325\005\267Q\272Q;\376\026\373t\304\a\270\200\274\341\232\027\003\001\000 '\371\233\t\300\252#^\377),)\323\017\264\336\336nI\317\323\301\336\257\340\320\374\221&\351\003\225

 49.464790 192.168.10.38 -> 192.168.10.1 FTP Request: \027\003\001\000\0302\235\307\317R\334\254g2\204P\276\317\356\327\265E\354\037\246X\3353\245\027\003\001\000 \025\3601\210hy\263\335\215\363-P\267$=\353\326\006\272\001\b\005\316\376:\363\375\021\212\204\256V

 49.471918 192.168.10.38 -> 192.168.10.1 FTP Request: \027\003\001\000\030\251\331~#\021-\346\021\367\322\006\322r\310w\331\3659'\024\260\b5\367\027\003\001\000 Dl\375<\330\300[\356\312\306\2258\22072\177\235m}\364\a\256l\261\343\222[\207\346\221\302\254

 49.645797 192.168.10.38 -> 192.168.10.1 TCP 1786 > 21 [ACK] Seq=1071 Ack=1920 Win=63824 Len=0

 49.677089 192.168.10.38 -> 192.168.10.1 FTP Request: \027\003\001\000\030\372\003%\227a\343x\006\272sP\214F\331K{V\022\331\350d\233\270\376\027\003\001\000(=\377F\fn^n\276\212$\350K;\213\2625M\366\273\017\232`\301\315<\321

 49.847800 192.168.10.38 -> 192.168.10.1 TCP 1786 > 21 [ACK] Seq=1145 Ack=2026 Win=63718 Len=0