linux sftp mount,Linux-OpenSSL(sftp)

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服务器处于同一个主机上

新建用户:

[[email protected] ~]# useradd user1      #新建用户user1,用于抓包测试。

[[email protected] ~]# passwd user1

安装wireshare:

[[email protected] ~]# mkdir /mnt/cdrom

[[email protected] ~]# mount /dev/cdrom /mnt/cdrom/

[[email protected] ~]# cd /mnt/cdrom/Server/

[[email protected] Server]# vim /etc/yum.repos.d/rhel-debuginfo.repo      #编辑本地yum

986ade02f0b6a48f14a95c3eedc28f2d.png

[[email protected] Server]# yum install wireshark –y       #安装wireshark抓包工具

安装vsftp:

[[email protected] Server]# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm

[[email protected] Server]# service vsftpd start

使用抓包工具,查看在没有使用ssl时的抓包情况:

[[email protected] Server]# tshark -ni eth0 -R "tcp.dstport eq 21"       #由于客户端必须使用21端口与服务器建立连接,所以此处对于21号端口进行抓包

fdc8d08cd3c9a9b1fadd8ba898283332.png

用户名和密码已经泄露:

428b421fc5f6fc9a217370c3f729a727.png

搭建CA服务器:

[[email protected] Server]# cd /etc/pki/tls/

[[email protected] tls]# vim openssl.cnf

c8d700f3fd4c558c6e2848fb256196b6.png

3d6ba8088380e9a3affad7a603f0b9d3.png

8b30936b5ac880d8405865034b77f1cd.png

c6481dfc16e1ae349b8d05a2aee0b7ee.png

8680d2d6e9ce3a1c9b736b5f7949802c.png

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

[[email protected] CA]# mkdir certs         #建立与证书有关的目录

[[email protected] CA]# mkdir newcerts     #与新证书有关的目录

[[email protected] CA]# mkdir crl       #证书吊销列表

[[email protected] CA]# touch index.txt

[[email protected] CA]# touch serial

[[email protected] CA]# echo "01"> serial      #给serial一个初始值

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

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

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

b0793179857372b7a58664b38a536e1c.png

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

[[email protected] CA]# cd /etc/vsftpd/certs/

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

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

850a8fd4687ee6c05e872d03f84bea71.png

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

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

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

[[email protected] certs]# chmod 600 *

[[email protected] certs]# vim /etc/vsftpd/vsftpd.conf

d3cf34fdb8f0525f95b86b1c64ab751a.png

[[email protected] certs]# service vsftpd restart

23f987522c5046c33c7069971df59c81.png

使用flashfXP作为测试:

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

91ceb58c64fbfcf162010c7fd2c9c49a.png

dc6d69d2821ea3dfe75db03b86369c6e.png

a7d12b1ff81be7498074c13416a40c9b.png

15d65c35627aaf6de32aab0d639e5a37.png

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

b7d70c0858adac1a8932d056322a1173.png

23f987522c5046c33c7069971df59c81.png

原文:http://caochun.blog.51cto.com/4497308/1566876

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值