一、基于文件验证虚拟用户

  ①创建虚拟用户数据库文件。

  命令:vim /etc/vsftpd/viruser

  327cf87fecda172d1fbabe943fefd138.png

  把文件转化为数据库格式。

  命令:db_load -T -t hash -f viruser  viruser.db

  bbb8133dbef2dcc619778ffdf6cfaf33.png

  ②创建系统用户和访问FTP目录。

  a6cb4e294ab6f8bd84ffaa0f9b3fb5ef.png

  ③创建pam配置文件。

  命令:vim /etc/vsftpd/viruser.db

  ed8b4ecb9c8307b5f6bfc97c5140857d.png

  ④指定pam配置文件

  d7dfa43a0cc8051e736889ab4f5a91e9.png

  ⑤关闭防火墙和selinux

  bb5d913b75156e982e4f6612870486a8.png

  ⑥给虚拟用户设置各自的权限。

  创建配置文件存放的目录

  命令:mkdir /etc/vsftpd/viruser.d/

  修改ftp配置文件

  命令:vim /etc/vsftpd/vsftpd.conf

      user_config_dir=/etc/vsftpd/viruser.d/

  进入虚拟用户配置目录下,创建各自虚拟用户的权限。

  命令:cd /etc/vsftpd/viruser.d/

  ftp1虚拟用户可读可写可上传。

  命令:vim ftp1

  anon_upload_enable=YES

  anon_mkdir_write_enable=YES

  anon_other_write_enable=YES

  85a69c1d76dcdb5011659c2dfbdca5f0.png

  ftp2只可读。

  命令:anon_upload_enable=NO

  anon_mkdir_write_enable=NO

  anon_other_write_enable=NO

  e74465c92d777b978a282f851edf061e.png

  二、基于mysql实现验证虚拟账户。  【就不贴照片了】

  A机器:mysql服务器

  B机器:ftp服务器

  A机器:

  ①A安装数据库,运行安全脚本,创建数据库用户(存放虚拟账户)。

  yum install mariadb

  mysql_seure_installation 【运行安全脚本】

  create database vsftpd; 【创建数据库】

  use vsftpd 【进入vsftpd数据库里面】

  create table ftpusers(name char(30),passwd char(50));  【在数据库vsftpdb创建表】

  grant all on vsftpd.* to 'ftp'@'host' identified by 'centos';  【创建vsftpd数据库管理员】

  insert into ftpusers values ('ftp1',password('centos')), ('ftp2',password('magedu'));  【对ftpusers表插入用户

  select * from ftpusers; 【查看创建的用户】

  B主机:

  ②安装vsftpd包,编译安装pam_mysql【centos6光盘有】

  yum install mariadb-devel  pam-devel

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

  make && make install

  在FTP服务器上建立pam认证所需文件

  vim /etc/pam.d/vsftpd.mysql 添加如下两行

  auth required pam_mysql.so user=ftpd  【远程数据库用户名】passwd=centos host=远程主机 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=password crypt=2

  account required pam_mysql.so user=vsftpd passwd=magedu host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

  修改ftpd主配置文件

  vim /etc/ftpd/ftpd.conf

  anonymous_enable=YES

  guest_enable=YES

  guest_username=vuser

  pam_service_name=vsftpd.mysql

  user_config_dir=/etc/vsftpd/vusers_config   【配置vsftpd为虚拟用户使用配置文件目录】

  创建账户:在/etc/vsftpd/vusers_config下创建账户(文件)

  创建所需要目录,并为虚拟用户提供配置文件

  mkdir /etc/vsftpd/vusers_config/

  cd /etc/vsftpd/vusers_config/

  创建文件:

  vim ftp1

  anon_upload_enable=yes    【允许ftp1修改文件】

  vim ftp2

  local_root=/app/ftpdir2          【非匿名用户登录所在目录】