一、vsftpd基本使用

VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP,从此名称可以看出来,编制者的初衷是代码的安全。安全性是编写VSFTP的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。
在速度方面:使用ASCII代码的模式下载数据时,VSFTP的速度是Wu-FTP的两倍,如果Linux主机使用2.4.*的内核,在千兆以太网上的下载速度可达86MB/S。
在稳定方面:VSFTP就更加的出色,VSFTP在单机(非集群)上支持4000个以上的并发用户同时连接,根据RedHat的Ftp服务器(ftp.redhat.com)的数据,VSFTP服务器可以支持15000个并发用户

 
 1、查看是否安装vsftp
 rpm -qa | grep vsftpd

如果出现vsftpd-2.2.2-14.el6.x86_64,说明已经安装 vsftp

 安装vsftp
 yum -y install vsftpd
 2、测试是否安装成功
 [root@localhost ~]#service vsftpd start
 为 vsftpd 启动 vsftpd:[确定]
 
 3、配置vsftpd
 # whereis vsftpd
vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd..gz
 yum安装的主要目录为上述的3个目录,其中配置文件vsftpd.conf在/etc/vsftpd中,下面看下怎么配置vsftpd.conf
 
 # 默认配置文件: /etc/vsftpd.conf
 #     下面是配置的选项及说明
 ######### 核心设置 ###########
  
 # 允许本地用户登录
 local_enable=YES
  
 # 本地用户的写权限
 write_enable=YES
  
 # 使用FTP的本地文件权限,默认为077
 # 一般设置为022
 local_umask=022
  
 # 切换目录时
 # 是否显示目录下.message的内容
 dirmessage_enable=YES
 dirlist_enable = NO
 #验证方式
 #pam_service_name=vsftpd
  
 # 启用FTP数据端口的数据连接
 connect_from_port_20=YES
  
 # 以独立的FTP服务运行
 listen=yes
  
 # 修改连接端口
 #listen_port=2121
  
 ######### 匿名登录设置 ###########
  
 # 允许匿名登录
 anonymous_enable=NO
  
 # 如果允许匿名登录
 # 是否开启匿名上传权限
 #anon_upload_enable=YES
  
 # 如果允许匿名登录
 # 是否允许匿名建立文件夹并在文件夹内上传文件
 #anon_mkdir_write_enable=YES
  
 # 如果允许匿名登录
 # 匿名帐号可以有删除的权限
 #anon_other_write_enable=yes
  
 # 如果允许匿名登录
 # 匿名的下载权限
 # 匿名为Other,可设置目录/文件属性控制
 #anon_world_readable_only=no
  
 # 如果允许匿名登录
 # 限制匿名用户传输速率,单位bite
 #anon_max_rate=30000
  
 ######### 用户限制设置 ###########
  
 #### 限制登录
  
 # 用userlist来限制用户访问
 #userlist_enable=yes
  
 # 名单中的人不允许访问
 #userlist_deny=no
  
 # 限制名单文件放置的路径
 #userlist_file=/etc/vsftpd/userlist
  
 #### 限制目录
  
 # 限制所有用户都在家目录
 #chroot_local_user=yes
  
 # 调用限制在家目录的用户名单
 chroot_list_enable=YES
  
 # 限制在家目录的用户名单所在路径
 chroot_list_file=/etc/vsftpd/chroot_list
  
 ######### 日志设置 ###########
  
 # 日志文件路径设置
 xferlog_file=/var/log/vsftpd.log
  
 # 激活上传/下载的日志
 xferlog_enable=YES
  
 # 使用标准的日志格式
 #xferlog_std_format=YES
  
 ######### 安全设置 ###########
  
 # 用户空闲超时,单位秒
 #idle_session_timeout=600
  
 # 数据连接空闲超时,单位秒
 #data_connection_timeout=120
  
 # 将客户端空闲1分钟后断开
 #accept_timeout=60
  
 # 中断1分钟后重新连接
 #connect_timeout=60
  
 # 本地用户传输速率,单位bite
 #local_max_rate=50000
  
 # FTP的最大连接数
 #max_clients=200
  
 # 每IP的最大连接数
 #max_per_ip=5
  
 ######### 被动模式设置 ###########
  
 # 是否开户被动模式
 pasv_enable=yes
  
 # 被动模式最小端口
 pasv_min_port=5000
  
 # 被动模式最大端口
 pasv_max_port=6000
  
 ######### 其他设置 ###########
 # 欢迎信息
 ftpd_banner=Welcome to My Ftp Server!
 
