frwer 发表于 2014-10-22 08:25:14

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.pem2048)

      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 certcrl newcerts
                #touch index.txtserial
               #echo '01' > serial
                修改ssl的配置文件
                #vim/etc/pki/tls/openssl.cnf
               将其中的CA目录修改为如下
               dir             = /etc/pki/CA

二、为客户端颁发证书
            1、客户端创建私钥
                  opensslgenrsa -out/etc/pki/CA/private/vsftpd.key2048
            2、生成颁发请求
                  opensslreq -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软件来测试的,测试过程不再给出。



页: [1]
查看完整版本: vsftpd结合ssl/tls来实现安全通信功能