ftp基于mysql_实现FTP基于MYSQL虚拟用户认证

两台主机实现:一台作为ftp服务器,一台作为mysql服务器

host1 : 192.168.1.107 vsftpd pam_mysql.so

host2 : 192.168.1.109 mariadb mariadb-server

一.准备数据库

1.安装数据库并启动mysql

~]# yum install mariadb mariadb-server -y

~]# systemctl start mariadb

2.创建vsftpd服务的虚拟数据库及用户列表

1)创建vsftp的数据库

[none]> create database vsftpd;

[none]>use vsftpd

2)创建vsftp虚拟用户表

[none]>create table vuser;

[none]>create table vuser (id int auto_increment primary key,username char(30),password char(50) binary);

3)将虚拟用户的用户名及密码填入表中

[none]>insert into vuser(username,password)values('user1',password('centos')),('user2',password('linux'));

4)创建并授权用户,作为vsftp服务器连接数据库服务的授权用户

[none]>grant select on vsftpd.vuser to vsftpd@'192.168.1.107' identified by 'centos';

二.vsftp服务器端准备

1.编译安装模块驱动pam_mysql.so

1) 准备编译环境所需要的包

~]# yum install gcc gcc-c+ pam-devel mariadb-devel

2) 将驱动源码文件解压

~]# tar xvf /data/tools/pam_mysql-0.7RC1.tar.gz /data/tools

3) 进入模块驱动源码解压后的文件夹

~]# cd /data/tools/pam_mysql-0.7RC1

4) 将模块驱动安装到正确的 路径下/lib64/security

~]# ./configure --with-pam-mods-dir=/lib64/security

5) 进行编译安装

~]# make && make install

2.创建pam配置文件

~]# vim /etc/pam.d/vsftpd.mysql

# 认证依赖于pam_mysql.so 模块,其余为连接数据库授权的用户、密码等信息

auth required pam_mysql.so user=vsftpd passwd=centos host=192.168.1.109

db=vsftpd table=vuser usercolumn=username passwdcolumn=password crypt=2

# accunt 验证账号必须是有效性,其中crypt=2 为加密类型

account required pam_mysql.so user=vsftpd passwd=centos host=192.168.1.109

db=vsftpd table=vuser usercolumn=username passwdcolumn=password crypt=2

3.修改vsftpd主配置文件,调用pam模块配置

~]# vim /etc/vsftpd/vsftpd.conf

pam_service_name=vsftpd.mysql #调用pam模块

userlist_enable=YES

tcp_wrappers=YES

guest_enable=YES #将所有用户映射到guest用户,并映射到其家目录

guest_username=vuser #guest命名为vuser用户

user_config_dir=/etc/vsftpd/vusers.d/ #虚拟用户配置文件路径

4.创建系统用户指定其家目录

~]# useradd -r -s /sbin/nologin/ -d /data/ftproot vuser

给系统用户vuser设置权限,使的虚拟用户和其他用户映射到vuser,有权限上传文件或对文件增删改的必要条件,还需满足vsftp配置才能实现

~]# setfacl -m u:vuser:rwx /data/ftproot/upload

5.创建虚拟用户配置文件,配置每个用户特定属性

如:user1可以上传文件而user2不可以上传文件

~]# vim /etc/vsftpd/vusers.d/user1

anon_upload_enable=YES #允许上传文件

anon_mkdir_write_enable=YES #允许创建文件夹

anon_other_write_enable=YES #可删除和可修改上传的文件

local_root=/data/user1 #指定user1的家目录

~]#vim /etc/vsftpd/vusers.d/user2

local_root=/data/user2 #指定user2的家目录

三.启动vsftp服务,实现mysql虚拟用户认证

~]# systemctl start vsftpd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值