ftp虚拟用户与数据库

本实验在两台CentOS7主机上实现,一台做为FTP服务
器,一台做数据库服务器
1 安装所需的包和包组
(1)
数据库服务器上:
yum -y install mariadb-server mariadb
systemctl start mariadb
mysql_secure_installation 执行安全脚本
(2)
在ftp服务器上安装相应的包
yum -y install vsftpd pam-devel mariadb-devel
yum -y groupinstall “Development Tools”
由于vsftpd链接数据库需要pam_mysql 模块 所以需要下载 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 (编译安装它,指定数据库和pam所在)
make && make install
2 在数据库服务器上创建虚拟账号
1 创建数据库登入账号
mysql -uroot -p123456
create database vsftpd;
show databases;
grant all on vsftpd.* to vsftpd@’192.168.234.%’ indentified by ‘123456’
use vsftpd
create tables users (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
name CHAR(50) BINARY NOT NULL,
password CHAR(48) BINARY NOT NULL
);)

这里写图片描述
quit 退出数据库
测试数据库账号连接情况
mysql -uvsftpd -h 192.168.234.131 -p123456
show databases;
use vsftpd
insert into users (name,password)values(‘luo’,passoword(‘123456’)); 插入虚拟账号

insert into users (name,password)values(‘qi’,passoword(‘123456’));
这里写图片描述
select * from users;
这里写图片描述
3
在 ftp上建立pam认证文件
vi /etc/pam.d/vsftpd.mysql
auth required pam_mysql.so user=vsftpd
passwd=123456 host=192.168.234.128 db=vsftpd table=users
usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd
passwd=123456 host=192.168.234.128 db=vsftpd table=users
usercolumn=name passwdcolumn=password crypt=2
这里写图片描述

配置字段说明
• 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()函数加密
2创建虚拟用户所映射的系统用户
useradd -s /sbin/nologin -d /var/ftproot vuser
chmod 555 /var/ftproot
mkdir /var/ftproot/{upload,pub}
setfacl –m u:vuser:rwx /var/ftproot/upload

vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vuser 指定被映射者
pam_service_name=vsftpd.mysql 指定pam配置文件
systemctl restart vsftpd
这里写图片描述

5 关闭selinux 和防火墙
setenforce 0
iptables -F

6 配置vsftpd为虚拟用户使用配置文件目录
vim /etc/vsftpd/vsftpd.conf
添加如下选项
user_config_dir=/etc/vsftpd/vusers_config
这里写图片描述
创建所需要目录,并为虚拟用户提供配置文件
mkdir /etc/vsftpd/vusers_config
touch luo qi
vim luo
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值