FTP+MySQL虚拟用户

虚拟用户:

所谓虚拟用户,就是所有的虚拟用户会被统一映射为一个指定的系统账号,访问的共享位置即为此系统账号的家目录。管理起来极为方便

实验题目:FTP+MySQL

实验目的:虚拟用户存放在mysql表中,通过远程的方式实现对虚拟用户的管理控制

实验拓扑:

说明:这两台服务器可以合成一个,这里分成两个是为了实现让ftp如何通过网络和mysql实现管理控制,同时这样可以看得更直观。

1.安装mysql(192.168.0.3)

可以用yum安装,也可以编译安装,前面已经介绍过mysql的安装,这里不再进行演示

安装ftp服务器和pam_mysql,这个包需要在网上下载(192.168.0.2)

#yum install vsftpd pam_mysql

2.准备数据库及相关表

首先请确保mysql服务已经正常启动。而后,按需要建立存储虚拟用户的数据库即可,这里将其创建为vsftpd数据库。

mysql> create database vsftpd;
 
mysql> grant select on vsftpd.* to [email protected]‘192.168.%.%‘ identified by ‘www.ky.com‘;
mysql> flush privileges;

测试一下在ftp服务器上是否能连接到mysql数据库,如图:可以连接。这个是在192.168.0.2上测试的

3.创建表结构,添加数据(虚拟用户的账号和密码)

根据需要添加所需要的用户,需要说明的是,这里将其密码为了安全起见应该使用PASSWORD函数加密后存储。

mysql> use vsftpd;
mysql> create table users (
    -> id int AUTO_INCREMENT NOT NULL,
    -> name char(20) binary NOT NULL,
    -> password char(48) binary NOT NULL,
    -> primary key(id)
    -> ); 
    
mysql> insert into users(name,password) values(‘vstom‘,password(‘www.ky.com‘));
mysql> insert into users(name,password) values(‘vsjerry‘,password(‘www.ky.com‘));

4.配置vsftpd

建立pam认证所需文件

查看pam_mysql.so放在哪个位置

#vi /etc/pam.d/vsftpd.mysql

添加如下两行

详解:

user:远程连接mysql的用户名

password:远程连接mysql的密码

host:远程连接mysql的服务器地址

db:连接的数据库名

table:连接数据库中的表名

usercolumn:表中的字段名

passwdcolumn:表中密码字段的名称

crypt:该方法加密的密码

0:没有加密。密码存储在纯文本

1:使用crypt(3)功能

2:使用mysql密码

3:使用md5加密

4:使用sha加密

5.修改vsftpd的配置文件,使其适应mysql认证

建立虚拟用户映射的系统用户及对应的目录

# useradd -s /bin/nologin -d /var/vftp kyfish
# chmod go+rx /var/vftp

请确保/etc/vsftpd.conf中已经启用了以下选项

anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES

而后添加以下选项

guest_enable=YES
guest_username=kyfish   把来宾的用户都映射为kyfish用户

并确保pam_service_name选项的值如下所示

pam_service_name=vsftpd.mysql

用windows测试

6.配置虚拟用户具有不同的访问权限

vsftpd可以在配置文件目录中为每个用户提供单独的配置文件以定义其ftp服务访问权限,每个虚拟用户的配置文件名同虚拟用户的用户名。配置文件目录可以是任意未使用目录,只需要在vsftpd.conf指定其路径及名称即可。

配置vsftpd为虚拟用户使用配置文件目录

# vim vsftpd.conf

添加如下选项

user_config_dir=/etc/vsftpd/vusers

创建所需要目录,并为虚拟用户提供配置文件

# mkdir /etc/vsftpd/vusers
# cd /etc/vsftpd/vusers
# touch vstom vsjerry

配置虚拟用户的访问权限

虚拟用户对vsftpd服务的访问权限是通过匿名用户的相关指令进行的。比如,如果管理vstom用户的权限,可以修改/etc/vsftpd/vusers /vstom文件,在里面添加如下选项即可。

local_root=/var/vftp/vstom  指定虚拟用户自己的家目录
write_enable=YES
anon_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=NO

这样FTP+MySQL的实验就成功了。

时间: 2024-12-15 01:49:06

FTP+MySQL虚拟用户的相关文章

linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建

1.FTP协议:有命令和数据连接两种 命令连接,控制连接:21/tcp 数据连接: 主动模式,运行在20/tcp端口 和 被动模式,运行在随机端口 数据传输模式(自动模式):有二进制(mp3,jpg等)和文本(html)两种传输模式 ftp服务器端程序:wu-ftpd:vsftpd pureftpd Filezilla Serv-U ftp客户端程序:CLI文本模式命令:ftp lftp GUI图形界面软件:gftpd FlashFXP Cuteftp Filezilla vsftpd:命名为V

