vsftpd的全名是“Very secure FTP Daemon”

一、安装vsftpd
安装db4-util用于生成认证文件

yum -y install db4-utils

安装vsftpd

yum -y install vsftpd

Vsftpd的配置文件为:

  1.   /etc/vsftpd/vsftpd.conf, 主配置文件
  2.   /usr/sbin/vsftpd , Vsftpd的主程序
  3.   /etc/pam.d/vsftpd , PAM认证文件(此文件中file=/etc/vsftpd/ftpusers字段,指明 阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户)
  4.   /var/ftp,匿名用户主目录;本地用户主目录为:/home/用户主目录,即登录后进入自己家目录
  5.   /var/ftp/pub,匿名用户的下载目录,此目录需赋权根chmod 1777 pub(1为特殊权限,使上载后无法删除)

vsftpd的主配置文件/etc/vsftpd/vsftpd.conf说明:

  vsftpd的配置文件格式为“参数=设置值”,注意等号两边不能有空格

  与服务器环境相关的配置值:

  1. connect_from_port_20=YES (ftp的数据传输端口)
  2. listen_port=21(vsftpd使用的命令通道端口,这个值仅适合以stand alone的方式来启动,对于super daemon无效)
  3. dirmessage_enable={YES|NO}(当用户进入某个目录时,会显示该目录需要注意的内容,显示文件默认是.message)
  4. message_file=.message(当dirmessage_enable=YES时,可以设置这个项目让vsftpd寻找该文件来显示信息)
  5. listen={YES|NO} (若设置为YES,表示vsftpd是以stand alone的方式来启动,centos默认是YES)
  6. pasv_enable={YES|NO}(支持数据流的被动连接方式,passive mode,最好设置为YES)
  7. use_localtime={YES|NO}(是否使用本地时间,vsftpd默认使用GMT时间)
  8. write_enable={YES|NO}(是否允许用户上传数据)
  9. connect_timeout=60(单位是秒在数据连接的主动模式下,服务器发出的连接信号在60秒内得不到客户端的响应,则不等待强制断线)
  10. accept_timeout=60(当客户端以被动式PASV来进行数据传输时,如果服务器启用passive port并等待客户端超过60秒无反应,那么久强制断线,这个设置与connect_timeout类似,不过一个是管理主动连接,一个是管理被动连接)
  11. data_connection_timeout=300(如果数据连接建立之后300秒内还是没有顺利完成数据传输,那服务器就会主动断开连接)
  12. idle_session_timeout=300(如果用户在300秒内都没有命令操作,则强制脱机,避免占用空间)
  13. max_clients=0(如果是以stand alone方式启动的,那么这个设置项目可以设置同时最多有多少个client可以同时连上vsftpd,0表示不限制)
  14. max_per_ip=5(设置同一IP同一时间可允许多少连接)
  15. pasv_min_port=0、pasv_max_port=0(被动模式的连接端口如果想使用65400到65410这11个port来进行被动式连接的哈pasv_min_port=65400 pasv_max_port=65410,如果是0的话表示随机取用而不限制)
  16. ftpd_banner="一些文字说明"(当用户登录时显示的说明)
  17. banner_file=/path/file(指定某个纯文本文件作为用户登录vsftpd服务器时所显示的欢迎字眼)

  与实体用户相关的设置值:

  1. guest_enable={YES|NO}(若设置为YES,那么任何实体账号,都会被假设为guest,所以默认是不开放的,访客在vsftpd中,默认会取得ftp这个用户的相关权限,但可以通过guest_username来修改)
  2. guest_name=ftp(在guest_enable为YES时才会生效,指定访客的身份)
  3. local_enable={YES|NO}(这个值设置值为YES时,在/etc/passwd中的账号才能以实体用户的方式登录)
  4. local_max_rate=0(实体用户的传输速度限制,单位为bytes/second,0为不限制)
  5. chroot_local_user={YES|NO}(在设置为YES时,将用户限制在自己的用户主目录之内,为了安全性,这里应该要设定成 YES)
  6. chroot_list_enable={YES|NO}(是否启用 chroot 写入列表的功能?与底下的 chroot_list_flie 有关!这个项目得要开启,否则底下的列表档案会无效。)
  7. chroot_list_file=/etc/vsftpd/chroot_list(如果 chroot_list_enable=YES 那么就可以设定这个项目了!)
  8. userlist_enable={YES|NO}(是否借助vsftpd 的抵挡机制来处理某些不受欢迎的账号,与底下的参数设定有关;)
  9. userlist_deny={YES|NO}(当 userlist_enable=YES 时才会生效,若此设定值为 YES 时,则当使用者账号被列入到某个档案时, 在该档案内的使用者将无法登入 vsftpd 服务器!该档案文件名与下列设定项目有关。)
  10. userlist_file=/etc/vsftpd/user_list(若上面 userlist_deny=YES 时,则这个档案就有用处了!在这个档案内的账号都无法使用 vsftpd )

  匿名者登入的设定值:

  1. anonymous_enable=YES (NO)

    设定为允许 anonymous 登入我们的 vsftpd 主机!预设是 YES ,底下的所有相关设定都需要将这个设定为
    anonymous_enable=YES 之后才会生效!

  2. anon_world_readable_only=YES (NO) 仅允许 anonymous 具有下载可读档案的权限,预设是 YES。
  3. anon_other_write_enable=YES (NO) 是否允许 anonymous
    具有除了写入之外的权限?包括删除与改写服务器上的档案及档名等权限。预设当然是 NO!如果要设定为 YES,那么开放给 anonymous
    写入的目录亦需要调整权限,让 vsftpd 的 PID 拥有者可以写入才行!
  4. anon_mkdir_write_enable=YES (NO) 是否让 anonymous 具有建立目录的权限?默认值是
    NO!如果要设定为 YES, 那么 anony_other_write_enable 必须设定为 YES !
  5. anon_upload_enable=YES (NO) 是否让 anonymous 具有上传数据的功能,默认是 NO,如果要设定为 YES
    ,则 anon_other_write_enable=YES 必须设定。
  6. deny_email_enable=YES (NO) 将某些特殊的 email address 抵挡住,不让那些 anonymous
    登入!如果以 anonymous 登入服务器时,不是会要求输入密码吗?密码不是要你输入你的 email address
    吗?如果你很讨厌某些 email address, 就可以使用这个设定来将他取消登入的权限!需与下个设定项目配合:
  7. banned_email_file=/etc/vsftpd/banned_emails 如果 deny_email_enable=YES
    时,可以利用这个设定项目来规定哪个 email address 不可登入我们的 vsftpd 喔!在上面设定的档案内,一行输入一个email address 即可!
  8. no_anon_password=YES (NO) 当设定为 YES 时,表示 anonymous 将会略过密码检验步骤,而直接进入
    vsftpd 服务器内喔!所以一般预设都是 NO 的!(登入时会检查输入的 emai)
  9. anon_max_rate=0 这个设定值后面接的数值单位为 bytes/秒 ,限制 anonymous 的传输速度,如果是 0
    则不限制(由最大带宽所限制),如果你想让 anonymous 仅有 30 KB/s的速度,可以设定『anon_max_rate=30000』
  10. anon_umask=077 限制 anonymous 上传档案的权限!如果是 077 则 anonymous 传送过来的档案权限会是
    -rw-------

  关于系统安全方面的一些设定值

  1. ascii_download_enable=YES (NO) 如果设定为 YES ,那么 client 就优先 (预设) 使用 ASCII
    格式下载文件。
  2. ascii_upload_enable=YES (NO) 与上一个设定类似的,只是这个设定针对上传而言!预设是 NO
  3. one_process_model=YES (NO) 这个设定项目比较危险一点~当设定为 YES 时,表示每个建立的联机都会拥有一支 process 在负责,可以增加 vsftpd 的效能。不过, 除非你的系统比较安全,而且硬件配备比较高,否则容易耗尽系统资源喔!一般建议设定为 NO 的啦!
  4. tcp_wrappers=YES (NO) 当然我们都习惯支持 TCP Wrappers 的啦!所以设定为 YES 吧!
  5. xferlog_enable=YES (NO) 当设定为 YES 时,使用者上传与下载文件都会被纪录起来。记录的档案与下一个设定项目有关:
  6. xferlog_file=/var/log/xferlog 如果上一个 xferlog_enable=YES
    的话,这里就可以设定了!这个是登录档的档名啦!
  7. xferlog_std_format=YES (NO) 是否设定为 wu ftp 相同的登录档格式?预设为 NO
    ,因为登录档会比较容易读! 不过,如果你有使用 wu ftp 登录文件的分析软件,这里才需要设定为 YES
  8. dual_log_enable=YES, vsftpd_log_file=/var/log/vsftpd.log 除了
    /var/log/xferlog 的 wu-ftp 格式登录档之外,还可以具有 vsftpd 的独特登录档格式喔!如果你的 FTP
    服务器并不是很忙碌, 或许订出两个登录档的撰写 (/var/log/{vsftpd.log,xferlog) 是不错的。
  9. nopriv_user=nobody 我们的 vsftpd 预设以 nobody 作为此一服务执行者的权限。因为 nobody
    的权限相当的低,因此即使被入侵,入侵者仅能取得 nobody 的权限
  10. pam_service_name=vsftpd 这个是 pam 模块的名称,放置在 /etc/pam.d/vsftpd

二、配置虚拟用户的口令文件:

  

[root@localhost vsftpd]# cat /etc/vsftpd/vuser.txt
mike (一行用户名一行密码)
pwd1234 db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db (生成的口令文件)

编辑vsftpd的认证文件

[root@localhost vsftpd]# cat /etc/pam.d/vsftpd
#%PAM-1.0
#session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include password-auth
#account include password-auth
#session required pam_loginuid.so
#session include password-auth
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser

//添加底部两行 注释掉其他行,因为本地用户登录依赖这个文件 local_enable=YES 不能关闭但是本地用户已经不能登录 原因是因为虚拟用户映射在本地用户上

  建立本地映射用户并设置宿主目录权限:

  useradd -d /home/vftproot -s /sbin/nologin vuser   vuser不需要设置密码 只是一个映射用户  用户名必须和下一步配置文件中的一致
chmod 755 /home/vftproot

  示例配置文件:

[root@localhost vsftpd]# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
#不允许匿名用户登录
banner_file=/etc/vsftpd/welcome.txt
#登录用户看到的公告
local_enable=YES
#支持本地端的实体用户登录
local_umask=022
#建立新目录(755)与文件(644)的权限
write_enable=YES
#允许用户上传数据包括文件和目录
dirmessage_enable=YES
#若目录下有.message则会显示该文件的内容
message_file=.message
xferlog_enable=YES
#启动日志记录文件,记录于/var/log/xferlog
xferlog_file=/var/log/xferlog
#日志文件路径
connect_from_port_20=YES
#支持主动式连接
listen=YES
#使用stand alone方式启动vsftpd
pam_service_name=vsftpd
#支持pam模块的管理
userlist_enable=YES
#/etc/vsftpd/user_list文件内的账号登录控制
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
use_localtime=YES
#使用本地时间
listen_port=21
#stand alone 的监听端口
download_enable=YES
max_clients=0
max_per_ip=3
pasv_enable=YES
#支持被动模式
pasv_min_port=24500
#被动模式下数据传输端口号范围
pasv_max_port=24600
accept_timeout=60
connect_timeout=60
idle_session_timeout=600
#600秒之内没有指令就断开连接
data_connection_timeout=500
#传输文件的超时时间
tcp_wrappers=YES
#支持TCP Wrappers的防火墙机制
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
guest_enable=YES
guest_username=vuser
#指定访客的身份
pam_service_name=vsftpd
#支持pam模块的管理
user_config_dir=/etc/vsftpd/vuser_dir
#创建虚拟用户配置文件目录

vsftpd服务安装与虚拟用户配置的更多相关文章

  1. vsftpd安装及虚拟用户配置

    服务器环境:CentOS6.9 Linux 2.6.32-696.10.1.el6.x86_64 安装vsftpd.db4.db4-utils # yum -y install vsftpd db4 ...

  2. Ubuntu14 vsftp 的安装和虚拟用户配置

    一.介绍 FTP 是 File Transfer Protocol (文件传输协议)的缩写 ,在 Unix/Linux 系统中常用的免费 FTP 服务器软件主要是 VSFTP,vsftp的官方地址:h ...

  3. CentOS7安装vsftpd3.0.2、以及虚拟用户配置

    vsftpd(very secure ftp daemon)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,还具有很高的安全性.传输速度,以及支持虚拟用户验证. vsftpd ...

  4. VSFTPD虚拟用户配置

    转载:http://www.cnblogs.com/allenjin/archive/2011/12/03/2274542.html 以下操作验证OK!!!! VSFTPD虚拟用户配置 VSFTP = ...

  5. vsftpd 虚拟用户配置

    vsftpd 虚拟用户的作用是 通过不同的虚拟用户可以有不同的根目录. 从 2.3.5 版本之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能在具有写权限了,如果检查 ...

  6. CentOS7 FTP服务搭建(虚拟用户访问FTP服务)

    概述 最近在搞Oracle在Linux系统下集群,针对Linux系统,笔人也是一片空白.Liunx外部文件的传输,避免不了使用FTP服务,所以现在就整理下,CentOS7环境下,FTP服务的搭建.FT ...

  7. vsftp虚拟用户配置

    找了很久,终于找到像样一点的文章,很详细,参数方面懂英文基本能看懂,一个教程是否有用,关键在于细节.错了一点点就不能配下去了. ------------------------------------ ...

  8. 最简洁粗暴版的虚拟用户配置FTP

    最简洁粗暴版的虚拟用户配置FTP yum安装FTP: yum install vsftpd pam* db4* -y 设置为系统服务:chkconfig –level 35 vsftpd on 2.v ...

  9. FTP服务器虚拟用户配置

    FTP服务配置问题及解决方案 使用被动模式,设置云主机IP为被动模式数据传输地址:在配置文件内添加 pasv_enable=YES pasv_promiscuous=YES pasv_address= ...

随机推荐

  1. vuex初使用(写的当然是最简单的应用啦)

    关于vuex的简图 vuex文档:https://vuex.vuejs.org/zh-cn/installation.html 一:npm安装 npm install vuex --save 在mai ...

  2. C# Dictionary类型转json方法之一

    using Newtonsoft.Json;//引用命名空间 Dictionary<string, string> Content = new Dictionary<string, ...

  3. python进阶03 继承

    python进阶03 继承 一.继承 课堂练习:假设你正在参与一个魔幻类角色游戏的开发,公司需要腻味这个游戏设计两个角色的类: a.剑士 属性:1.角色名:2.角色等级:3.生命值:4.攻击力 行为: ...

  4. 洛谷P2664 树上游戏

    https://www.luogu.org/problemnew/show/P2664 #include<cstdio> #include<algorithm> #includ ...

  5. Git关于Tag操作

    Git关于tag的操作 记录下git关于 tag的操作 列出所有标签 git tag : 列出所有的 git tag -l 'v1.2.4.*' : 最后一位任意匹配 新建标签 git tag -a ...

  6. Cent OS 6.5 下 Node.js安装

    打开官网 http://nodejs.org/ 点击那个绿色的INSTALL 按钮下载安装包,然后解压.   基本的环境我原本已经安装完毕,这是需求的环境,来源安装包中的README.md,需要的自行 ...

  7. Netty(1-2)Discard Client

    一.DiscardClientHandler import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelFuture; import ...

  8. C - AtCoDeerくんと選挙速報 / AtCoDeer and Election Report

    ceil有毒啊..用ceil一直错. 思路就是模拟吧,设当前的答案是ansx和ansy. 如果比例是小于ansx的,那么就要乘以一个倍数k1,使得a * k1 >= ansx的. 所以就用cei ...

  9. Spark Mllib里的向量标签概念、构成(图文详解)

    不多说,直接上干货! Labeled point: 向量标签 向量标签用于对Spark Mllib中机器学习算法的不同值做标记. 例如分类问题中,可以将不同的数据集分成若干份,以整数0.1.2,... ...

  10. Dev控件工具箱安装

    安装目录\Components\Tools,打开命令行 安装DEV工具 $ ToolboxCreator.exe /ini:toolboxcreator.ini 移除DEV工具 $ ToolboxCr ...