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