实现FTP基于MYSQL虚拟用户认证

两台主机实现:一台作为ftp服务器,一台作为mysql服务器 host1 : 192.168.1.107 vsftpd pam_mysql.so host2 : 192.168.1.109 mariadb mariadb-server 一.准备数据库 1.安装数据库并启动mysql ~]# yum install mariadb mariadb-server -y ~]# systemctl start mariadb 2.创建vsftpd服务的虚拟数据库及用户列表 1)创建vsftp的数据库

VSFTP+MySQL虚拟用户配置

VSFTP+MySQL虚拟用户配置 1. 安装vsftp软件 下载vsftp(最新版本)软件: wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.1.0.tar.gz 如果要开始ssl功能的话,安装vsftp之前要先安装openssl-0.9.8g.tar.gz包 [[email protected] ftp]# tar xzvf openssl-0.9.8g.tar.gz [[email protected] ftp]# cd openssl

企业级FTP服务器虚拟用户的搭建 ---RHEL6.x

企业级FTP服务器虚拟用户的搭建 ---RHEL6.x 前言: 所谓温故知新,今天在整理之前的学习笔记的时候,无意间看到了VSFTP虚拟用户的字眼,也可能是由于在平时所用的FTP服务器通常是用setfacl来实现安全共享,忽略了系统用户安全的问题,vsftp虚拟用户的实现方式也变得模糊,今天就一起来回顾一下vsftp虚拟用户的搭建. db4-utils+vsftpd 搭建虚拟用户 : 个人认为虚拟用户对于企业级的VSFTP还是很有必要的,如果有人想要恶意破坏服务器系统的话,对方知道了你的系统用户

FTP之虚拟用户

基于虚拟用户访问ftp关闭防火墙,selinux 过程如下1.装包,配置.起服务配置过程如下: 需写入vsftpd.conf配置文件中的内容如下: anonymous_enable=NO ---- 匿名用户可登陆local_enable=YES ---- 本地用户可登陆write_enable=YES ---- 可以写入local_umask=022 ----- 设定umask值dirmessage_enable=YES ---- 目录欢迎信息功能xferlog_enable=YES ----

ftp用虚拟用户访问

1.创建一个虚拟用户的数据库文件 vim /etc/vsftpd/vuser.list jerry jerry tom tom //单行为账户,双行为密码 使用db_load命令用hash算法生成ftp用户的数据库文件vuser.db db_load -T -t hash -f vuser.list vuser.db chmod 600 vuser.db  --为了安全性,权限改小一些 rm -rf vuser.list --删除原始账号和密码的文件 2.创建ftp根目录及虚拟用户映射的系统用户

linux ftp创建虚拟用户及更改权限

第1步进入目录 cd /etc/vsftpd/ vim vuser.list //单数行为帐号,双数行为密码. 111 111111 222 222222 使用db_load命令用HASH算法生成FTP用户数据库文件 vuser.db: dbload -T -t hash -f vuser.list vuser.db 查看文件: file vuser.db FTP赋予权限: chmod 600 vuser.db 第2步创建用户virtual并设置为不允许登陆系统并定义该用户的home目录: us

CentOS7 FTP服务搭建(虚拟用户访问FTP服务)

概述 最近在搞Oracle在Linux系统下集群,针对Linux系统,笔人也是一片空白.Liunx外部文件的传输,避免不了使用FTP服务,所以现在就整理下,CentOS7环境下,FTP服务的搭建.FTP服务器需要安装vsftp服务端软件.我们知道,在建立vsftpd用户时,我们一般是在linux下建立用户useradd的方式来访问ftp,但有时我们只想提供ftp服务,而避免用户用ftp的帐号去登录linux,采用一般的方式只能是限制该用户的访问权限,但还是避免不了用户登录进linux系统,所以比

Ubunton下搭建ftp服务器 实现虚拟用户、本地用户、匿名用户的登陆及权限

#在ubunton系统下安装和配置ftp可以说是比较简单的 本篇教程是为了解决一下问题 需要搭建ftp服务器实现三种用户的登陆及权限管理 其中 anon可以自由的到特定的目录里下载东东: stu则可以到特定的目录里上传东东; 而tearcher,则可以对特定的目录里上传.下载东东; admin则可以对stu.teacher的数据进行统一的管理. 另外,做为系统上已经有的本地用户则可以登录自己的home目录. 针对上面的需求,ftp需要开通对匿名用户.本地用户.及虚拟用户的支持.并且特别对虚拟用户