#设定支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户。注意,一旦做出更改宿主用户后,必须注意一起与该服务相关的读写文件的读写赋权问题。比如日志文件就必须给与该用户写入权限等。
nopriv_user=vsftpd
 
#设定支持异步传输功能。
async_abor_enable=YES
 
#设定支持ASCII模式的上传和下载功能。
ascii_upload_enable=YES
ascii_download_enable=YES
 
#设定支援 TCP Wrappers 的防火墙机制
tcp_wrappers=YES
 
 
 4 、添加用户(注意,该处添加nologin类型用户ftpuser):
 useradd -d /home/ftp -s /sbin/nologin ftpuser
 如果已启动vsftpd,重新启动
/etc/init.d/vsftpd restart
 
 5 、到此,整个小巧的ftp服务器搭建成功。可以使用FileZilla FTP或FlashFXP等客户端软件登陆ftp server了。

二、配置vsftpd支持虚拟用户

1、安装vsftpd支持虚拟用户需要的包

yum -y install db4-utils db4 #安装是U.C Berkeley的小型数据库服务器及其工具
yum -y install pam pam-* #安装pam认证模块

2、建立虚拟用户

#vim /home/loginuser.txt
user1
password1
user2
password2
user3
password4

格式为第一行为用户名名,第二行为密码,然后类推。

建立db数据库,同时只有root用户才能读写
# db_load -T -t hash -f /home/loginuser.txt /etc/vsftpd/vsftpd_login.db    #把文本转成Berkeley数据库格式
# chmod /etc/vsftpd/vsftpd_login.db #设定权限
配置pam文件
# vim /etc/pam.d/vsftpd.vu (64位系统)
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login # vim /etc/pam.d/vsftpd.vu (32位系统)
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
建立虚拟用户对应的系统真实用户
useradd ftpvirtual -s /sbin/nologin

3、修改vsftpd配置文件

# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
#write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_port=
userlist_enable=YES
chroot_local_user=YES
tcp_wrappers=YES
pasv_min_port=
pasv_max_port=
pasv_enable=yes
max_clients=
max_per_ip=
idle_session_timeout=600 # 启用虚拟用户增加配置选项说明
guest_enable=YES #设定启用虚拟用户功能
guest_username=ftpvirtual #指定虚拟用户的宿主用户(即是linux上的本地用户)
pam_service_name=vsftpd.vu #设定PAM服务下Vsftpd的验证配置文件名。因此,PAM验证将参考/etc/pam.d/下的vsftpd.vu文件配置。
user_config_dir=/etc/vsftpd/vsftpd_user_conf #设定虚拟用户个人Vsftp的配置文件存放路径。也就是说,这个被指定的目录里,将存放每个Vsftp虚拟用户个性的配置文件。(一个需要注意的地方就是这些配置文件名必须和虚拟用户名相同)
 
4、创建日志文件
如果修改了vsftp服务的宿主用户,则需要手动创建日志文件并给予权限
# touch /var/log/vsftpd.log
# chown www.www /var/log/vsftpd.log

5、建立虚拟用户对应家目录

#mkdir /home/ftpvirtual/user1
#mkdir /home/ftpvirtual/user2
#mkdir /home/ftpvirtual/user3 

6、建立虚拟用户配置文件

# mkdir /etc/vsftpd/vsftpd_user_conf 创建虚拟用户配置文件存放目录

配置不同权限的虚拟用户设置

所有权限

# vim /etc/vsftpd/vsftpd_user_conf/user1

#虚拟用户配置,CentOS下yes或者no必须为小写字母 

write_enable=yes
anonymous_enable=no
anon_world_readable_only=no
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
local_umask=
download_enable=yes
local_root=/home/ftpvirtual/user1

上传权限

# vim /etc/vsftpd/vsftpd_user_conf/user2
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=
download_enable=NO
local_root=/home/ftpvirtual/user2

下载权限

# vim /etc/vsftpd/vsftpd_user_conf/user3

write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
local_umask=
download_enable=yes
local_root=/data/user3

7、重启服务即可生效

# service vsftpd restart

注:如果你喜欢对配置文件有详细的了解,欢迎查看另一文章http://www.cnblogs.com/cto6608/p/4816267.html

