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. [LOJ 2039] 「SHOI2015」激光发生器

    [LOJ 2039] 「SHOI2015」激光发生器 链接 链接 题解 分为两个部分 第一个是求直线之间的交点找到第一个触碰到的镜面 第二个是求直线经过镜面反射之后的出射光线 第一个很好做,第二个就是 ...

  2. Linux —— GDB调试程序

    调试实现 在可执行文件中加入源代码的信息,比如可执行文件中第几条机器指令对应源代码的第几行,但并不是把整个源文件嵌入到可执行文件中,所以在调试时必须保证gdb能找到源文件. 生成可执行文件命令: g+ ...

  3. mysql 无法启动 unkown command

    1. https://serverfault.com/questions/490656/mysql-not-starting-error-usr-sbin-mysqld-unknown-option- ...

  4. node.js安装Oracledb指导文档

    https://community.oracle.com/docs/DOC-931127

  5. fleet - 基于Machine Metadata的任务调度

    基于Machine Metadata的任务调度 复杂和特定的要求的应用程序可以针对一个子集的集群调度通过machine metadata.强大的部署拓扑结构,可以实现的基础上的机器的地区,机架位置,磁 ...

  6. DatabaseMetaData类

    DatabaseMetaData类是java.sql包中的类,利用它可以获取我们连接到的数据库的结构.存储等很多信息.如: 1.数据库与用户,数据库标识符以及函数与存储过程.         2.数据 ...

  7. GNUPG

    PGP (Pretty Good Privacy) 是由 Phil Zimmermann 于 1991 开发的一个用于数据加密和数字签名的程序,由于被广泛应用以至于后来形成一个开放的标准 OpenPG ...

  8. There is much opportunity for anyone willing to dedicate himself to his labors.

    There is much opportunity for anyone willing to dedicate himself to his labors.付出努力的人才有机会出人头地.

  9. Web前端体系的脉络结构

    Web前端技术由 html.css 和 javascript 三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言.而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学 ...

  10. linux配置tomcat已service方式启动

    1. 在/etc/init.d目录下新建文件,命名为tomcat2. 对tomcat文件进行编辑,执行 # cd /etc/init.d/ # vi tomcat 将下面代码粘上去 注意:下面代码ja ...