配置vsftp的ftps加密传输

1.4 让 vsftpd 增加 SSL 的加密功能

1. 检查 vsftpd 有无支持 ssl 模块:
如果你的 vsftpd 当初编译的时候没有支持 SSL 模块,那么你就得只好自己重新编译一个 vsftpd 的软件了!我们的 CentOS 有支持吗? 赶紧来瞧瞧:
[root@www ~]# ldd $(which vsftpd) | grep ssl
       libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f0587879000)
如果有出现 libssl.so 的字样,就是有支持!这样才能够继续下一步呦!
2. 建立专门给 vsftpd 使用的凭证数据:
CentOS 给我们一个建立凭证的地方,那就是 /etc/pki/tls/certs/ 这个目录!详细的说明我们在 20.5.2 里面谈过咯,所以这里只介绍怎么做:
[root@www ~]# cd /etc/pki/tls/certs
[root@www certs]# make vsftpd.pem
----- ....(前面省略)....
Country Name (2 letter code) [XX]:TW
State or Province Name (full name) []:Taiwan
Locality Name (eg, city) [Default City]:Tainan
Organization Name (eg, company) [Default Company Ltd]:KSU
Organizational Unit Name (eg, section) []:DIC
Common Name (eg, your name or your server's hostname) []:www.centos.vbird
Email Address []:[email protected]

[root@www certs]# cp -a vsftpd.pem /etc/vsftpd/
[root@www certs]# ll /etc/vsftpd/vsftpd.pem
-rw-------. 1 root root 3116 2011-08-08 16:52 /etc/vsftpd/vsftpd.pem
# 要注意一下权限喔!
3. 修改 vsftpd.conf 的配置文件,假定有实体、匿名账号:
在前面 21.2 里面大多是单纯匿名或单纯实体帐户,这里我们将实体账号透过 SSL 联机,但匿名者使用明码传输! 两者同时提供给客户端使用啦!FTP 的设定项目主要是这样:
提供实体账号登入,实体账号可上传数据,且 umask 为 002
实体账号默认为 chroot 的情况,且全部实体账号可用带宽为 1Mbytes/second
实体账号的登入与数据传输均需透过 SSL 加密功能传送;
提供匿名登录,匿名者仅能下载,不能上传,且使用明码传输 (不透过 SSL)
此时,整体的设定值会有点像这样:
[root@www ~]# vim /etc/vsftpd/vsftpd.conf
# 实体账号的一般设定项目:
local_enable=YES
write_enable=YES
local_umask=002
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
local_max_rate=10000000
# 匿名者的一般设定:
anonymous_enable=YES
no_anon_password=YES
anon_max_rate=1000000
data_connection_timeout=60
idle_session_timeout=600
# 针对 SSL 所加入的特别参数!每个项目都很重要!
ssl_enable=YES              <==启动 SSL 的支持
allow_anon_ssl=NO           <==但是不允许匿名者使用 SSL 喔!
force_local_data_ssl=YES    <==强制实体用户数据传输加密
force_local_logins_ssl=YES  <==同上,但连登入时的帐密也加密
ssl_tlsv1=YES               <==支持 TLS 方式即可,底下不用启动
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem <==预设 RSA 加密的凭证档案所在
# 一般服务器系统设定的项目:
max_clients=50
max_per_ip=5
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
tcp_wrappers=YES
banner_file=/etc/vsftpd/welcome.txt
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
pasv_min_port=65400
pasv_max_port=65410
[root@www ~]# /etc/init.d/vsftpd restart

你可能感兴趣的:(配置vsftp的ftps加密传输)