首页 > 代码库 > vsftpd结合ssl/tls来实现安全通信功能

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软件来测试的,测试过程不再给出。

 

 

 

 

本文出自 “linux学习之路” 博客,请务必保留此出处http://xslwahaha.blog.51cto.com/4738972/1565771

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