说明:
本文实现vsftpd添加ssl加密功能。
实现:
1.检查vsftpd是否支持ssl模块。如果你的 vsftpd当初编译的时候没有支持SSL模块,那么只能重新编译vsftpd。 CentOS下是否有支持ssl模块可以
# ldd $(which vsftpd) | grep ssl libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f0587879000)
如果有出现 libssl.so 的字样,就是有支持!这样才能够继续下一步呦!
2.建立专门给vsftpd使用的凭证数据。CentOS有一个建立凭证的地方/etc/pki/tls/certs/
# cd /etc/pki/tls/certs # make vsftpd.pem ----- ....(前面省略).... Country Name (2 letter code) [XX]:cn State or Province Name (full name) []:Fujian Locality Name (eg, city) [Default City]:Xiamen Organization Name (eg, company) [Default Company Ltd]:Gaingreat Organizational Unit Name (eg, section) []:GG Common Name (eg, your name or your server's hostname) []:gaingreat.com Email Address []:gaingreat@gmail.com
# cp -a vsftpd.pem /etc/vsftpd/ # ll /etc/vsftpd/vsftpd.pem -rw-------. 1 root root 3116 2011-08-08 16:52 /etc/vsftpd/vsftpd.pem //要注意权限
3. 修改vsftpd.conf的配置文件,内容如下
ssl_enable=YES #是否使用ssl allow_anon_ssl=NO #是否允许匿名用户使用ssl force_local_data_ssl=YES #强制数据使用ssl传输 force_local_logins_ssl=YES #强制登陆使用sll ssl_tlsv1=YES ssl_sslv2=YES ssl_sslv3=YES #开启sslv3,上同 rsa_cert_file=/etc/vsftpd/vsftpd.pem #使用/etc/vsftpd/vsftpd.pem认证文件
附录:
想一想,既然有了 SFTP 可以进行加密的 FTP 传输,那为何需要 ftps 呢?
因为既然要开放 SFTP 的话,就得要同时放行 sshd 亦即是 ssh 的联机,如此一来,你的 port 22 很可能会常常被侦测~若是 openssl, openssh 出问题,恐怕你的系统就会被绑架。如果你的 FTP 真的有必要存在,那么透过 ftps 以及利用 vsftpd 这个较为安全的服务器软件来架设, 理论上,是要比 sftp 来的安全些~至少对 Internet 放行 ftps 还不会觉得很可怕…