一、 理论介绍:
FTP(File Transfer Protocol 文件传输协议)是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。端口有21(连接控制)、20(数据传输),工作模式有主动和被动两种。
但是
FTP
的缺点是密码和文件内容都使用明文传输,可能产生不希望发生的窃听,这时就需要
FTPS
服务。
FTPS
是在安全套接层使用标准的
FTP
协议和指令的一种增强型
TFP
协议,为
FTP
协议和数据通道增加了
SSL
安全功能。
FTPS
也称作
“FTP-SSL”
和
“FTP-over-SSL”
。
SSL
是一个在客户机和具有
SSL
功能的服务器之间的安全连接中对数据进行加密和解密的协议。
二、
实验验证
注:(
1
)、在本实验中使用的是
linux
企业本
5.4
操作系统,
ip
地址为
192.168.101.222
。(
2
)、先来安装
yum
工具(具体做法已在前面的文章中提到,这里不做详细介绍)
1.
验证在不使用
FTPS
情况下,
FTP
传输的情况。
在
linux
中有一种抓包工具,
wireshark
包中
png
的
tshark
,
(
1
)下面先来安装
wireshark
:
[root@localhost ~]# mkdir /mnt/cdrom/
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# yum install -y wireshark
(
2
)创建一个普通账号
user1
,并设置密码为
“123”
。
[root@localhost ~]# useradd user1
[root@localhost ~]# echo "123" |passwd --stdin user1
Changing password for user user1.
passwd: all authentication tokens updated successfully.
(
3
)、安装
ftp
服务器
[root@localhost ~]# yum install -y vsftpd
启动
ftp
服务
[root@localhost ~]# service vsftpd start
测试
ftp
服务器是否正常
可以看到ftp正常工作。
(
4
)、下面用刚才的安装抓包工具
tshark
来抓包,用
user1
登录
ftp
所产生的信息
[root@localhost ~]# tshark -ni eth0 -R "tcp.dstport eq 21"
可以看到在用ftp进行登录时是很不安全的。
2
、在做好
FTPS
后进行抓包查看
ftp
的登录信息
先来做CA
[root@localhost ~]# cd /etc/pki/
编辑
openssl.cnf
文件
[root@localhost pki]# vim tls/openssl.cnf
修改
45
行:
修改88到90行:
接下来在CA目录下创建三个目录两个文件
[root@localhost pki]# cd CA/
[root@localhost CA]# mkdir crl certs newcerts
[root@localhost CA]# touch index.txt serial
[root@localhost CA]# echo "01" >serial
创建CA的私钥
[root@localhost CA]# openssl genrsa 1024 >private/cakey.pem
Generating RSA private key, 1024 bit long modulus
.++++++
......................++++++
e is 65537 (0x10001)
创建CA的证书
[root@localhost CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
(填写的内容根据个人意愿)
改变私钥的权限
[root@localhost CA]# chmod 600 private/cakey.pem
创建目录
[root@localhost CA]# mkdir /etc/vsftpd/certs
[root@localhost CA]# cd /etc/vsftpd/certs/
来产生私钥
[root@localhost certs]# openssl genrsa 1024 >vsftpd.key
Generating RSA private key, 1024 bit long modulus
............++++++
.......................................................++++++
e is 65537 (0x10001)
再做一个请求文件
[root@localhost certs]# openssl req -new -key vsftpd.key -out vsftpd.csr
(填写的内容根据个人意愿)
得到ftp的证书
[root@localhost certs]# openssl ca -in vsftpd.csr -out vsftpd.cert
为了安全性改变在该目录下所有文件的权限值都为600
[root@localhost certs]# chmod 600 *
下面需要将ftp与证书结合到一块
编辑
ftp
的配置文件
/etc/vsftpd/vsftpd.conf
然后重启ftp服务器
[root@localhost certs]# service vsftpd restart
然后开始抓包测试:
注意:在测试的时候不能在命令行(如
DOS
窗口下),因为在命令行下,不支持加密验证。需要专业的
ftp
客户端
。(这里我们使用
FlashFXP 4.0
版本,软件安装过程略)
客户端:
抓包检测如图:
可知已看不到登录的用户名和密码。这样的访问会更加安全。
转载于:https://blog.51cto.com/zhuchaobo/811682