vsftpd基于mysql_vsftpd基于mysql实现用户认证

一、演示环境:

IP地址

操作系统

服务器角色

192.168.1.144

CentOS   6.9

vsftpd服务器

192.168.1.145

CentOS   6.9

mysql服务器

二、安装前准备:

1、服务器时间校对

2、配置epel源

三、mysql服务器所需执行的操作:

1、安装软件包:# yum -y install mysql-server mysql-devel ftp

2、启动mysql,检查3306号端口是否被监听:# service mysqld start  # ss -tnlp | grep :3306

3、初始化mysql:# mysql_secure_installation     //设置root用户密码为123456

4、创建数据库、表,并授权远程用户登录:

# mysql -uroot -p

mysql> create database ftp;

mysql> grant select on ftp.* to ftpuser@'192.168.1.144' identified by '123456';

mysql> flush privileges;

mysql> use ftp;

mysql> create table user(id int unsigned auto_increment not null primary key,name varchar(20) binary not null,password char(48) binary not null);

mysql> desc user;

284b6e1a423b32790c864eec5dc720a8.png

5、添加FTP虚拟用户marion和keyso:

mysql> insert into user(name,password) values('marion',password('mftpasswd')),('keyso',password('kftpasswd'));

备注:虚拟用户marion使用密码mftpasswd登录FTP,虚拟用户keyso则使用密码kftpasswd登录FTP

mysql> select * from user;

ed471394e9c4829b93618d56f4c04b7b.png

备注:账号密码使用password()函数加密后存储

四、vsftpd服务器所需执行的操作:

1、安装软件包:# yum -y install vsftpd pam_mysql mysql

2、使用账号ftpuser远程登录mysql服务器:

9af1c370afe92579b98e67a9f411b26a.png

3、创建认证所需文件vsftpd.mysql:

# rpm -ql pam_mysql | grep pam_mysql.so  -->  /lib64/security/pam_mysql.so

# vim /etc/pam.d/vsftpd.mysql,添加如下两行代码:

auth required /lib64/security/pam_mysql.so user=ftpuser passwd=123456 host=192.168.1.145 db=ftp table=user usercolumn=name passwdcolumn=password crypt=2

account required /lib64/security/pam_mysql.so user=ftpuser passwd=123456 host=192.168.1.145 db=ftp table=user usercolumn=name passwdcolumn=password crypt=2

备注:

数字

代表的含义

0

不加密,明文

1

使用crypt函数加密

2

使用mysql password()函数加密

3

使用md5加密

4

使用sha1加密

4、创建虚拟用户映射的系统用户:

# useradd -s /sbin/nologin -d /ftpdocs vuser    //新的家目录ftpdocs必须事先不存在,该命令会自动创建

# chmod go+rx /ftpdocs

5、修改主配置文件/etc/vsftpd/vsftpd.conf,确认启用如下选项:

chroot_local_user=YES

pam_service_name=vsftpd.mysql

guest_enable=YES

guest_username=vuser

user_config_dir=/etc/vsftpd/vusers

use_localtime=YES

6、创建对应的虚拟用户配置文件目录:# mkdir -pv /etc/vsftpd/vusers

7、配置不同的虚拟用户具有不同的访问权限:

# cd /etc/vsftpd/vusers

# vim marion

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

# cp marion keyso

# sed -i 's#YES#NO#g' keyso

8083051d882f6119ff9edea28700ff15.png

备注:每个虚拟用户的配置文件名同虚拟用户的用户名。虚拟用户所能执行的权限都由匿名用户的相关选项定义。所有的虚拟用户都映射到系统用户vuser上。

8、启动vsftpd,检查21号端口是否被监听:# service vsftpd start  # ss -tnlp | grep :21

五、用户认证测试:

在mysql服务器上分别使用虚拟用户marion和keyso远程登录FTP:# ftp 192.168.1.144,测试上传文件、删除文件、创建目录和删除目录等权限

使用虚拟用户marion登录FTP:

aa16c834c6e5998bb5766207115fbb2b.png

使用虚拟用户keyso登录FTP:

5f0ceeaef46fc70c912bd4d7cc5dc064.png

本文转自Marion0728  51CTO博客,原文链接:http://blog.51cto.com/qiuyue/2057761,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值