FTP协议以快速著称,vsftp 号称安全的FTP,是目前主流的FTP服务器软件。

本文创建基于 Berkeley DB 虚拟用户的VSFTP服务器 

 

环境:CentOS 6.4 x86_64

 

1、安装vsftp和 Berkeley DB

  1. # yum install vsftpd db4-utils db4 -y 

 

2、创建虚拟用户,并导入Berkeley DB

  1. # cd /etc/vsftpd 
  2. # cat > vusers.txt <<EOF 
  3. vivek 
  4. vivekpasswd 
  5. sayali 
  6. sayalipasswd 
  7. EOF 
  8.  
  9. # db_load -T -t hash -f vusers.txt vsftpd-virtual-user.db 
  10. # chmod 600 vsftpd-virtual-user.db 
  11. # rm vusers.txt 

 

3、配置vsftp.conf

 

  1. 修改如下行:   
  2. anonymous_enable=NO   
  3. local_enable=YES   
  4. write_enable=YES   
  5. pam_service_name=vsftpd.virtual   
  6.    
  7.    
  8. 添加如下行:   
  9. virtual_use_local_privs=YES   
  10. guest_enable=YES   
  11. user_sub_token=$USER   
  12. local_root=/var/ftp/$USER   
  13. chroot_local_user=YES   
  14. hide_ids=YES   
  15. use_localtime=YES  
  16. pasv_min_port=65400 
  17. pasv_max_port=65410 

 

4、配置pam,让vsftp使用pam_userdb.so进行认证

  1. # cat > /etc/pam.d/vsftpd.virtual <<EOF 
  2. #%PAM-1.0 
  3. auth       required     pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user 
  4. account    required     pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user 
  5. session    required     pam_loginuid.so 
  6. EOF 

5、创建用户目录

  1. # mkdir -p /home/vftp/{vivek,sayali} 
  2. # chown -R ftp:ftp /home/vftp 

6、开启防火墙端口

  1. modprobe nf_nat_ftp 
  2. modprobe nf_conntrack_ftp 
  3. /sbin/iptables -A INPUT -s $lan -p tcp --dport 20 -j ACCEPT   
  4. /sbin/iptables -A INPUT -s $lan -p tcp --sport 1024:65534 --dport 21 -j ACCEPT   
  5. /sbin/iptables -A INPUT -s $lan -p tcp --spor--dport 65400:65410 -j ACCEPT  

7、over

 

翻译后有修改

原文:http://www.cyberciti.biz/tips/centos-redhat-vsftpd-ftp-with-virtual-users.html