红联Linux门户
Linux帮助

搭建基于openssl加密的FTP服务器

发布时间:2011-09-03 19:55:40来源:红联作者:静静飞舞
vsFTPd是Linux上的FTP服务器软件之一,它支持很多选项,其中有一条允许使用OpenSSL对数据进行加密,这样可以在一定程度上弥补FTP在传输帐号密码信息时铭文传送的缺陷,可以使FTP帐号更安全一些。在普通的FTP服务器上发送账号信息时候,直接用tcpdump
tcpdump -X dst hostname and port 21 就可以看到账号和密码的明文。
1.首先,安装vsftpd
# yum install vsftpd
2.建立CA
# cd /etc/pki/CA
# mkdir certs newcerts crl
# touch index.txt serial
# echo 01 > serial
# vim /etc/pki/tls/openssl.conf # 修改如下字段,这样在颁发证书的是否方便
[ CA_default ]
dir = /etc/pki/CA # 指定CA的路径
[ req_distinguished_name ]
countryName_default = CN # 默认国家名
stateOrProvinceName_default = HN # 省份
localityName_default = ZZ # 地区
0.organizationName_default = RHCE # 公司名称

# openssl genrsa 1024 > private/cakey.pem
# openssl req -new x509 -key private/cakey.pem -out cacert.pem
一阵回车,注意要配置域名!CA证书建立好了
chmod 600 private/cakey.pem cacert.pem

3.给vsftpd颁发证书
# cd /etc/vsftpd/
# mkdir ssl
# openssl genrsa 1024 > ssl/ftp.key #生成服务器的私钥
# openssl req -new -key ssl/ftp.key -out ssl/ftp.req #根据私钥生成证书请求
# openssl ca -in ssl/ftp.req -out ssl/ftp.crt #用上面生成的CA给自己签署证书
# rm ssl/ftp.req -f
# chmod 600 ssl/ftp.*

4.编辑配置文件,添加如下行
# vim /etc/vsftpd/vsftpd.conf
添加如下行
# SSL configure
ssl_enable=YES
ssl_tlsv1=YES //建议开启这个就行了
ssl_sslv2=NO
ssl_sslv3=NO
allow_anon_ssl=YES //匿名用户开启使用ssl
force_local_data_ssl=YES //强制数据传输使用加密
force_local_logins_ssl=YES //强制登录时使用ssl
rsa_cert_file=/etc/vsftpd/ssl/ftp.crt
rsa_private_key_file=/etc/vsftpd/ssl/ftp.key

5.开启vsftpd服务,在客户端就可以使用ssl加密方式访问ftp了
# service vsftpd start

再用tcpdump -X dst hostname and port 21 捕获数据包,只能看到账号和密码的密文。
文章评论

共有 8 条评论

  1. 2364241457yy 于 2016-12-08 18:40:04发表:

    1# 静静飞舞


    学习

  2. 12700696 于 2012-12-25 10:25:47发表:

    搭建基于openssl加密的FTP服务器
    vsFTPd是Linux上的FTP服务器软件之一,它支持很多选项,其中有一条允许使用OpenSSL对数据进行加密,这样可以在一定程度上弥补FTP在传输帐号密码信息时铭文传送的缺陷,可以使FTP帐号更安全一些。在普通的FTP服务器上发送账号信息时候,直接用tcpdump
    tcpdump -X dst hostname and port 21 就可以看到账号和密码的明文。
    1.首先,安装vsftpd
    # yum install vsftpd
    2.建立CA
    # cd /etc/pki/CA
    # mkdir certs newcerts crl
    # touch index.txt serial
    # echo 01 > serial
    # vim /etc/pki/tls/openssl.conf # 修改如下字段,这样在颁发证书的是否方便
    [ CA_default ]
    dir = /etc/pki/CA # 指定CA的路径
    [ req_distinguished_name ]
    countryName_default = CN # 默认国家名
    stateOrProvinceName_default = HN # 省份
    localityName_default = ZZ # 地区
    0.organizationName_default = RHCE # 公司名称

    # openssl genrsa 1024 > private/cakey.pem
    # openssl req -new x509 -key private/cakey.pem -out cacert.pem
    一阵回车,注意要配置域名!CA证书建立好了
    chmod 600 private/cakey.pem cacert.pem

    3.给vsftpd颁发证书
    # cd /etc/vsftpd/
    # mkdir ssl
    # openssl genrsa 1024 > ssl/ftp.key #生成服务器的私钥
    # openssl req -new -key ssl/ftp.key -out ssl/ftp.req #根据私钥生成证书请求
    # openssl ca -in ssl/ftp.req -out ssl/ftp.crt #用上面生成的CA给自己签署证书
    # rm ssl/ftp.req -f
    # chmod 600 ssl/ftp.*

    4.编辑配置文件,添加如下行
    # vim /etc/vsftpd/vsftpd.conf
    添加如下行
    # SSL configure
    ssl_enable=YES
    ssl_tlsv1=YES //建议开启这个就行了
    ssl_sslv2=NO
    ssl_sslv3=NO
    allow_anon_ssl=YES //匿名用户开启使用ssl
    force_local_data_ssl=YES //强制数据传输使用加密
    force_local_logins_ssl=YES //强制登录时使用ssl
    rsa_cert_file=/etc/vsftpd/ssl/ftp.crt
    rsa_private_key_file=/etc/vsftpd/ssl/ftp.key

    5.开启vsftpd服务,在客户端就可以使用ssl加密方式访问ftp了
    # service vsftpd start

    再用tcpdump -X dst hostname and port 21 捕获数据包,只能看到账号和密码的密文。

  3. BeefyMiracle 于 2012-12-13 12:13:14发表:

    (e:e2s

  4. gky2009514 于 2012-12-07 13:05:08发表:

    新手完成任务,求下书籍~

  5. sleep_LYN 于 2012-02-29 23:10:13发表:

    有空一定要试一下,很有用的。

  6. Growth兆 于 2011-09-04 09:41:21发表:

    感谢静静飞舞的分享,本贴加入到论坛顶置的Linux应用贴中

  7. tribudis 于 2011-09-03 21:12:09发表:

    强烈学习

  8. 静静飞舞 于 2011-09-03 19:56:02发表:

    本文参考了 http://www.linuxidc.com/Linux/2011-08/41171.htm