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

[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

[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

[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

[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

[root@lyt certs]# service vsftpd restart

使用flashfXP作为测试:

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

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

本文转自 liuyatao666 51CTO博客,原文链接:http://blog.51cto.com/5503845/992144,如需转载请自行联系原作者

Linux下ftp+ssl实现ftps相关推荐

  1. linux ftp ssl客户端,Linux下ftp+ssl实现ftps-Go语言中文社区

    ftps与sftp: FTPS是借助ssl协议加密,ssl是为http/smtp等加密设计的::SFTP是借助ssh加密,ssh是为telnet/ftp等加密.建立传输通道而设计的.ssh建立传输通道 ...

  2. linux ftp 团队认证,linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建

    linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建 1.FTP协议:有命令和数据连接两种 命令连接,控制连接:21/tcp 数据连接: 主动模式,运行在20/tcp端口 和 ...

  3. Linux下FTP服务器搭建

    Linux下FTP服务器搭建 一.FTP介绍 二.环境介绍 三.FTP服务端搭建步骤 1.安装相关软件包 2.启动FTP并检查状态 3.检查服务端口运行状态 4.修改FTP配置文件 5.关闭selin ...

  4. linux下ftp服务阶段实验(3)

    linux下ftp服务阶段实验(3) 3.  (1)匿名用户的FTP根目录是/ftp,只能下载,下载速度为100Kbps     (2)本地用户hello的FTP根目录为/hello,可以上传下载,家 ...

  5. linux如何测试ftp服务器,linux下FTP服务器的搭建

    1.FTP服务器的简介 关于ftp的介绍,大家也一定不陌生了.我就直接把百度百科上的介绍拿过来,和大家一起温习一下概念. FTP 是File Transfer Protocol(文件传输协议)的英文简 ...

  6. linux下测试ftp传输,linux下ftp命令使用详解---linux文件传输ftp命令

    linux下ftp命令使用详解---linux文件传输ftp命令 上一篇 / 下一篇  2010-12-18 09:15:35 / 个人分类:Linux ftp(file transfer proto ...

  7. linux中ftp如何使用,linux下ftp如何使用

    linux下ftp可以上传.下载文件 centos7环境: 1.检查是否安装过ftp服务 rpm -qa|grep vsftpd 如果没有输出则表示没有安装过 安装ftp yum -y install ...

  8. linux的ftp命令大全文库,linux下ftp命令详解

    linux下ftp命令详解 (11页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.9 积分 登录FTP服务器的命令格式:ftp [-v][-d][- ...

  9. 虚拟机上ftp服务器安装与配置文件,Linux下ftp服务器安装与配置实验报告_linuxftp服务器配置实验报告,ftp服务器配置的实验报告...

    Linux下ftp服务器安装与配置实验报告,包含实验步骤,实验结果以及总结 GNU nano 2.5.3 File: /etc/vsftpd. conf By default the server w ...

最新文章

  1. java override overwrite,重写(overwrite)、重载(overload)和覆盖(override)
  2. [Android] Toast问题深度剖析(二)
  3. UI布局分析工具-视图工具(Hierarchy Viewer)
  4. Open Neural Network Exchange(ONNX)概述
  5. 简单实用的Windows命令(一)
  6. 在浏览器中内嵌word_关于项目浏览器内核的选取解读
  7. Mule的基本配置元素:Endpoint、Transformer、Filter、Flow
  8. C# 路由(Route)
  9. 产品经理学技术之数据结构
  10. python中文转拼音不用第三方库_又一个奇葩要求,Python是如何将“中文”转“拼音”的?...
  11. 使用UMDH进行内心泄露分析
  12. Tomcat8.0进入tomcat manager的方法
  13. java爬虫抓取起点小说,手把手带你爬虫 | 爬取起点小说网
  14. Python 贪吃蛇 代码
  15. 计算机网络属于什么结构,计算机网络体系结构是一种什么结构
  16. Java在一定范围随机生成经纬度
  17. 思岚S2激光雷达2—SDK和实例程序的编译
  18. MATLAB车牌识别原理[大白话]
  19. iOS自定义UITableViewRowAction
  20. 密度分析(七) Python实现

热门文章

  1. 第一次使用Android Studio时你应该知道的一切配置(二):新建一个属于自己的工程并安装Genymotio...
  2. bp神经网络算法步流程_基于遗传算法的BP神经网络优化算法模板
  3. C语言函数集(十二)
  4. 用Spark实现简单的单词统计
  5. 河北计算机应用技术,[河北科技大学]计算机应用技术
  6. 【JPA】注解@PostConstruct、@PreDestroy
  7. 剑指offer 把数组排成最小的数 atoi和itoa,pow
  8. charles代理以及关于其抓取https信息的操作
  9. [shell实例]——用脚本实现向多台服务器批量复制文件(nmap、scp)
  10. Android ContentResolver