1、实现基于MYSQL验证的vsftpd虚拟用户访问

环境:2台服务器
1.FTP服务器
2.数据库服务器

数据库服务器

安装数据库

yum –y install mariadb-server
systemctl start mariadb.service
systemctl enable mariadb

编译安装pam_mysql

yum -y groupinstall "Development Tools"
yum -y install mariadb-devel pam-devel vsftpd
github:https://github.com/NigelCunningham/pam-MySQL
tar xvf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1/
./configure  --with-pam-mods-dir=/lib64/security/
make && make install

在数据库服务器上创建虚拟用户账号

mysql> CREATE DATABASE vsftpd;
mysql> SHOW DATABASES;
mysql> GRANT SELECT ON vsftpd.* TO
vsftpd@'192.168.45.%' IDENTIFIED BY '密码';
mysql> USE vsftpd;
Mysql> SHOW TABLES;
mysql> CREATE TABLE users (
id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
name CHAR(50) BINARY NOT NULL,
password CHAR(48) BINARY NOT NULL
);
mysql>DESC users;

测试链接

mysql -uvsftpd -h mysqlserver -p密码
mysql> SHOW DATABASES;

添加虚拟用户

mysql> DESC users;
mysql> INSERT INTO users(name,password) values(‘wang',password('密码'));
mysql> INSERT INTO users(name,password) values(‘mage',password('密码'));
mysql> SELECT * FROM users;

FTP服务器

在FTP服务器上配置vsftpd服务
vim /etc/pam.d/vsftpd.mysql
添加如下两行

auth required pam_mysql.so user=vsftpd passwd=密码 host=192.168.45.129 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=密码 host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 

crypt是加密方式,0表示不加密,1表示crypt(3)加密,2表示使用mysql password()函数加密,3表示md5加密,4表示sha1加密

安装vsftp
yum install vsftpd

创建用户

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/

启动vsftpd服务

service vsftpd start;systemctl start vsftpd
chkconfig vsftpd on;systemctl enable vsftpd

在FTP服务器上配置虚拟用户具有不同的访问权限

mkdir /etc/vsftpd/vusers.d/
vim /etc/vsftpd/vusers.d/ftpuser1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

vim /etc/vsftpd/vusers.d/ftpuser2

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
登录后默认目录
local_root=/data/ftproot2

配置ftpuser2目录

mkdir /data/ftproot2
chmod 555 /data/ftproot2
mkdir /data/ftproot2/upload
setfacl -m u:vuser:rwx /data/ftproot2/upload
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容