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 捕获数据包,只能看到账号和密码的密文。
2364241457yy 于 2016-12-08 18:40:04发表:
1# 静静飞舞
学习
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 捕获数据包,只能看到账号和密码的密文。
BeefyMiracle 于 2012-12-13 12:13:14发表:
(e:e2s
gky2009514 于 2012-12-07 13:05:08发表:
新手完成任务,求下书籍~
sleep_LYN 于 2012-02-29 23:10:13发表:
有空一定要试一下,很有用的。
Growth兆 于 2011-09-04 09:41:21发表:
感谢静静飞舞的分享,本贴加入到论坛顶置的Linux应用贴中
tribudis 于 2011-09-03 21:12:09发表:
强烈学习
静静飞舞 于 2011-09-03 19:56:02发表:
本文参考了 http://www.linuxidc.com/Linux/2011-08/41171.htm