用vsftpd搭建FTP服务器

运维 系统运维
vsftpd是在Linux发行版中最受人们推崇的一种FTP服务器程序,vsftpd也是一款十分不错的ftp服务器软件,您可以用vsftpd可以很快地部署一个功能强大的ftp服务器。需要vsftpd部署的可以依照下面的步骤一步步完成架设搭建。

  用VSFTPD搭建FTP服务器

  搭建FTP服务器可选用的软件很多,在这里介绍一款Very Secure FTP daemon(VSFTPD)。

  1. 安装vsftpd

  1.   $sudo apt-get install vsftpd  
  2.  

  2. 启动vsftpd

  1.   $sudo /etc/init.d/vsftpd start  
  2.  

  关闭vsftpd

  1.   $sudo /etc/init.d/vsfptd stop  
  2.  

  重启vsftpd

 

  1.   $sudo /etc/init.d/vsfptd.restart  
  2.  

  3. 配置vsftpd

  配置文件在/etc/vsftpd.conf。关于配置解释转载自文章:用vsftp建立个ftp站点。

  首先是最基本的配置,请看我的/etc/vsftpd/vsftpd.conf

  ###############################################################################

  #接受匿名用户

  anonymous_enable=YES

  #匿名用户login时不询问口令

  no_anon_password=YES

  #接受本地用户

  local_enable=YES

  #可以上传(全局控制).若想要匿名用户也可上传则需要设置anon_upload_enable=YES,若想要匿名用户可以建立目录则需要设置anon_mkdir_write_enable=YES.这里禁止匿名用户上传,所以不设置这两项.

  write_enable=YES

  #本地用户上传文件的umask

  local_umask=022

  #使用上传/下载日志,日志文件默认为/var/log/vsftpd.log,可以通过xferlog_file选项修改

  xferlog_enable=YES

  #日志使用标准xferlog格式

  xferlog_std_format=YES

  #login时的欢迎信息

  ftpd_banner=Welcome to KingArthur's FTP service.

  #设置的话将覆盖上面的ftpd_banner设置,用户login时将显示/etc/vsftpd/banner中的内容

  banner_file=/etc/vsftpd/banner

  #为YES则进入目录时显示此目录下由message_file选项指定的文本文件(,默认为.message)的内容

  dirmessage_enable=YES

  #本地用户login后所在目录,若没有设置此项,则本地用户login后将在他的home目录(/etc/passwd的第六个字段)中.匿名用户的对应选项是anon_root

  local_root=/var/ftp

  #设置为YES则下面的控制有效

  chroot_list_enable=YES

  #若为NO,则记录在chroot_list_file选项所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户将被chroot在登录后所在目录中,无法离开.如果为YES,则所记录的用户将不被chroot.这里选择YES.

  chroot_local_user=YES

  #若设置为YES则记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户将无法login,并且将检察下面的userlist_deny选项

  userlist_enable=YES

  #若为NO,则仅接受记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户的login请求.若为YES则不接受这些用户的请求.

  userlist_deny=NO

  #注意!!!vsftpd还要检察/etc/vsftpd.ftpusers文件,记录在这个文件中的用户将无法login!!

  #服务器以standalong模式运行,这样可以进行下面的控制

  listen=YES

  #匿名用户的传输比率(b/s)

  anon_max_rate=51200

  #本地用户的传输比率(b/s)

  local_max_rate=512000

  #可接受的最大client数目

  max_clients=100

  #每个ip的最大client数目

  max_per_ip=5

  connect_from_port_20=YES

  tcp_wrappers=YES

  pam_service_name=vsftpd

  ##############################################################################

  下面是我的/etc/vsftpd.user_list

  ##############################################################################

  ftpuser

  anonymous

  ##############################################################################

  /etc/vsftpd.ftpusers可以使用系统自带的文件

  /etc/vsftpd.chroot_list内容为空

  接着建立系统用户ftpuser,将他加入ftp组并将/etc/passwd中他的记录的最后一个字段改成/sbin/nologin(禁止本地登录).

  设置/var/ftp的所有者和所有组为root,权限为755

  设置/var/ftp/pub的所有者为root,所有组为ftp,权限为775

  至此vsftpd的基本配置就完成了.这里我们接受匿名用户anonymous和本地用户ftpuser的请求.anonymous只能下载, ftpuser可以下载和上传.他们登录后均在/var/ftp目录下且无法离开这个目录(被chroot了).ftpuser可以在 /var/ftp/pub目录中建立目录和上传文件,上传文件的权限为755(设置了local_umask=022).匿名用户的传输比率为 50kb/s,ftpuser的传输比率为500kb/s.可联接的最多客户数为100,每ip可联接的最多客户数为5.

  如果需要使本地用户ftpput可以login,只需要将他加入/etc/vsftpd.user_list,要使他可以上传,只需将他加入ftp组.

  接着我们可以在/var/ftp下的各个目录(包括/var/ftp)下建立.message文件,这样用户进入这个目录时vsftpd将显示. message的内容,你可以在这里面写上欢迎信息或者注意事项等等.另外可以编辑/etc/vsftpd/banner,建立login时的欢迎信息, 让你的ftp更加个性化.

  下面我们使用quota为ftpuser加入磁盘限额,避免恶意用户用垃圾数据塞满你的硬盘.

  假设/var/ftp在根分区/(/dev/hda5)中,则将/etc/fstab中根分区的记录的第4个字段改成defaults,usrquota,这样这条记录看起来类似这样:

  LABEL=/ / ext3 defaults,usrquota 1 1

  接着重启系统后输入下列命令:

  quotacheck -acu #检查启用了配额的文件系统,并为每个文件系统建立一个当前磁盘用来的表

  quotacheck -avu #生成每个启用了配额的文件系统的当前磁盘用量表

  edquota ftpuser #为用户ftpuser设置磁盘配额

  这时系统会在默认文本编辑器(vi)中打开配额文件,显示类似这样:

  1.   Disk quotas for user ftpuser (uid 501):  
  2.  
  3.   Filesystem blocks soft hard inodes soft hard  
  4.  
  5.   /dev/hda5 0 0 0 0 0 0  
  6.  

  第一列是启用了配额的文件系统的名称。第二列显示了用户当前使用的块数。随后的两列用来设置用户在该文件系统上的软硬块限度。inodes 列显示了用户当前使用的i节点数量。最后两列用来设置用户在该文件系统上的软硬i节点限度.硬限是用户或组群可以使用的磁盘空间的绝对最大值。达到了该限度后,磁盘空间就不能再被用户或组群使用了。软限定义可被使用的最大磁盘空间量。和硬限不同的是,软限可以在一段时期内被超过。这段时期被称为过渡期(grace period)。过渡期可以用秒钟、分钟、小时、天数、周数、或月数表示。如果以上值中的任何一个被设置为 0,那个限度就不会被设置.按你的需要修改后存盘推出.

  要校验用户的配额是否被设置,使用以下命令:

  quota testuser

  接着使用edquota -t来设置过渡期(grace period)

  和另一个 edquota 命令相似,这个命令也会在文本编辑器中打开当前的文件系统配额:

  1.   Grace period before enforcing soft limits for users:  
  2.  
  3.   Time units may be: days, hours, minutes, or seconds  
  4.  
  5.   Filesystem Block grace period Inode grace period  
  6.  
  7.   /dev/hda5 7days 7days  
  8.  

  按你的需要修改后存盘退出。