vsftpd服务详解的更多相关文章

  1. vsftpd配置文件详解 ---配置解说

    vsftpd配置文件详解     1.默认配置: 1>允许匿名用户和本地用户登陆.      anonymous_enable=YES      local_enable=YES 2>匿名 ...

  2. vsftpd配置文件详解(转)

      vsftpd配置文件详解     1.默认配置: 1>允许匿名用户和本地用户登陆.      anonymous_enable=YES      local_enable=YES 2> ...

  3. winxp计算机管理中服务详解

    winxp计算机管理中服务详解01 http://blog.sina.com.cn/s/blog_60f923b50100efy9.html http://blog.sina.com.cn/s/blo ...

  4. Android中Service(服务)详解

    http://blog.csdn.net/ryantang03/article/details/7770939 Android中Service(服务)详解 标签: serviceandroidappl ...

  5. WCF中队列服务详解

    WCF中队列服务详解 一.引言 在前面的WCF服务中,它都要求服务与客户端两端都必须启动并且运行,从而实现彼此间的交互.然而,还有相当多的情况希望一个面向服务的应用中拥有离线交互的能力.WCF通过服务 ...

  6. 【转】SSH服务详解

    [转]SSH服务详解 第1章 SSH服务 1.1 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Gro ...

  7. (转)SSH服务详解

    SSH服务详解 原文:http://www.cnblogs.com/clsn/p/7711494.html 第1章 SSH服务1.1 SSH服务协议说明SSH 是 Secure Shell Proto ...

  8. HTTPD之二————HTTPD服务详解————httpd的配置文件常见设置

    HTTPD之二----HTTPD服务详解----httpd的配置文件常见设置 HTTP服务器应用 http服务器程序 httpd apache nginx lighttpd 应用程序服务器 IIS,a ...

  9. angular-ngSanitize模块-$sanitize服务详解

    本篇主要讲解angular中的$sanitize这个服务.此服务依赖于ngSanitize模块. 要学习这个服务,先要了解另一个指令: ng-bing-html. 顾名思义,ng-bind-html和 ...

随机推荐

  1. 从java程序员到CTO的成长路线图

    很多新人不知道从事java开发,具体的发展路径是怎么样的,甚至很多人都不能区分程序猿和攻城师的区别.包括不少小白,从事java开发都半年,甚至1年了,对职业发展还没有清晰的认证.这非常不利于自己的发展 ...

  2. Eclipse的下载、安装和WordCount的初步使用(本地模式和集群模式)

    包括:    Eclipse的下载 Eclipse的安装 Eclipse的使用 本地模式或集群模式 Scala IDE for Eclipse的下载.安装和WordCount的初步使用(本地模式和集群 ...

  3. (qsf文件 、 tcl文件 和 csv(txt)文件的区别) FPGA管脚分配文件保存、导入导出方法

    FPGA管脚分配文件保存方法 使用别人的工程时,有时找不到他的管脚文件,但可以把他已经绑定好的管脚保存下来,输出到文件里. 方法一: 查看引脚绑定情况,quartus -> assignment ...

  4. PAT 1075. PAT Judge (25)

    题目地址:http://pat.zju.edu.cn/contests/pat-a-practise/1075 此题主要考察细节的处理,和对于题目要求的正确理解,另外就是相同的总分相同的排名的处理一定 ...

  5. HDU 1847 Good Luck in CET-4 Everybody! (博弈论sg)

    Good Luck in CET-4 Everybody! Problem Description 大学英语四级考试就要来临了,你是不是在紧张的复习?或许紧张得连短学期的ACM都没工夫练习了.反正我知 ...

  6. 分页存储过程--From:桌面备份 -> sql2005新功能.docx

    二.以下示例将返回行号为 50 到 60(含)的行,并以 OrderDate 排序. USE AdventureWorks; GO WITH OrderedOrders AS (SELECT Sale ...

  7. ubuntu14.04 64bit 安装 && 破解quartus13.0 记录

    安装文件:Quartus-13.0.0.156-linux.iso             Quartus-13.0.0.156-devices-1.iso 1.挂载:sudo mount -o lo ...

  8. [Ember] Creating Your First Ember.js Project with Ember-CLI

    In this lesson, we'll setup Ember-CLI and use it to create and run our first Ember.js project. Insta ...

  9. java08 Set

    Set: 无序不可重复,重复则覆盖,判断是不是重复也是通过equals方法判断的.HashSet和TreeSet,HashSet底层是HashMap. public static void main( ...

  10. cocos2d-x 2.1.4学习笔记01:windows平台搭建cocos2d-x开发环境

    cocos2d-x的大致开发流程是,首先使用win32版进行代码编写并完成游戏,然后将代码迁移到对应的开发环境上进行交叉编译完成游戏打包,如iphone上是mac+xcode,android是ecli ...