首页 > Linux > 基于Debian配置vsftp的SSL

基于Debian配置vsftp的SSL

2011年4月17日 LTNS     访问次数 597 发表评论 阅读评论

前两天在VPS上把Debian从lenny(5.0)升级至squeeze(6.0),相应地vsftp版本从2.0.7变成2.3.2-3,解决了兼容UTF-8编码的问题,顺便配置了一下SSL功能。

1. 先检查一下vsftpd是否支持SSL

ldd /usr/sbin/vsftpd | grep libssl
#应类似如下显示
  libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb7eb6000)

openssl必须0.9.6以上版本,如果不是请升级一下openssl

apt-get update
apt-get install openssl

2. 然后生成一下ssl证书文件

cd /etc/ssl/certs/
openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem

3. 用vi或在winscp里编辑vsftp的配置文件 /etc/vsftpd.conf ,在文件最后添加如下几行

ssl_enable=YES   #开启SSL认证方式(默认Explicit/AUTH),否则如下皆无效
ssl_tlsv1=YES
ssl_sslv2=NO   #据说SSL 2.0有漏洞
ssl_sslv3=YES
force_local_data_ssl=YES  #强制非匿名用户必须用SSL加密数据传输和登录
force_local_logins_ssl=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem   #指定证书路径
#implicit_ssl=YES  #Implicit SSL认证方式,会导致AUTH SSL方式失效

具体说明请见官网 http://vsftpd.beasts.org/vsftpd_conf.html

4. 最后重启一下vsftp

/etc/init.d/vsftpd restart

现在可以用支持ssl的ftp客户端如flashfxp登录了(注意IE等浏览器、windows资源管理器都不支持SSL),在属性设置中选择相应的SSL认证方式。

 

补充1:

还可以自行编译vsftp升级到最新的2.3.4,先下载解压

cd
wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.3.4.tar.gz
tar zxvf vsftpd-2.3.4.tar.gz
cd vsftpd-2.3.4

然后编辑一下该目录下的 builddefs.h 文件,把其中的

#undef VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#undef VSF_BUILD_SSL

修改为

#undef VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#define VSF_BUILD_SSL

最后进行编译安装

make && make install
mv /usr/local/sbin/vsftpd /usr/sbin/
/etc/init.d/vsftpd restart

 

补充2:

vsftp似乎不能在一个ip上同时监听两个以上的端口,可设置一个虚拟网卡或别名ip,另外做一份配置文件以便在这个新的ip上监听另外一个端口,详请参考一篇 教程

也可以通过端口重定向,比如下面的命令把端口22重定向给21(x.x.x.x需替换为ftp服务器的实际ip),但实际上vsftp只监听端口21

iptables -t nat -A PREROUTING -p tcp -d x.x.x.x --dport 22 -j DNAT --to-destination x.x.x.x:21

 

参考文章
http://wuhaoshu.blog.51cto.com/845270/502909
http://blog.csdn.net/xiliuhu/archive/2010/01/31/5273934.aspx

 

分类: Linux 标签: , , ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
30 - 7 = (必填)