实现基于MYSQL验证的vsftpd虚拟用户

1. Mysql安装

yum -y install mariadb-server
systemctl enable --now mariadb.service

1.2 建表建库建用户

mysql -e "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) values('qiu',password('123456'));
INSERT INTO users(name,password) values('zhang',password('654321'));"
mysql -e "select * from vsftpd.users;"

在这里插入图片描述

1.3 创建远程连接账户

mysql -e "create user vsftpd@'192.168.31.%' identified by 'Pana#123';"
mysql -e "grant all on vsftpd.* to vsftpd@'192.168.31.%';"

2. 安装FTP服务器

2.1 安装vsftpd

yum install -y vsftpd

2.2 安装pam_mysql

yum -y install vsftpd gcc gcc-c++ make mariadb-devel pam-devel
wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz
tar xf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1/
./configure --with-pam-mods-dir=/lib64/security 
make install

2.2 建立pam认证所需文件

cat > /etc/pam.d/vsftpd.mysql<<EOF
auth required pam_mysql.so user=vsftpd passwd=Pana#123 host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=Pana#123 host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
EOF

注意:以上参考 README文档
crypt 加密方式:
0表示不加密
1表示crypt(3)加密
2表示使用mysql password()函数加密
3表示md5加密
4表示sha1加密

2.3 建立vsftpd用户

mkdir -pv /data/ftproot/upload
useradd -d /data/ftproot -s /sbin/nologin -r vuser
setfacl -m u:vuser:rwx /data/ftproot/upload

2.4 修改vsftpd配置文件

mkdir /etc/vsftpd/conf.d/
sed -Eri "s#(pam_service_name=vsftpd)#\1.mysql#" /etc/vsftpd/vsftpd.conf
echo "guest_enable=YES" >> /etc/vsftpd/vsftpd.conf
echo "guest_username=vuser" >> /etc/vsftpd/vsftpd.conf

2.5 重启vsftpd服务

systemctl enable --now vsftpd
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值