Linux下使用OpenSSL创建安全的vsFTP
vsFTPd是Linux上的FTP服务器软件之一,它支持很多选项,其中有一条允许使用OpenSSL对数据进行加密,这样可以在一定程度上弥补FTP在传输帐号密码信息时铭文传送的缺陷,可以使FTP帐号更安全一些。
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
又是一阵回车,vsfptd的请求证书申请号了
# openssl ca -in ssl/ftp.req -out ssl/ftp.crt
确定签署
# 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
6.我们在服务端使用命令抓包来看看数据是否是加密后的
# tcpdump -i eth0 -A dst 192.168.0.48