> CentOS > CentOS入门 >

CentOS 6.3下vsftpd的简单使用教程

CentOS 6.3下vsftpd的简单使用教程

 

1、关于vsftpd的基本知识

(1)什么是vsftpd?参考百度百科,http://baike.baidu.com/view/1806035.htm

(2)FTP用户的3种身份:实体用户(real user)、访客(guest)和匿名登录者(anonymous)

a. 实体用户(real user):一般是Linux系统上的用户,也是FTP用户,登录FTP需要密码

b. 访客(guest):不是Linux系统的用户,而是FTP用户,登录FTP需要密码

c. 匿名登录者(anonymous):不是Linux系统的用户,而是FTP用户,登录FTP不需要密码

 

2. 安装vsftpd


 
  1. [root@localhost ~]# yum install vsftpd  

 

3、启动vsftpd服务


 
  1. [root@localhost ~]# service vsftpd start  
  2. Starting vsftpd for vsftpd:                                [  OK  ]  
  3. [root@localhost ~]# service vsftpd status  
  4. vsftpd (pid 30196) is running...  

在Chrome中打开ftp://主机IP,该网络地址默认指向的是/var/ftp目录,如下

4、vsftpd的软件组织

 

/etc/vsftpd/vsftpd.conf

主配置文件

/usr/sbin/vsftpd

vsftpd的可执行文件

/etc/rc.d/init.d/vsftpd

启动脚本

/etc/pam.d/vsftpd

PAM认证文件

/etc/vsftpd/ftpusers

禁止使用vsftpd的用户列表文件

/etc/vsftpd/user_list

禁止或允许使用vsftpd的用户列表

/var/ftp

匿名用户主目录

/var/ftp/pub

匿名用户的下载目录

 

 

5、分析和修改/etc/vsftpd/vsftpd.conf文件

(1)先备份vsftpd.conf文件


 
  1. [root@localhost ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup  

 

(2)查看vsftpd的版本和vsftpd.conf文件的配置说明


 
  1. [root@localhost ~]# vsftpd -v  
  2. vsftpd: version 2.2.2  
  3. [root@localhost ~]# man vsftpd.conf  

 

(3)默认vsftpd.conf文件的配置(删除了多余的注释)


 
  1. [root@localhost ~]# cat -n /etc/vsftpd/vsftpd.conf  
  2.      1  anonymous_enable=YES  
  3.      2  local_enable=YES  
  4.      3  write_enable=YES  
  5.      4  local_umask=022  
  6.      5  dirmessage_enable=YES  
  7.      6  xferlog_enable=YES  
  8.      7  connect_from_port_20=YES  
  9.      8  xferlog_std_format=YES  
  10.      9  listen=YES  
  11.     10  pam_service_name=vsftpd  
  12.     11  userlist_enable=YES  
  13.     12  tcp_wrappers=YES  
  14. [root@localhost ~]#  

以上默认配置实现如下的功能:

a. 可以使用anonymous这个匿名账号或其他实体账号(/etc/passwd)登录

b. anonymous的默认目录在/var/ftp,且无上传权限,也已经被chroot了

c. 实体用户的默认目录参考/etc/passwd,并没有被chroot,可前往任何有权限即可进入的目录中

d. 任何于/etc/vsftpd/ftpusers内存在的账号均无法使用vsftpd

e. 可利用/etc/host.{allow|deny}来作为基础防火墙

f. 当客户端有任何上传/下载信息时,该信息会被记录到/var/log/vsftpd.log中

g. 主动式连接的端口为20

h. 使用格林威治时间(GMT)

(参考鸟哥的私房菜^_^)

 

(4)我的个人修改(在默认的基础上),如下


 
  1. [root@localhost ~]# vi /etc/vsftpd/vsftpd.conf  
  2.   
  3. # The default settings created by vsftpd  
  4. anonymous_enable=YES  
  5. local_enable=YES  
  6. write_enable=YES  
  7. local_umask=002  
  8. dirmessage_enable=YES  
  9. xferlog_enable=YES  
  10. connect_from_port_20=YES  
  11. xferlog_std_format=YES  
  12. listen=YES  
  13. pam_service_name=vsftpd  
  14. userlist_enable=YES  
  15. tcp_wrappers=YES  
  16.   
  17. # ---Added by wesley---  
  18.   
  19. # Use local time  
  20. use_localtime=YES  
  21.   
  22. # Welcome information  
  23. banner_file=/etc/vsftpd/welcome.txt  
  24.   
  25. # Enable chroot and locate chroot_list file  
  26. chroot_list_enable=YES  
  27. chroot_list_file=/etc/vsftpd/chroot_list  
  28.   
  29. # Make all real users chroot and let users in chroot_list not be chroot  
  30. # If comment the line, the users in chroot_list will be chroot (It's tricky!)  
  31. chroot_local_user=YES  
  32.   
  33. # Defeine maximum clients to use ftp  
  34. max_clients=10  
  35.   
  36. # Define maximum connections per ip address  
  37. max_per_ip=5  
  38.   
  39. # Relocate real users' ftp homes to specific folders  
  40. # By default, real users' ftp homes is /home/<username>  
  41. user_config_dir=/etc/vsftpd/userhomes  
  42.   
  43. # ---End---  

(a)use_localtime=YES:使用本地时间。

(b)chroot_list_enable=YES:启用chroot,用户登录将锁定其ftp主目录,不能切换到其他目录。

(c)chroot_list_file=/etc/vsftpd/chroot_list:当只有chroot_local_user=NO(或者没有这一行时),在chroot_list文件(需要手动创建)中的用户,是被chroot的,用户登录将锁定其ftp主目录;而chroot_local_user=YES,在chroot_list文件中的用户,是不被chroot的,用户登录后可以任意切换目录。

(d)chroot_local_user=YES:YES或NO时,触发chroot_list中的用户允许或不允许chroot。

(e)max_clients=10:限制FTP连接数最大为10

(f)max_per_ip=5:限制每个IP最多使用5个FTP连接

(g)user_config_dir=/etc/vsftpd/userhomes,自定义一个用户配置目录,该目录存放每个实体用户(real user)的用户名命名的文件,例如/etc/vsftpd/userhomes目录下创建一个test文件,当然test用户是存在的,在test文件中写入一行local_root=/var/ftp/pub,那么test用户登录FTP时,ftp主目录自动定位到/var/ftp/pub,而不是原来的/home/test。

(h)local_umask=002:当FTP用户创建文件或文件夹时,要用到该umask值。这里比默认的配置,增加了组用户写权限。

 

参考资料:

1、http://blog.csdn.net/kofterry/article/details/4277267

2、http://os.51cto.com/art/201004/192447.htm

3、http://tanjunjie.blog.51cto.com/6988/774256

4、http://desert3.iteye.com/blog/1685734

5、http://www.cnblogs.com/redhatlinux/archive/2012/04/18/2455737.html

6、http://crazyidea.iteye.com/blog/1207952

7、http://book.51cto.com/art/201005/199774.htm

8、《鸟哥的Linux私房菜:服务器架设篇(第二版)》,P631

(责任编辑:IT)