天天看点

配置vsftp+ssl

1、系统环境、安装包

centOS 5.4

db4

vsftpd

需要RPM包

db4-tcl-4.3.29-10.el5_5.2

db4-4.3.29-10.el5_5.2

db4-java-4.3.29-10.el5_5.2

db4-utils-4.3.29-10.el5_5.2

db4-devel-4.3.29-10.el5_5.2

vsftpd-2.0.5-16.el5_5.1

2、安装vsftp

yum install vsftpd*

yum install db4

3、添加虚拟用户口令

vi /etc/login.txt

test

111111

test2

222222

test3

333333

4、生成虚拟用户口令认证文件

db_load -T -t hash -f /etc/login.txt /etc/vsftpd/vsftpd_login.db

chmod 600 /etc/vsftpd_login.db

5、编辑vsftpd的PAM认证文件

vi /etc/pam.d/vsftpd

将里面的全部注释掉,添加下面的两行

auth        required    /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account     required    /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

6、建立本地映射用户并设置宿主目录权限

useradd -d /home/ftpsite -s /sbin/nologin virtual

chmod 700 /home/ftpsite

7、配置vsftpd.conf

vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

listen=YES                         #设置VSFTP服务器启动方式为独立启动    

#virtual_use_local_privs=YES       #将此配置注释掉,否则虚拟用户的权限无法细分

user_config_dir=/etc/vsftpd/vsftpd_user_conf  #创建此目录,此目录为用户的权限文件配置目录

chroot_local_user=YES              #设置目录不可以更改主目录

listen_port=21

pasv_enable=YES

pasv_max_port=30000

pasv_min_port=30999 

guest_enable=YES                   #开启虚拟用户

guest_username=virtual             #FTP虚拟用户对于的系统用户

pam_service_name=vsftpd            #PAM认证文件

为test用户配置权限(上传、下载、建目录、删除文件、修改文件名)

mkdir /etc/vsftpd/vsftpd_user_conf

vi /etc/vsftpd/vsftpd_user_conf/test

local_root=/home/ftpsite/public

write_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

为test1用户配置权限(只有上传权限)

vi /etc/vsftpd/vsftpd_user_conf/test1

为test2用户配置权限

vi /etc/vsftpd/vsftpd_user_conf/test2 (上传和下载权限)

8、配置防火墙

vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 30000:30999 -j ACCEPT

以上配置好后验证下VSFTP是否可以登录,通过客户端登录服务器验证下

本地 yum install ftp

然后:ftp 127.0.0.1 根据实际的账户验证是否登录,都没有问题 就可以操作以下步骤

9、安装openssl

   yum install openssl*

   9.1 确认一下安装的vsftpd是否支持ssl加密

      [root@localhost public]# ldd /usr/sbin/vsftpd | grep libssl

      libssl.so.6 => /lib/libssl.so.6 (0x00502000)

   9.2 利用OpenSSL生成证书

       [root@localhost] openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

       其中"-days 365"声明证书的有效期是一年。

       接下来的过程需要你输入一些相关的国家,地区,位置,组织名称,common name等信息。

       回答这些信息以后系统会将生成完的证书vsftpd.pem文件保存在/etc/vsftpd目录下。

   9.3 修改/etc/vsftpd/vsftpd.conf文件

       增加下面这些内容,这些参数是与ssl有关的。

       ssl_enable=YES

       allow_anon_ssl=NO

       force_local_data_ssl=NO

       force_local_logins_ssl=YES

       ssl_tlsv1=YES

       ssl_sslv2=NO

       ssl_sslv3=NO

       rsa_cert_file=/etc/vsftpd/vsftpd.pem

       如果设置force_local_logins_ssl=YES,那么会强制用户登录时采用支持TLS/SSL认证的ftp客户端。如果设置为NO的话,则用户可以选择使用ssl加密或者不加密。

   9.4 重新启动vsftpd服务

       [root@localhost] /etc/rc.d/init.d/vsftpd restart

10、下载flash客户端测试

flashfxp等ftp客户端设置ssl选项,如下图:

<a target="_blank" href="http://img1.51cto.com/attachment/201103/134155521.gif"></a>

通过FlashFXP连接成功~

本文转自 holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/514376

继续阅读