vsftpd基于mysql_实现基于mysql验证的vsftpd虚拟用户
实验前说明:本实验需要在两台centos向主机上实现,一台作为ftp服务器,一台做数据库服务器在这里我使用centos6做数据库服务器,centos7做ftp服务器一:安装所需要的包和包组在centos6上安装数据库所需要的包yum -y install mysql-server在centos7因为没有对应的rpm包,需要手动编译安装yum -y groupinstall "development
实验前说明:本实验需要在两台centos向主机上实现,一台作为ftp服务器,一台做数据库服务器
在这里我使用centos6做数据库服务器,centos7做ftp服务器
一:安装所需要的包和包组
在centos6上安装数据库所需要的包
yum -y install mysql-server
在centos7因为没有对应的rpm包,需要手动编译安装
yum -y groupinstall "development tools"
yum -y install pam-devel vsftpd
下载源码包
pam_mysql-0.7RC1.tar.gz
解压包 tar xvf pam__mysql-0.7RC1.tar.gz
然后进入这个目录下进行编译cd pam_mysql-0.7RC1/
./configure --with-mysql=/usr --with-pam=/usr
--with-pam-mods-dir=/lib64/security
根据提示我们还需要安装maria-devel这个包
安装之后,重新进行编译
如果没有出现错误,就可以进行下一步啦
Make &&make install
二.在数据库服务器上创建虚拟用户账号
建立存储虚拟用户数据库和连接的数据库用户

建立连接数据库的用户

在数据库中准备相关表来存储虚拟用户的账号


测试连接

三 添加虚拟用户
根据需要添加所需要的用户,为了安全应该使用password
函数加密其密码后存储

在ftp服务器上配置vsftpd服务
在ftp服务器上建立pam认证所需文件
Vim /etc/pam.d/vsftpd.mysql添加如下两行

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()函数加密
四 建立相应用户和修改vsftpd配置文件,使其适应mysql认证,建立虚拟用户映射的系统用户及对应的目录
useradd -s /sbin/nologin -d /var/ftproot vuser
chmod 555 /var/ftproot centos7 需除去ftp 根目录的写权限
mkdir /var/ftproot/{upload,pub}
setfacl m u:vuser:rwx /var/ftproot/upload
确保/etc/vsftpd/vsftpd.conf中已经启用了以下选项
Anonymous_enable=yes
并添加下面两项
guest_enable=yes
guest_username=vuser
修改下面一项,原系统用户无法登录

五 启动vsftpd服务
Systemctl start vsftpd
查看端口开启情况
Ss -ntl |grep :21
六 测试:利用ftp客户端工具,以虚拟用户登录验证结果

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)