一、安装vsftpd
# useradd vsftpdguest
//添加vsftpdguest用户,作为VSFTPD的guest
# wget ftp://195.220.108.108/linux/fedora/development/rawhide/x86_64/os/Packages/vsftpd-2.2.2-7.fc14.x86_64.rpm
# rpm –ivh vsftpd-2.2.2-7.fc14.x86_64.rpm
//安装vsftpd-2.2.2-7.fc14.x86_64.rpm
# rm /etc/vsftpd/vsftpd.conf
//删除vsftpd默认的vsftpd.conf
# vi /etc/vsftpd/vsftpd.conf
//新建并编辑vsftpd.conf文件,加入如下配置
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
chroot_local_user=YES
guest_enable=YES
guest_username=vsftpdguest
listen=YES
listen_port=21
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
anon_world_readable_only=NO
virtual_use_local_privs=YES
# user_config_dir=/etc/vsftpd/vsftpd_user_conf
# service vsftpd start //重启vsftpd
二、配置mysql数据库
# rpm -ivh mysql-3.23.58-1.i386.rpm
# rpm -ivh mysql-server-3.23.58-1.i386.rpm
# rpm -ivh mysql-devel-3.23.58-1.i386.rpm
//以上是安装mysql-server的rpm包,mysql-devel包是必须安装的
# service mysqld start //启动mysql
# mysql // mysql命令进入
mysql>create database vsftpdvu; //新建数据库“vsftpdvu”
mysql>use vsftpdvu; //打开数据库“vsftpdvu”
mysql>create table users(name char(20) binary,passwd char(20) binary);
//创建“users”表
mysql>insert into users (name,passwd) values (\\'test1\\',\\'12345\\');
//新建FTP用户:test1密码:12345
mysql>insert into users (name,passwd) values (\\'test2\\',\\'54321\\');
//新建FTP用户:test2密码:54321
mysql>grant select on vsftpdvu.users to vsftpdguest@localhost identified by \\'789987\\';
//新建一个由本地连接的mysql用户“vsftpdguest”密码为“789987”
mysql>flush privileges; //刷新权限设置
mysql>select * from users; //查看users表的数据
+-------+--------+
| name | passwd |
+-------+--------+
| test1 | 12345 |
| test2 | 54321 |
+-------+--------+
2 rows in set (0.00 sec)
mysql>quit
二、设置MySQL的PAM验证
# wget http://www.jjww.com.cn/upload/software/pam_mysql-0.5.tar.gz # tar zxvf pam_mysql-0.5.tar.gz
# cd pam_mysql
# make
# cp pam_mysql.so /lib/security
# vi /etc/pam.d/ftp
//新建并编辑ftp文件,加入pam_mysql的认证信息
auth required /lib/security/pam_mysql.so user=vsftpdguest passwd=789987 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=0
account required /lib/security/pam_mysql.so user=vsftpdguest passwd=789987 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=0
//这里要注意一下,上面其实是二行,不要搞错
注意:
crypt= n
crypt=0:明文密码
crypt=1:使用crpyt()函数(对应SQL数据里的encrypt(),encrypt()随机产生salt)
crypt=2:使用MYSQL中的password()函数加密
crypt=3:表示使用md5的散列方式
# service mysqld restart //重启mysql
三、测试vsftpd
略过... ...
OK!这里已全部成,vsftpd+mysql就是这样配置的!