vsftpd结合ssl/tls来实现安全通信功能

vsftpd+ssl/tls实现安全通信功能

在之前的文章中说过ftp是以明文方式来进行传输的,因此很容易被人获取到账号和密码。为了实现ftp安全的传输功能,我们需要借助ssl/tls来实现安全通信功能。当然实现ftp的安全通信方式有2种:

一种是借助ssl/tls来实现的

另一种是是通过ssh+ftp的方式来实现的

在这里我们只介绍如何通过ssl/tls来实现ftp的安全通信功能

实现步骤如下:

要使用ssl/tls功能,必须要先安装mod_ssl这个模块

使用yum -y install mod_ssl即可

一、创建自签CA证书

1、创建私钥

(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem  2048)

2、生成自签证书

openssl req  -new -x509 -key  /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650

3、创建相关目录和文件

#cd /etc/pki/CA

#mkdir cert  crl newcerts

#touch index.txt  serial

#echo ‘01‘ > serial

修改ssl的配置文件

#vim  /etc/pki/tls/openssl.cnf

将其中的CA目录修改为如下

dir             = /etc/pki/CA

二、为客户端颁发证书

1、客户端创建私钥

openssl  genrsa -out  /etc/pki/CA/private/vsftpd.key  2048

2、生成颁发请求

openssl  req -new -key /etc/pki/CA/private/vsftpd.key  -out  /etc/pki/CA/vsftpd.csr

3、为客户端签署请求文件

openssl ca -in  /etc/pki/CA/vsftpd.csr -out /etc/vsftpd/ssl/vsftpd.crt  -days 3650

经过上述步骤,一个CA证书就创建好了

接下来只需要修改vsftpd的配置文件即可

三、修改/etc/vsftpd/vsftpd.conf,添加如下几行信息:

ssl_enable=YES

ssl_tlsv1=YES

ssl_sslv3=YES

allow_anon_ssl=NO

#虚拟用户不使用ssl功能

force_local_data_ssl=YES

force_local_logins_ssl=YES

rsa_cert_file=/etc/pki/CA/cacert.pem

rsa_key_file=/etc/pki/CA/private/cakey.pem

四、测试本地用户和虚拟用户是否登录时使用加密方式来登入的。(虚拟用户不使用加密方式登录)

测试时,请确保SElinux不是处于Enforcing,否则测试将会不成功。

当然使用ftp客户端软件测试也行,这里作者使用的flashFXP软件来测试的,测试过程不再给出。

时间: 2024-08-09 15:12:29

vsftpd结合ssl/tls来实现安全通信功能的相关文章

开源项目SMSS发开指南(四)——SSL/TLS加密通信详解

本文将详细介绍如何在Java端.C++端和NodeJs端实现基于SSL/TLS的加密通信,重点分析Java端利用SocketChannel和SSLEngine从握手到数据发送/接收的完整过程.本文也涵盖了在Ubuntu系统上利用OpenSSL和Libevent如何创建一个支持SSL的服务端.文章中介绍的知识点并未全部在SMSS项目中实现,因此笔者会列出所有相关源码以方便读者查阅.提醒:由于知识点较多,分享涵盖了多种语言.预计的学习时间可能会大于3小时,为了保证读者能有良好的学习体验,继续前请先安

Mosquitto服务器的搭建以及SSL/TLS安全通信配置

Mosquitto服务器的搭建以及SSL/TLS安全通信配置 摘自:https://segmentfault.com/a/1190000005079300 openhab  raspberry-pi 8k 次阅读  ·  读完需要 22 分钟 0 1. SSL简介 SSL(SecureSocket Layer)安全套接层,是网景公司提出的用于保证Server与client之间安全通信的一种协议,该协议位于TCP/IP协议与各应用层协议之间,即SSL独立于各应用层协议,因此各应用层协议可以透明地调

Android网络编程系列 一 JavaSecurity之JSSE(SSL/TLS)

摘要: Java Security在Java存在已久了而且它是一个非常重要且独立的版块,包含了很多的知识点,常见的有MD5,DigitalSignature等,而Android在Java Seurity之外,拓展了一个android.security包,此包中就提供了KeyChain.它包含了主要三个重要的规范:JavaCryptography Extension(简写为JCE),JCE所包含的内容有加解密,密钥交换,消息摘要(Message Digest,比如MD5等),密钥管理等.本文所涉及

详解SSL/TLS

SSL/TLS分析 本文分为六个部分,详见思维导图. 一.SSL/TLS作用 在了解作用前,先介绍什么是SSL/TLS?SSL(Secure Sockets Layer)即安全套接字层,保障internet数据传输的安全性.TLS(Transport Layer Security)即安全传输层协议,保障应用程序之间通信的安全性. 要了解SSL/TLS的作用要从网络通信风险着手,所以总结出了三大风险及其对应的解决方案. 参考链接:(http://www.ruanyifeng.com/blog/20

SSL/TLS部署最佳实践

原文: https://www.ssllabs.com/downloads/SSL_TLS_Deployment_Best_Practices_1.3.pdf 译者: Shawn the R0ck,(后面校正的自己加到后面) SSL/TLS部署最佳实践 作者:Ivan Risti? version 1.3 (17 September 2013) Copyright ? 2012-2013 Qualys SSL Labs 抽象: SSL/TLS是一个看似简单的技术.非常容易部署和让她跑起来,但是.

工业物联网的云端协议将以MQTT+SSL/TLS为主,协议格式以JSON为主

工业物联网是什么? 简单来说,就是物联网在工业控制上的具体应用. SSL/TLS是什么? SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议.TLS与SSL在传输层对网络连接进行加密.大部分互联网登录都是用的SSL/TLS,可以去网易邮箱http://WWW.126.COM看下,右下角上面"正使用SSL登录"的标识. MQTT是什么? MQTT(M

Vsftpd支持SSL加密传输

ftp传输数据是明文,弄个抓包软件就可以通过数据包来分析到账号和密码,为了搭建一个安全性比较高ftp,可以结合SSL来解决问题 SSL(Secure Socket Layer)工作于传输层和应用程序之间.作为一个中间层,应用程序只要采用SSL提供的一套SSL套接字API来替换标准的Socket套接字,就可以把程序转换为SSL化的安全网络程序,在传输过程中将由SSL协议实现数据机密性和完整性的保证.SSL取得大规模成功后,IETF将SSL作了标准化,并将其称为TLS(Transport Layer

SSL/TLS原理详解

本文大部分整理自网络,相关文章请见文后参考. 关于证书授权中心CA以及数字证书等概念,请移步 OpenSSL 与 SSL 数字证书概念贴 ,如果你想快速自建CA然后签发数字证书,请移步 基于OpenSSL自建CA和颁发SSL证书. SSL/TLS作为一种互联网安全加密技术,原理较为复杂,枯燥而无味,我也是试图理解之后重新整理,尽量做到层次清晰.正文开始. 1. SSL/TLS概览 1.1 整体结构 SSL是一个介于HTTP协议与TCP之间的一个可选层,其位置大致如下: SSL:(Secure S

SSL&TLS传输层加密协议实现图解

一.SSL&TLS 1.SSL:Secure Sockets Layer ,加密套接字协议层 1)SSL是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密 Secure Socket Layer为Netscape网景公司1994年所研发,用以保障在Internet上数据传输之安全,利用数据加密技术,可确保数据在网络上之传输过程中不会被截取及窃听. 2)SSL协议可分为两层:记录协议.握手协议 SSL Record Protocol:建立在可靠的传输协议如TCP之上为高层协