pam mysql.so_vsftpd基于pam_mysql的虚拟用户机制

何为vsftpd?

vsftpd:very secure ftp daemon

程序:/usr/sbin/vsftpd

配置文件:/etc/vsftpd/vsftpd.conf

其用户分为:匿名用户(映射至某一固定的系统用户),本地用户(root及系统用户),虚拟用户(存储在文件或其他服务器端数据库中的用户);

以下将以CentOS 7 讲解具体配置过程:

[此机制需要pam_mysql.so]

主要分为以下几个步骤:

1.运行环境准备和配置

2.mysql数据库配置

3.pam配置

4.细节优化

1.运行环境准备和配置

由于CentOS 7yum源中没有pam-mysql,故需自己编译安装;

首先安装开发环境:

# yum -y groupinstall "Development Tools" "Server Platform Development"

另外还需要的程序包有:openssl-devel  pam-devel  mariadb-devel

下载好pam-mysql后解压缩,开始编译:

# ./configure --with-openssl=/usr --with-mysql=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security

# make && make install

安装完成后,在/lib64/security目录下可以看到:

07f9a4ce4505083193dfb6b8799bcdf4.png

2.数据库配置

安装mariadb-server

创建一个测试库/表,填入数据,如图所示:

5cc6848a71e2e02ee94c712112b26d2d.png

(此处用的数据库是test,表是vsftpd)

并授权一个用户vsftpd,使其有查权限:

mysql> GRANT select ON test.* TO vsftpd@localhost IDENTIFIED BY '123456';

mysql> GRANT select ON test.* TO vsftpd@127.0.0.1 IDENTIFIED BY '123456';

自行测试一下此用户,没问题进入下一步。

3.pam配置

# cd /etc/pam.d

# vim vsftpd.mysql

写入

auth required pam_mysql.so user=vsftpd passwd=123456 host=localhost db=test table=vsftpd usercolumn=name passwdcolumn=passwd crypt=2account required pam_mysql.so user=vsftpd passwd=123456 host=localhost db=test table=vsftpd usercolumn=name passwdcolumn=passwd crypt=2

其中:

pam_mysql.so //相对路径,如果此模块置于/lib64/security目录下,则可直接写文件名,当然,写全路径也没问题;

user=vsftpd

passwd=123456 //授权登陆mysql时的用户

host=localhost //本地主机

db=test //存放虚拟用户的数据库名

table=vstfpd

usercolumn=name

passwdcolumn=passwdcrypt=2 //密码加密方式代号

//0:不加密

//1:使用crypt(3)加密

//2:mysql函数加密password();

//3:md5加密

//4:SHA1加密

4.细节优化

创建系统用户作为映射:

# useradd -s /sbin/login -d /ftproot vuser

修改其权限,使其他用户有读、执行权限:

# chmod go+rx /ftproot

编辑配置文件/etc/vsftpd/vsftpd.conf:

a721717355a3702e35563d8bfcf8e180.png

添加: guest_enable=YES

guest_username=vuser

修改此项为:pam_service_name=vsftpd.mysql

确保这些为YES:

anonymous_enable=YES

local_enable=YES

write_enable=YES

保存退出,启动服务:

# systemctl start vsftpd.service

效果如下:

60005c266b0fd77a13d9dfe428f2d7e0.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值