为vsftpd加上ssl支持

  对于一些重要的/机密的文件的传输,采用普通的ftp明文传输,有可能造成信息泄漏,所以采用ssl加密传输不失是一种较好的

  解决方案.

  案例:freebsd+vsftpd 2.03+ssl

  先前已经安装了vsftpd2.03,现在要加入ssl支持。切换到root权限下:

  1 安装openssl,

  root#cd /usr/ports/security/openssl
  root#make install clean

  2 重新安装vsftpd2.03,加入ssl支持。

  root#/cd /usr/ports/ftp/vsftpd/
  root#make deinstall

  不知道 ssl的编译参数是多少?查看Makefile文件。

  root#more Makefile

  看到有一行

  .if !defined(WITHOUT_SSL) && defined(WITH_VSFTPD_SSL)

  现在知道了

  root#make WITH_VSFTPD_SSL=yes install clean

  3 完成之后,创建证书:

  openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem

  填写相关内容后,生成vsftpd.pem证书。将次证书放在。/usr/share/ssl/目录下

  4 修改vsftpd.conf文件

  root#ee /usr/local/etc/vsftpd.conf

  加入一些内容:

  ssl_enable=YES
  ssl_sslv2=YES
  force_local_data_ssl=YES
  force_local_logins_ssl=YES
  rsa_cert_file=/usr/share/ssl/vsftpd.pem

  ssl_enable=YES 支持加密协议。
  ssl_sslv2=YES 支持安全套接字层 v2
  force_local_data_ssl=YES
  force_local_logins_ssl=YES

  这两行强制非匿名用户使用加密登陆和数据传输,如果设定为NO,则用户可以选择加密,也可以不加密。

  rsa_cert_file=/usr/share/ssl/vsftpd.pem

  指明证书的路径

  默认为:=/usr/share/ssl/certs/vsftpd.pem

  5 重起vsftpd,使用客户端测试。

  以FileZilla为例 Servertype 由ftp修改为FTP over SSL(explicit encryption),同时修改传输模式 Edit->Settings->Firewall settings,选中Passive Mode(如果ftp在防火墙内部)FileZilla是一个开源的ftp client,很好用的。哈哈。