1、安装vsftpd并设置开机自动启动

yum -y install vsftpd

chkconfig vsftpd on

 
2、安装mysql数据库

yum -y install mysql-devel mysql-server

 
3、启动mysql服务并设置开机自动启动

service mysqld start

chkconfig mysqld on
 
4、设置mysql的管理员密码

mysqladmin  -u root  password  123456

 
5、建立用于虚拟用户的数据库、表,并创建虚拟用户zzpvfast
mysql -u root -p123456

mysql>create database vftp ;

mysql>use vftp ;

mysql>create table userinfo(name char(16),pwd char(16)) ;
mysql>insert into userinfo(name,pwd) values('zzp','123456') ;
mysql>insert into userinfo(name,pwd) values('vfast','123456') ;
mysql> grant select on vftp.userinfo to ftpuser@localhost identified by '123456' ; //基于安全考虑创建一个专门用于读取数据库中虚拟用户信息的用户(ftpuser

mysql> flush privileges ;

 
6 测试 ftpuser 是否可以正常查询数据库信息

mysql -u ftpuser -p123456

mysql>use vftp ;

mysql>select * from userinfo ;

 
7、创建本地映射用户,并修改其家目录的权限

useradd -d /var/ftp/guest -s /sbin/nologin guest

注: -d 指定家目录的位置

     -s 指定用户登录的shell,如果为用户分配的shell/sbin/nologin,则该用户是不能登录到系统的。

chmod o+rw /var/ftp/guest

 
8、编辑/etc/vsftpd/vsftpd.conf,添加以下两句,用于启用虚拟账号,并禁用匿名账号

guest_enable=yes

guest_username=guest

anonymous_enable=no

 
9、安装yum -y install pam-devel
 
[root@router ]tar xvzf pam_mysql-0.7RC1.tar.gz -C /usr/src

[root@router ]cd /usr/src/pam_mysql-0.7RC1/

[root@…… ]./configure

[root@…… ]make
[root@…… ]makinstall
ls /usr/lib/security
安装完成后查看/usr/lib/security中是否存在pam_mysql.la  pam_mysql.so这两个文件,若果有则表示安装成功!
 
11. 编辑 pam 认证文件 /etc/pam.d/vsftpd ,将原有的内容全部注释掉并添加以下两行内容以使用 mysql 认证

auth       required    /usr/lib/security/pam_mysql.so  user=ftpuser passwd=xiaofeixia host=localhost db=vftp table=userinfo usercolumn=name passwdcolumn=pwd crypt=0

account  required  /usr/lib/security/pam_mysql.so  user=ftpuser passwd=xiaofeixia host=localhost db=vftp table=userinfo usercolumn=name passwdcolumn=pwd crypt=0

 
12、重新启动ftp服务器

service vsftpd restart

 
13、客户端测试
 
备注:该实验应关闭selinux、关闭系统防火墙;否则会登陆验证失败!