实验:实现基于mysql的ftp虚拟用户

(一)vsftpd虚拟用户

1 虚拟用户:

所有虚拟用户会统一映射为一个指定的系统帐号:访问共享位置,即为此系统帐号的家目录

各虚拟用户可被赋予不同的访问权限,通过匿名用户的权限控制参数进行指定

2 虚拟用户帐号的存储方式:

2.1 文件:编辑文本文件,此文件需要被编码为hash格式

奇数行为用户名,偶数行为密码

db_load -T -t hash -f vusers.txtvusers.db

2.2 关系型数据库中的表中:

实时查询数据库完成用户认证

mysql库:pam要依赖于pam-mysql

/lib64/security/pam_mysql.so

/usr/share/doc/pam_mysql-0.7/README


(二)实现基于mysql验证的ftp虚拟用户

环境:两台主机,一台 A:mairadb server 一台 B ftp server

一、安装所需要包和包组:

1、在数据库服务器上安装包:

安装mariadb或者mysql

yum install mariadb-devel 或者yum install mysql-devel

mysql_secure_installation(跑下安全脚本)

mysql -uroot –pip

>create database vsftpd;(创建数据库)

>use vsftpd

>create table ftpusers(name char(30),pass char(50));(创建表)

>insert ftpusers values('ftp1',password('centos')),('ftp2',password('magedu'));(添加表内容)

>grant select on vsftpd.ftpusers to 'ftp'@'172.17.166.166' identified by 'centos';(给ftp@172.17.166.166授权)


 

2、在FTP服务器上安装vsftpd和pam_mysql包

yum groupinstall "development tools"(安装包组)

yum install mysql-devel pam-devel(安装所需要的包)

编译安装pam_mysql-0.7RC1.tar.gz

tar xvf pam_mysql-0.7RC1.tar.gz

cd pam_mysql-0.7RC1

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

make && make install

useradd -d /app/ftpdir -r -m ftpuser (创建系统用户,使所有用户访问都指向ftpuser)


 二、在FTP服务器上配置vsftpd服务

3 B.在FTP服务器上建立pam认证所需文件

vim /etc/pam.d/vsftpd.mysql (编写模块配置文件)

auth required pam_mysql.so user=ftp passwd=centos host=172.17.177.177 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=pass crypt=2

account required pam_mysql.so user=ftp passwd=centos host=172.17.177.177 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=pass 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()函数加密

4 B 建立相应用户和修改vsftpd配置文件,使其适应mysql认证
建立虚拟用户映射的系统用户及对应的目录

vim /etc/vsftpd/vsftpd.conf(配置FTP)

pam_service_name=vsftpd.mysql 修改

加下面行

guest_enable=yes(开启指定用户选项)

guest_username=ftpuser(指定用户)

user_config_dir=/etc/vsftpd/conf.d/(指定目录,使其每个虚拟用户的权限不同)

mkdir /etc/vsftpd/conf.d/(默认没有这个目录)

cd /etc/vsftpd/conf.d/

vim /etc/vsftpd/conf.d/ftp1

anon_upload_enable=yes(允许ftp1上传文件)

 

vim /etc/vsftpd/conf.d/ftp2

local_root=/app/ftpdir2(指定ftp2的根文件为/app/ftpdir2)

5、B

cd /app/

chmod 555 /app/ftpdir/(根目录不能有写权限)

mkdir /app/ftpdir/up (可以下载的目录)

chown ftpuser /app/ftpdir/up

mkdir /app/ftp2

chmod 555 /app/ftpdir2


6、拿客户端测试

用ftp1测试

用ftp2登录

测试成功!!!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值