通过MySQL实现虚拟用户访问vsftpd服务器
通过MySQL实现虚拟用户访问vsftpd服务器
配置
# 安装本次实验所用到的所有软件包
yum -y install vsftpd mysql-server mysql-devel pam-devel gcc-c++ make wget
# 启动mysqld服务
service mysqld start
# 初始化数据库管理员密码
mysqladmin -uroot password RedHat
# 登录数据库
mysql -uroot -predhat
# 创建vftpuser数据库
create database vftpuser;
# 进入vftpuser数据库
use vftpuser;
# 创建表用于存储账号和密码
create table users(name char(41),pwd char(41));
# 创建测试用户
insert into users(name,pwd) values('test',password('test'));
# 安全起见,创建一个专门用于查询users表的用户
grant select on vftpuser.users to vsqluser@localhost identified by 'redhat';
# 刷新权限表
flush privileges;
# 离开数据库
quit;
# 下载基于MySQL认证的PAM模块并安装
wget http://ncu.dl.sourceforge.net/project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz
tar xzf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1
./configure
make && make install
# 修改/etc/pam.d/vsftpd文件,注释原来的内容,添加以下内容
auth required /lib/security/pam_mysql.so user=vsqluser passwd=redhat host=localhost db=vftpuser table=users usercolumn=name passwdcolumn=pwd crypt=2
account required /lib/security/pam_mysql.so user=vsqluser passwd=redhat host=localhost db=vftpuser table=users usercolumn=name passwdcolumn=pwd crypt=2
# 创建本地用户用于映射虚拟用户
useradd -d /var/ftp/vuserdir -s /sbin/nologin vuser
# 用以下内容替换/etc/vsftpd/vsftpd.conf文件原来的内容
listen=YES
pam_service_name=vsftpd
guest_enable=YES
guest_username=vuser
anonymous_enable=NO
anon_world_readable_only=NO
local_enable=YES
# 启动vsftpd服务
service vsftpd start