Linux下vsftpd安装以及配置FTP虚拟用户实践

系统 Linux 系统运维
正如vsftpd官方宣传中所说Probably the most secure and fastest FTP server for UNIX-like systems.我相信这是大多数人选择vsftpd来搭建Linux的FTP服务器的原因,当然ProFTPD用的人应该也不在少数。文章将以清晰直观的方式介绍安装vsftpd以及配置FTP虚拟用户的过程,希望对大家有帮助。

  [[146756]]

***的FTP服务器搭建方式

  安装vsftpd  

 

  1. #查看当前系统版本 
  2. cat /etc/redhat-release  
  3. CentOS release 6.6 (Final) 
  4.  
  5. #查看是否已经安装vsftpd 
  6. rpm -qa | grep vsftpd 
  7. #如果没有,就安装,并设置开机启动 
  8. yum -y install vsftpd 
  9. chkconfig vsftpd on 

  基于虚拟用户的配置

  所谓虚拟用户就是没有使用真实的帐户,只是通过映射到真实帐户和设置权限的目的。虚拟用户不能登录CentOS系统。

  修改配置文件  

 

  1. vi /etc/vsftpd/vsftpd.conf 
  2.  
  3. #服务器独立运行 
  4. listen=YES 
  5. #设定不允许匿名访问 
  6. anonymous_enable=NO 
  7. #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问 
  8. local_enable=YES 
  9. #使用户不能离开主目录 
  10. chroot_list_enable=YES 
  11. #设定支持ASCII模式的上传和下载功能 
  12. ascii_upload_enable=YES 
  13. ascii_download_enable=YES 
  14. #PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证 
  15. pam_service_name=vsftpd 
  16. #设定启用虚拟用户功能 
  17. guest_enable=YES 
  18. #指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了 
  19. guest_username=ftp 
  20. #设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名) 
  21. user_config_dir=/etc/vsftpd/vuser_conf 
  22. #配置vsftpd日志(可选) 
  23. xferlog_enable=YES 
  24. xferlog_std_format=YES 
  25. xferlog_file=/var/log/xferlog 
  26. dual_log_enable=YES 
  27. vsftpd_log_file=/var/log/vsftpd.log 

  进行认证  

 

  1. #安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包 
  2. yum install db4 db4-utils 
  3.  
  4. #创建用户密码文本,注意奇行是用户名,偶行是密码 
  5. vi /etc/vsftpd/vuser_passwd.txt 
  6.  
  7. test 
  8. 123456 
  9.  
  10. #生成虚拟用户认证的db文件 
  11. db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db 
  12.  
  13. #编辑认证文件,全部注释掉原来语句,再增加以下两句 
  14. vi /etc/pam.d/vsftpd 
  15.  
  16. auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd 
  17. account required pam_userdb.so db=/etc/vsftpd/vuser_passwd 
  18.  
  19. #创建虚拟用户配置文件 
  20. mkdir /etc/vsftpd/vuser_conf/ 
  21. #文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效 
  22. vi /etc/vsftpd/vuser_conf/test 
  23.  
  24. #虚拟用户根目录,根据实际情况修改 
  25. local_root=/data/ftp 
  26. write_enable=YES 
  27. anon_umask=022 
  28. anon_world_readable_only=NO 
  29. anon_upload_enable=YES 
  30. anon_mkdir_write_enable=YES 
  31. anon_other_write_enable=YES 

  设置FTP根目录权限  

 

  1. #***的vsftpd要求对主目录不能有写的权限所以ftp为755,主目录下面的子目录再设置777权限 
  2. mkdir /data/ftp 
  3. chmod -R 755 /data 
  4. chmod -R 777 /data/ftp 
  5.  
  6. #建立限制用户访问目录的空文件 
  7. touch /etc/vsftpd/chroot_list 
  8.  
  9. #如果启用vsftpd日志需手动建立日志文件 
  10. touch /var/log/xferlog  
  11. touch /var/log/vsftpd.log 

  配置PASV模式(可选)

  vsftpd默认没有开启PASV模式,现在FTP只能通过PORT模式连接,要开启PASV默认需要通过下面的配置。  

 

  1. 打开/etc/vsftpd/vsftpd.conf,在末尾添加 
  2.  
  3. #开启PASV模式 
  4. pasv_enable=YES 
  5. #最小端口号 
  6. pasv_min_port=40000 
  7. #***端口号 
  8. pasv_max_port=40080 
  9. pasv_promiscuous=YES 
  10.  
  11. #在防火墙配置内开启40000到40080端口 
  12. -A INPUT -m state --state NEW -m tcp -p -dport 40000:40080 -j ACCEPT 
  13.  
  14. #重启iptabls和vsftpd 
  15. service iptables restart 
  16. service vsftpd restart 
  17.  
  18. 现在可以使用PASV模式连接你的FTP服务器了~ 

  Selinux和防火墙

  该关闭的关闭,该放行的放行  

  1. service vsftpd start 

  常见问题

  如果登录时出现  

  1. 500 OOPS: priv_sock_get_result. Connection closed by remote host. 

  这样的错误,需要升级pam  

  1. yum update pam 
责任编辑:火凤凰 来源: HelloDog博客
相关推荐

2010-12-27 13:26:25

FreeBSDvsftpd虚拟用户

2010-02-04 13:43:26

Linux vsFTP

2011-02-24 09:14:37

vsFTPd虚拟用户

2011-03-04 10:05:10

Vsftpd虚拟用户

2011-03-04 10:03:44

VSFTPD虚拟服务器

2011-02-23 15:50:04

Linuxvsftpd

2011-02-23 17:23:35

linux vsftpd

2010-02-22 18:27:14

CentOS vsft

2011-02-23 15:50:04

Linuxvsftpd

2011-02-23 16:25:51

linuxvsftpd

2011-03-02 09:31:13

2011-03-02 09:31:13

2011-02-22 13:28:43

Linuxvsftpd配置

2011-02-23 16:09:48

2011-02-23 16:04:32

LinuxvsftpdFTP

2011-02-23 16:08:24

LinuxvsftpdFTP

2011-03-04 14:47:58

Vsftpd虚拟用户

2013-09-26 11:08:56

2011-03-03 17:02:50

Vsftpd

2011-02-23 09:55:33

Centos安装vsftpd
点赞
收藏

51CTO技术栈公众号