Linux企业级服务之实现基于mysql验证的vsftpd虚拟用户

一、实验平台
在这里插入图片描述
二、实验步骤
1.在数据库服务器上安装mysql并启动服务

yum -y install mariadb-server
systemctl enable --now mariadb

2.建立存储虚拟用户的数据库和表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.创建连接的数据库用户
在这里插入图片描述
4.在ftp服务器上安装vsftpd和pam模块(源码编译)

yum -y install  vsftpd
#下载并解压pam源码包
wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-
0.7RC1.tar.gz
tar -xvf pam_mysql-0.7RC1.tar.gz -C /usr/local/src/
#安装依赖包
yum -y install gcc gcc-c++ make mariadb-devel pam-devel
#进入/usr/local/src/pam_mysql-0.7RC1目录,源码编译
./configure --with-pam-mods-dir=/lib64/security
make install

编译安装完后截图如下:
在这里插入图片描述
5.在ftp服务器上新建pam配置文件/etc/pam.d/vsftpd.mysql,用于认证

auth required pam_mysql.so user=Am passwd=123456 host=10.0.0.153 db=vsftp table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=Am passwd=123456 host=10.0.0.153 db=vsftp table=users usercolumn=name passwdcolumn=password crypt=2

crypt加密方式

  • 0表示不加密
  • 1表示crypt(3)加密
  • 2表示使用mysql password()函数加密
  • 3表示md5加密
  • 4表示sha1加密

配置字段说明

  • auth 表示认证
  • account 验证账号密码正常使用
  • required 表示认证要通过
  • pam_mysql.so模块是默认的相对路径,是相对/lib64/security/路径而言,也可以写绝对路径;后面为给此模块传递的参数
  • user=vsftpd为登录mysql的用户
  • passwd=magedu 登录mysql的的密码
  • host=mysqlserver mysql服务器的主机名或ip地址
  • db=vsftpd 指定连接msyql的数据库名称
  • table=users 指定连接数据库中的表名
  • usercolumn=name 当做用户名的字段
  • passwdcolumn=password 当做用户名字段的密码
  • crypt=2 密码的加密方式为mysql password()函数加密

6.建立相应用户和修改vsftpd配置文件

#建立虚拟用户映射的系统用户及对应的目录
useradd -s /sbin/nologin -d /data/ftproot -r vuser
mkdir -pv /data/ftproot/upload
#赋权限
setfacl -m u:vuser:rwx /data/ftproot/upload

#修改/etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd.mysql
user_config_dir=/etc/vsftpd/conf.d/ #为虚拟用户使用配置文件目录

#启动ftpd服务
systemctl enable --now vsftpd

7.在tfp服务器上配置虚拟用户具有不同的访问权限

#创建所需要目录,并为虚拟用户提供配置文件
mkdir /etc/vsftpd/conf.d/
mkdir -pv /data/ftproot1/upload  	#ftp_ammon
chown ftp_ammon.ftp_ammon /data/ftproot1/upload/
#创建用户访问权限文件,和数据库用户表的name对应
touch /etc/vsftpd/conf.d/ftp_ammon

#配置虚拟用户的访问权限
#增加内容/etc/vsftpd/conf.d/ftp_ammon
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/ftproot1 #登录目录改变至指定的目录

8.在ftp客户端用数据库对应的name和password连接测试即可

ftp 10.0.0.154

在学习中进步,如有错误,请多多批评指正

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeAmmon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值