RH EL5 vsftpd 虚拟帐户(mysql)

平台:RH EL5 + VSFTPD + MYSQL

一、安装mysql

mysql-5.1.7-beta-linux-i686-glibc23.tar.gz

# tar zxvf mysql-5.1.7-beta-linux-i686-glibc23.tar.gz

# ln -s mysql-5.1.7-beta-linux-i686-glibc23  /usr/local/mysql

# cd /usr/local/mysql

# scripts/mysql_install_db --user=mysql

# chown -R root .

# chown -R mysql data

# chgrp -R mysql .

# bin/mysqld_safe &

# bin/mysql

mysql >

二、安装 pam_mysql.so

pam_mysql-0.7RC1.tar.gz //下载地址:chinaunix

# tar zxvf  pam_mysql-0.7RC1.tar.gz

# cd  pam_mysql-0.7RC1

# ./configure --with-mysql=/usr/local/mysql

# make clean install

# cp /usr/lib/security/pam_mysql.so  /lib/security/

三、安装 vsftpd

通过rpm安装EL5自带的vsftpd rpm 包就可以。

四、建立虚拟用户

  # useradd -d /home/vftp -s /bin/nologin vftp -m

五、建立认证

  利用mysql建立用户

就是把用户名和密码放在mysql库里,实现起来也相当简单

(1)建立一个库并设置相应权限

# mysql –p

mysql>create database ftpd;

mysql>use ftpd;

mysql>create table user(name char(20) binary,passwd char(20) binary);

mysql>insert into user (name,passwd) values ('mike','123');

mysql>insert into user (name,passwd) values ('tom','123');

mysql>grant select,insert on ftpd.user to vftp@localhost identified by '123';

mysql>flush privileges; 刷新权限设置

mysql>quit

(2)建立PAM认证信息

# vi /etc/pam.d/vftp ,内容如下

auth required /lib/security/pam_mysql.so user=vftp passwd=123  host=localhost db=ftpd table=user usercolumn=name passwdcolumn=passwd crypt=0

account required /lib/security/pam_mysql.so user=vftp passwd=123  host=localhost db=ftpd table=user usercolumn=name passwdcolumn=passwd crypt=0

注意:

crypt= n

crypt=0: 明文密码

crypt=1: 使用crpyt()函数(对应SQL数据里的encrypt(),encrypt()随机产生salt)

crypt=2: 使用MYSQL中的password()函数加密

crypt=3:表示使用md5的散列方式

六、修改ftp配置文件

vi  /etc/vsftpd/vsftpd.conf

pam_service_name=vftp

guest_enable=YES

guest_username=vftp

七、验证

以mike 和 tom的身份登陆ftp