【编辑推荐】

  1. 安装CentOS vsftpd 设置
  2. 用vsftp部署一个功能强大的ftp服务器
  3. Centos下ProFTPD配置FTP服务器
  4. vsFTPD设置(菜鸟篇)
  5. vsftpd.conf的设定值
  6. vsftpd常见问题的解决
责任编辑:zhaolei 来源: 网络转载
相关推荐

2011-03-04 10:03:44

VSFTPD虚拟服务器

2010-08-25 16:28:04

2012-08-24 15:13:34

2011-02-22 11:23:48

vsFTPDLinux服务器

2011-02-22 11:23:48

vsFTPDLinux服务器

2011-02-25 16:14:09

proftpdftp

2010-02-23 14:35:48

CentOS vsft

2021-11-01 07:15:36

服务器FTPFileZilla

2011-03-04 10:00:56

Vsftpd配置服务器

2011-02-25 15:38:58

2009-03-04 06:18:00

FTP服务器双向传输FTP服务器搭建

2011-09-09 10:03:39

Ubuntu 11.0FTP服务器

2011-03-04 17:38:24

2021-01-20 09:02:00

服务器虚拟机Windows

2011-03-02 10:51:09

vsftpd

2011-02-23 09:01:37

2009-04-23 18:17:31

LinuxFTP服务器

2011-10-21 07:55:28

2010-02-06 10:16:17

Linux YUM

2011-03-07 17:04:02

ProftpdFTP
点赞
收藏

51CTO技术栈公众号