Linux下ftp+ssl实现ftps

简介:

ftps与sftp:

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

image

[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号端口进行抓包

image

用户名和密码已经泄露:

image

搭建CA服务器:

[root@lyt Server]# cd /etc/pki/tls/

[root@lyt tls]# vim openssl.cnf     

image

image

image

image

image

[root@lyt tls]# cd /etc/pki/CA/       #切换到与CA服务器有关的目录

[root@lyt CA]# mkdir certs         #建立与证书有关的目录

[root@lyt CA]# mkdir newcerts     #与新证书有关的目录

[root@lyt CA]# mkdir crl       #证书吊销列表

[root@lyt CA]# touch index.txt

[root@lyt CA]# touch serial

[root@lyt CA]# echo "01"> serial      #给serial一个初始值

[root@lyt CA]# openssl genrsa 1024 > private/cakey.pem      #使用非对称加密算法rsa,采用1024为算法,得到一个密钥存放在private/cakey.pem中

[root@lyt CA]# chmod 600 private/cakey.pem       #私钥不允许别人查看,所以将cakey.pem文件的权限改为600,只有所属用户可以读写

[root@lyt CA]# openssl req -new -key private/cakey.pem -x509 -out  cacert.pem -days 3650    #使用CA服务器自己的私钥cakey.pem产生一个证书cacert.pem

image

[root@lyt CA]# mkdir -pv /etc/vsftpd/certs      #创建一个目录,存放于vsftp有关的证书,证书请求,密钥

[root@lyt CA]# cd /etc/vsftpd/certs/

[root@lyt certs]# openssl genrsa 1024 >vsftpd.key      #非对称加密算法rsa,使用1024位,算出一个密钥vsftp.key

[root@lyt certs]# openssl req -new -key vsftpd.key -out vsftpd.csr      #利用私钥vsftp.key产生一个证书请求文件vsftp.csr

image

[root@lyt certs]# openssl ca -in vsftpd.csr -out vsftpd.cert       #利用证书请求文件的到一个证书vsftp.cert

[root@lyt certs]# chmod 600 *      #将该目录下的文件权限全部改为600,即所属用户可读写

将申请得到的CA证书和vsftp关联起来:

[root@lyt certs]# chmod 600 *

[root@lyt certs]# vim /etc/vsftpd/vsftpd.conf

image

[root@lyt certs]# service vsftpd restart

使用flashfXP作为测试:

[root@lyt certs]# tshark -ni eth0 -R "tcp.dstport eq 21"     #抓包,查看能否获得用户名和密码

image

image 

image

image

查看抓包结果:无法获得用户名和密码

image










本文转自 liuyatao666 51CTO博客,原文链接:http://blog.51cto.com/5503845/992144,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
Linux 应用服务中间件 网络安全
linux ssl 证书 --本地制作数字证书并进行程序的数字签名
linux ssl 证书 --本地制作数字证书并进行程序的数字签名
44 0
|
2月前
|
存储 安全 Shell
⭐⭐【Shell 命令集合 文件传输 】Linux ftp工具 使用指南
⭐⭐【Shell 命令集合 文件传输 】Linux ftp工具 使用指南
79 0
|
2月前
|
存储 Shell Linux
【Shell 命令集合 文件传输 FTP客户端工具】Linux ncftp 命令使用指南
【Shell 命令集合 文件传输 FTP客户端工具】Linux ncftp 命令使用指南
88 0
|
1月前
|
Ubuntu Linux 数据库
ubuntu linux 搭建ftp虚拟目录
ubuntu linux 搭建ftp虚拟目录
23 0
|
2月前
|
Web App开发 安全 Unix
Linux 配置FTP服务器 + vsftpd服务安装配置 (Good篇)
Linux 配置FTP服务器 + vsftpd服务安装配置 (Good篇)
|
2月前
|
安全 应用服务中间件 网络安全
linux_nginx中添加ssl配置(open ssl)
linux_nginx中添加ssl配置(open ssl)
43 1
|
2月前
|
安全 Ubuntu Linux
Linux 网络操作命令FTP
Linux 网络操作命令FTP
55 0
|
2月前
|
监控 安全 Linux
Linux C++ 环境下的FTP远程升级实现及异常处理策略
Linux C++ 环境下的FTP远程升级实现及异常处理策略
107 0
|
1天前
|
运维 监控 网络协议
Linux抓包命令tcpdump使用技巧大全
【7月更文挑战第10天】
16 4
Linux抓包命令tcpdump使用技巧大全
|
2天前
|
数据挖掘 Linux 数据处理
Linux命令shuf详解:随机排序与数据分析的得力助手
`shuf`是Linux的命令行工具,用于随机排序和抽样数据。它能对文件或标准输入进行随机处理,适用于数据测试、播放列表和样本选择。主要参数包括:-e处理命令行输入,-i指定数字范围,-n选择行数,-o输出到文件,-r允许重复,-z用NULL分隔。结合其他命令使用能增强其功能。注意输出重定向和随机性的保证。是数据分析的有力助手。