为ftp增加mysql认证

1.安装vsftpd,此处可yum安装或源码安装;

2.安装mysql,略过,可查看之前文档;

3.安装pam-mysql,依赖pam-devel包;

[root@WebA-136 ~]#tar xf pam_mysql-0.7RC1.tar.gz
[root@WebA-136 ~]#yum install pam-devel
[root@WebA-136 ~]#./configure --with-mysql=/usr/local/mysql --with-openssl
[root@WebA-136 ~]#make && make install
[root@WebA-136 ~]#less README
[root@WebA-136 ~]#vim /etc/pam.d/vsftpd.mysql
[root@WebA-136 ~]#cat /etc/pam.d/vsftpd.mysql
[root@WebA-136 ~]#auth required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=192.168.146.136 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=3 md5=yes
[root@WebA-136 ~]#account required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=192.168.146.136 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=3 md5=yes

再配置数据库

create database vsftp;
grant selcet on vsftp.* to vsftpd@192.168.146.136 identified by '123456';
创建表
create table users(
id smallint auto_increment not null,
name char(20) binary not null,
password char(48) binary not null,
primary key(id))
;
查看表结构
desc users;
此处还需要插入虚拟用户
INSERT INTO users(name,password)VALUES('tom',md5(123456)),('jack',md5(123456));

4.修改vsftpd.conf配置文件,使其适用于mysql认证

首先创建用户

useradd -s /sbin/nologin -d /var/ftp-test vsftp
chmod go+rx /var/ftp-test

确保vsftpd.conf中打开以下选项

[root@WebA-136 ~]#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
增加以下选项
guest_enable=YES
guest_username=vsftpd######所有的虚拟用户  都必须映射到一个指定的用户上。
listen=YES
pam_service_name=vsftpd.mysql

注:可根据不同的虚拟用户实现不同的访问权限设置

在vsftpd.conf中新增

user_config_dir=/etc/vsftpd/test
在/etc/vsftpd/test目录下增加与虚拟用户同名的文件
cd /etc/vsftpd/test
vim tom
anon_upload_enable=YES
anon_mkdir_write_enable=YES
vim jack
anon_upload_enable=NO
anon_mkdir_write_enable=NO

    原文作者:海中小帆船
    原文地址: https://blog.51cto.com/12107790/2447128
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