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 groupinsttall “Development Tools” “Server Platform Development”

另外还需要的程序包有:openssl-devel pam-devel mariadb-devel
yum -y install pam-devel openssl-devel mariadb-devel
  下载好pam-mysql后解压缩,开始编译:
tar -xzvf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1
./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security
make && make install

安装完成后,在/lib64/security目录下可以看到:
在这里插入图片描述

2.数据库配置
安装mariadb-server
yum -y install mariadb-server
systemctl enable mariadb # 设置为开机自启动服务
systemctl start mariadb # 开启服务 在这里插入图片描述
2)首次安装需要进行数据库的配置,命令都和mysql的一样
[root@mini ~]# mysql_secure_installation
3)配置时出现的各个选项
Enter current password for root (enter for none): # 输入数据库超级管理员root的密码(注意不是系统root的密码),第一次进入还没有设置密码则直接回车
Set root password? [Y/n] # 设置密码,y
New password: # 新密码
Re-enter new password: # 再次输入密码
Remove anonymous users? [Y/n] # 移除匿名用户, y
Disallow root login remotely? [Y/n] # 拒绝root远程登录,n,不管y/n,都会拒绝root远程登录
Remove test database and access to it? [Y/n] # 删除test数据库,y:删除。n:不删除,数据库中会有一个test数据库,一般不需要
Reload privilege tables now? [Y/n] # 重新加载权限表,y。或者重启服务也许
4)测试是否能够登录成功,出现 MariaDB [(none)]> 就表示已经能够正常登录使用MariaDB数据库了
在这里插入图片描述
创建数据库vsftpd和表users
在这里插入图片描述

在这里插入图片描述
(3)为表插入数据
在这里插入图片描述
(4)在mariadb数据库中创建并授权一个ftp1用户连接mariadb
在这里插入图片描述

3、创建一个pam配置文件 vim /etc/pam.d/vsftpd.mysql
在这里插入图片描述
4、创建系统用户,作为所有虚拟用户的映射用户
在这里插入图片描述
5、编辑vsftpd配置文件,修改相关配置
vim /etc/vsftpd/vsftpd.conf
在这里插入图片描述

7、测试
(1)测试虚拟用户tom
在这里插入图片描述
(2)测试虚拟用户jerry
在这里插入图片描述

三、其它需求
1、如何让虚拟用户具有上传文件的权限?这一项需要启用,因为虚拟用户也是匿名用户
在这里插入图片描述
(1)确保虚虚用户的系统用户ftp3对文件系统具有写权限
在这里插入图片描述
(3)测试

#测试虚拟用户tom
在这里插入图片描述
#测试虚拟用户jerry
在这里插入图片描述
测试成功

2、虚拟用户tom和jerry都映射为系统上的一个用户vuser,能够设置tom和jerry的权限不一致,例如设置为tom能够上传文件,而jerry不能上传文件?

1、分别为每个虚拟用户添加单独一个配置文件 #vsftpd支持每个虚拟用户单独使用一个配置文件,并且配置文件必须和用户名相同
在这里插入图片描述

2、编辑主配置文件/etc/vsftpd/vsftpd.conf
(1)设置不允许匿名用户上传
在这里插入图片描述
(2)明确设置加载vusers.conf.d目录中的配置文件
在这里插入图片描述

3、重启vsftpd服务
systemctl restart vsftpd.serivce

4、测试
#预期虚拟用户tom能够上传文件,而jerry则不能上传文件
#测试虚拟用户tom
在这里插入图片描述
#测试虚拟用户jerry
在这里插入图片描述
测试成功。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值