文档章节

vsftpd和mysql结合实现认证

guanshanyue1990
 guanshanyue1990
发布于 2014/01/09 08:03
字数 613
阅读 103
收藏 8

tep1:

首先安装vsftp和mysql

[root@localhost ~]#yum install vsftpd mysql-server mysql-devel pam-devel -y

在PAM中默认是没有mysql认证模块的,所以要下载源码自己手动安装

[root@localhost ~]# tar -xf pam_mysql-0.7RC1.tar.gz -C /usr/src/

[root@localhost ~]# cd /usr/src/pam_mysql-0.7RC1

[root@localhost pam_mysql-0.7RC1]# ./configure --with-pam=/lib64/security/  #文件需要导入64位的目录下

[root@localhost pam_mysql-0.7RC1]# make && make install

step2:

安装好后启动mysql

[root@localhost ~]# service mysqld start

[root@localhost ~]# mysql -u root -p

首先先创建vsftp的数据库

mysql> CREATE DATABASE vsftpd;

然后创建一个用户表

mysql> use vsftpd

mysql> create table users (

-> id int AUTO_INCREMENT NOT NULL,

-> name char(20) NOT NULL UNIQUE KEY,

-> passwd char(48) NOT NULL,

-> primary key(id)

-> ); 

添加vsftpd的数据库帐号

mysql> insert into users(name,passwd) values('lustlost',password('123456')); \

然后创建vsftpd的数据库账户,为了安全,只授予查询权限

mysql> GRANT select on vsftpd.* to vsftpd@localhost identified by '123456'

mysql> GRANT select on vsftpd.* to vsftpd@127.0.0.1 identified by '123456' ;

step3:

编辑vsftp配置文件,参考我的配置

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 

[root@localhost ~]# grep -v "^#" /etc/vsftpd/vsftpd.conf 


anonymous_enable=YES 

local_enable=YES 

write_enable=YES 

local_umask=022 

anon_upload_enable=YES 

anon_mkdir_write_enable=YES 

dirmessage_enable=YES 

xferlog_enable=YES 

connect_from_port_20=YES 

xferlog_std_format=YES 

chroot_local_user=YES 

listen=YES 

pam_service_name=vsftpd.mysql #主要修改这一行,指定使用vsftpd.mysql这个pam配置文件调用pam认证 

guest_enable=YES #开启来宾账户 

guest_username= mysqlftp #映射来宾账户,这个账户将会被映射为mysql数据库中的账户 

user_config_dir=/etc/vsftpd/vsftpd_user_conf #创建mysql每个虚拟用户的配置目录


编辑pam配置文件,参考我的配置

[root@localhost ~]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.mysql #复制原来的vsftp认证方法,在此基础上添加mysql认证

编辑PAM认证配置文件

[root@localhost ~]# vim /etc/pam.d/vsftpd.mysql


auth required /lib64/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2

account required /lib64/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2


step4:

添加mysql用户认证的虚拟用户

[root@localhost ~]# useradd mysqlftp -d /var/ftp/pub/mysqlftp

修改mysql虚拟账户的权限

[root@localhost ~]# chown mysqlftp:mysqlftp -R /var/ftp/pub/mysqlftp

创建mysql虚拟账户配置文件夹

[root@localhost ~]# mkdir /etc/vsftpd/vsftpd_user_conf

在此文件夹下配置每个mysql虚拟账户的配置文件

[root@localhost vsftpd_user_conf]# touch lustlost

local_root=/var/ftp/pub/mysqlftp/lustlost #其余配置可以自己按需求写,这里只限制了mysql虚拟用户的个人文件夹

在lustlost目录中创建一个文件验证结果

[root@localhost vsftpd_user_conf]# touch /var/ftp/pub/mysqlftp/lustlost/l.txt

© 著作权归作者所有

guanshanyue1990
粉丝 4
博文 19
码字总数 5067
作品 0
杭州
私信 提问
CentOS 6.x上搭建vSFTPD服务器搭建与配置详解

摘要: 手把手教你搭建vsftpd服务器,实现了基于db文件和MySQL数据库文件进行虚拟用户认证,当然了也本文章也包含搭建过程中问题的排查啦,哈哈哈。 另外,我在CentOS 7.x上也进行了搭建测试...

哎呀_毅然
2017/08/19
0
0
vsftpd

FTP(File Transfer Protocol,文件传输协议),是一种应用层协议,可以实现很好的实现跨平台,但是无法实现一些其他的功能,像如文件系统挂载等功能。NFS(Network File System,网路文件系...

5431039
2016/04/16
0
0
实现基于mysql验证的vsftpd虚拟用户

实验前说明:本实验需要在两台centos向主机上实现,一台作为ftp服务器,一台做数据库服务器 在这里我使用centos6做数据库服务器,centos7做ftp服务器 一:安装所需要的包和包组 在centos6上安...

雾中花1
2017/10/29
0
0
实验-----基于MYSQL验证的vsftpd虚拟用户

一、安装需要的包和包组: (1)在数据库服务器上安装包: Centos7:在数据库服务器上安装 yum -y install mariadb-server 安装包 systemctl start mariadb 启动服务 systemctl enable maria...

lc01081314
2018/06/26
0
0
使用pam_mysql和VSFTPD实现ftp虚拟账号

一、vsftpd特点 vsftpd是在Linux一个较安全的ftp服务,在使用中,发现具有以下特点: l 支持chroot l ftp账号和local user账号映射机制 l 与客户连接的子进程使用低权限账号运行 l 有最大用户...

芒果龙
2011/10/26
246
0

没有更多内容

加载失败,请刷新页面

加载更多

Go 关闭 channel 的 close 方法

在 Go 中我们所以 close() 来关闭一个 channel 官方的注释如下 The close built-in function closes a channel, which must be either bidirectional or send-only. It should be executed o......

mickelfeng
19分钟前
3
0
语音转文字什么方法比较简单

在很多时候一些比较重要的对话需要录制下来,在录制完成后还需要整理出文字,可是长时间的录音内容想要整理出文字是非常的麻烦的。需要花费大量的时间将录制的声音转换成文字,那么想要简单快...

401恶户
22分钟前
5
0
IIS7配置thinkphp5项目到public目录下

有个项目,tp5写的,要配置到项目的public目录下,一开始报错了...后面删除了配置,重新配置成功了,记录一下过程 1.首先,将网站根目录变为你的public目录下 2.添加解析程序的CGI,这里选择你需要解...

老bia同学
26分钟前
10
0
Redis主从复制的配置和实现原理

Redis的持久化功能在一定程度上保证了数据的安全性,即便是服务器宕机的情况下,也可以保证数据的丢失非常少。通常,为了避免服务的单点故障,会把数据复制到多个副本放在不同的服务器上,且...

TurboSanil
28分钟前
8
0
counsul 集群

1 master节点 cat << EOF > /lib/systemd/system/consul.service[Unit]Description=consul-masterAfter=network-online.target [Service]ExecStart=/bin/sh -c 'consul agent ......

拜了个拜
29分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部