环境:CentOS6.8

1[root@system-4 ~]#  vim  vusers.list

   tom

   123456

   harry

  123456

2、将vusers.list 转为vusers.db

 [root@system-4 ~]#  db_load -T -t  hash  -f  vusers.list  vusers.db

3chmod  600 vusers.db

4、新建一个虚拟用户

[root@system-4 ~]# useradd -d /var/ftproot/ -s /sbin/nologin  virtual

5[root@system-4 ~]# chown  virtual.virtual  /var/ftproot/

6、修改pam认证

 [root@system-4 pam.d]# vim  /etc/pam.d/vsftpd.vu

auth  required  pam_userdb.so  db=/root/vusers

account  required  pam_userdb.so  db=/root/vusers

7、编辑vsftpd主配置文件支持pam

pam_service_name=vsftpd.vu

guest_enable=YES

guest_username=virtual

开启写权限

anon_mkdir_write_enable=YES

关闭匿名用户访问

anonymous_enable=NO

8、设置selinux

setsebool  -P  allow_ftpd_full_access  1

9、防火墙开放20 21端口

iptables  -I  INPUT  -p  tcp  – -dport 21  -j  ACCEPT

iptables  -I  INPUT  -p  tcp  –dport  20  -j  ACCEPT

10、为每个虚拟用户配置权限,在vsftpd主配置文件中添加:

user_config_dir=/etc/vsftpd/users_dir

新建一个目录用于存放每个虚拟用户的权限文件

[root@system-4 ~]#  mkdir  /etc/vsftpd/users_dir

[root@system-4 ~]# cd  /etc/vsftpd/users_dir

[root@system-4 users_dir]#  touch  tom

设置tom的权限,vim  tom

anon_mkdir_write_enable=YES

anon_upload_enable=YES

anon_other_write_enable=YES

创建空白的用户harry文件

[root@system-4 users_dir]#  touch  harry

9、重启vsftpd服务

10、加入开机启动:chkconfig  vsftpd  on

mariadb数据库vsftp虚拟用户认证

一、安装相关包:

yum  install  pam_mysql  mysql_devel  mariadb-server  -y

二、数据库创建

1、新建一个vsftpd数据库

MariaDB [(none)]> CREATE  DATABASE  vsftpd;

2、数据库用户授权

MariaDB [(none)]> grant select on vsftpd.* to vsftpd@localhost identified  by  '123456';

MariaDB [(none)]> grant select on vsftpd.* to vsftpd@127.0.0.1 identified  by  '123456';

刷新授权:MariaDB [(none)]>  flush  privileges;

3、创建用户表

MariaDB [(none)]> use vsftpd;

MariaDB [vsftpd]> create  table  users (

    -> id  int  AUTO_INCREMENT  NOT  NULL,

    -> name  char(20)  binary  NOT  NULL,

    -> password  char(48)  binary  NOT  NULL,

    -> primary  key(id)

    -> );

4、添加测试用户

MariaDB [vsftpd]> insert into users(name,password) values('tom',password('123456'));

MariaDB [vsftpd]> insert into users(name,password) values('harry',password('123456'));

blob.png

三、vsftpd配置

1、建立pam认证文件

[root@system-4 ~]#  vim  /etc/pam.d/vsftpd.mysql

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

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

 blob.png

2、修改vsftpd主配置文件

pam_service_name=vsftpd.mysql

guest_enable=YES

guest_username=virtual

allow_writeable_chroot=YES

blob.png

 

3、为每个虚拟用户配置权限,在vsftpd主配置文件中添加:

user_config_dir=/etc/vsftpd/users_dir

新建一个目录用于存放每个虚拟用户的权限文件

[root@system-4 ~]#  mkdir  /etc/vsftpd/users_dir

[root@system-4 ~]# cd  /etc/vsftpd/users_dir

[root@system-4 users_dir]#  touch  tom

设置tom的权限,vim  tom

anon_mkdir_write_enable=YES

anon_upload_enable=YES

anon_other_write_enable=YES

创建空白的用户harry文件

[root@system-4 users_dir]#  touch  harry

4、重启vsftpd服务

 

其他:编译安装

[root@localhost]#wget http://www.huzs.net/soft/vsftpd/pam_mysql-0.7RC1.tar.gz

#tar xvf pam_mysql-0.7RC1.tar.gz

 [root@localhost]#cd pam_mysql-0.7RC1

 [root@localhost]# ./configure –with-openssl –with-pam-mods-dir=/lib64/security/

 [root@localhost]# make && make install

分类: Linux服务架构