一、vsftpd简介

    

  vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。 

  FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全


 二、安装vsftpd


  安装vsftpdf服务,可通过yum命令安装,我的CentOS 7已安装,版本如下

   wKioL1cexXvSzO0jAAAGuAi-5WI875.png


 三、数据库安装和配置


   基于mysql服务:


# yum -y groupinstall "Development Tools" "Server Platform Development"


# yum -y install pam-devel  mariadb-devel openssl-devel


  

 下载pam-mysql驱动,并编译安装。

     (安装后模块路径:/usr/lib64/security/pam_mysql.so

  # wget pam-mysql.sourceforge.net/pam-mysql-0.7RC1.tar.gz

  # tar xf pam-mysql-0.7RC1.tar.gz

  # ./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security  

  # make && make install


  

   mariadb配置:

  

 # systemctl start mariadb.service

 # mysql


 MariaDB [(none)]> CREATE DATABASE ftpdf; 

 MariaDB [(none)]> use ftpdf

wKioL1ce1xqA0cIoAABcQ_Z-S2k883.png


 


      修改pam配置文件,在/etc/pam下配置

   

 

# vim /etc/pam.d/vsftpd.mysql


内容为:


auth required /usr/lib64/security/pam_mysql.so user=ftpdf passwd=mageedu host=localhost db=ftpdf table=users usercolumn=name  passwdcolumn=password crypt=2

account required /usr/lib64/security/pam_mysql.so user=ftpdf passwd=mageedu host=localhost db=ftpdf table=users usercolumn=name  passwdcolumn=password crypt=2


    

         为虚拟用户创建映射用户 

    

      # cd /etc/pam.d

      # useradd -s /sbin/nologin -d /ftproot vuser 

      # ls -ld  #查看权限,确保用户的家目录可以让其他用户能读能执行

      # chmod go-rx /ftproot

    


      配置mysql

         修改配置文件: /etc/vsftpd/vsftpd.conf


 1、修改pam认证模块名字为vsftpd.mysql


    wKioL1ce3rzS1WweAAAJD_KvE-E687.png


 

 2、确保下面三项为YES


    wKioL1ce3zfjdEn_AAAitShHnYE732.png


 3、添加配置

    guest_enable=YES #是否允许来宾访问

    guest_username=vuser


    

  注:anon_upload_enable=YES # 用户可上传文件



   接下来就可以启动服务,进行测试

        

    wKiom1ce7DyxQFVDAAAupA4gBQg300.png




 

 附加:单独用户的权限控制方案(以tom和jerry为例)

   

   1、修改主配置文件

     

                # vim /etc/vsftpd/vsftpd.conf


               anon_upload_enable=YES #注释掉这一行,不允许用户上传。



        2、创建配置目录,让用户使用不同的配置文件,实现每个虚拟用户的单配置文件使用

    

                  # cd /etc/vsftpd/

                  # mkdir vusers.conf.d

                  # cd vusers.conf.d

                  # vim tom

                  anon_upload_enable=YES #内容为tom用户允许上传

     

                  # cp tom jerry

                  # vim jerry

                  anon_upload_enable=NO #内容为jerry用户不允许上传


   

    3、编辑主配置文件,告诉其用创建的配置目录做加载配置

      

                # vim /etc/vsftpd/vsftpd.conf

              

                 user_config_dir=/etc/vsftpd/vuser.conf.d # 主配置文件下面添加一行


       

            4、重启服务进行验证,tom可以上传文件,jerry不能。

           

             # systemctl restart vsftpd.service