1、实现基于MYSQL验证的vsftpd虚拟用户访问
两台服务器:一台ftp服务器192.168.5.11 一台mariadb服务器192.168.5.12
(1)mariadb服务器
yum install -y mariadb-server
systemctl start mariadb
mysql
create database vsftpd ;
use vsftpd ;
CREATE TABLE users (
id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
name CHAR(50) BINARY NOT NULL,
password CHAR(48) BINARY NOT NULL) ;
insert into users (name,password) value(‘ftpuser1‘,password(‘123456‘)) ;
insert into users (name,password) value(‘ftpuser2‘,password(‘123456‘));
grant select on vsftpd.* to vsftpd@‘192.168.5.%‘ identified by ‘123456‘;
(2)ftp服务器,安装ftp,编译按章pam_mysql
yum install -y vsftpd
tar -xf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1/
yum install -y gcc gcc-c++ pam-devel mariadb-devel
./configure --with-pam-mods-dir=/lib64/security/
make && make install
(3)创建pam认证文件
vim /etc/pam.d/vsftpd.mysql
auth required pam_mysql.so user=vsftpd passwd=123456 host=192.168.5.12 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=123456 host=192.168.5.12 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
(4)创建FTP虚拟用户与共享目录,并修改 /etc/vsftpd/vsftpd.conf
useradd -d /data/ftproot -s /sbin/nologin vuser
chmod 555 /data/ftproot
mkdir /data/ftproot/upload
setfacl -m u:vuser:rwx /data/ftproot/upload
vim /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd.mysql #修改此项
#添加以下三项
guest_enable=YES
guest_username=vuser
user_config_dir=/etc/vsftpd/vusers.d/ #独立用户配置目录
(5)启动FTP服务,用数据库中的用户测试
systemctl start vsftpd
ftp 192.168.5。11
ftpuser1
123456