vsftpd的基于pam_mysql的虚拟用户机制实现数据传输

vsftpd基于mysql服务实现:

查看是maradb中是否有pam-mysql,在目录/lib64/security/下。

没有就编译安装pam-mysql

步骤:

1. # yum -y  groupinstall  "Development Tools" "Server Platform Development"

2. # yum -y install pam-devel openssl-devel mariadb-devel mariadb-server

3. # ./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security

注:可使用./configure -help查看配置指令

# make && make install

4. 之后在mysql数据库中创建数据库、表,在表中定义三个字段id,name,passwd。 授权等一系列操作

在此步骤中需要创建以下内容:

连上数据库:开启mariadb服务之后使用mysql命令

a、CREATE DATABASE vsftpd;##创建数据库

b、use vsftpd;#切换至数据库中

c、CREATE TABLE users (id int AUTO_INCREMENT NOT NULL PRIMARY KEY,name char(30) NOT NULL,password char(48) binary NOT NULL );##创建表

d、INSERT INTO users(name,password) VALUES (‘tom‘,password(‘mageedu‘));##创建一个用户

e、INSERT INTO users(name,password) VALUES (‘jerry‘,password(‘mageedu‘));##创建一个用户

f、SELECT * FROM users;##查看表

g、GRANT select ON vsftpd.* TO [email protected]’127.0.0.1‘ IDENTIFIED BY ‘mageedu‘;##授权用户

h、FLUSH PRIVILEGES;

退出,可以再次连接数据库,检查是否创建数据库和表及表的内容是否成功。

5. pam配置文件;在目录/etc/pam.d/下有个vsftpd,但在使用时要重新创建配置文件,在/etc/pam.d/目录下创建 vsftpd.mysql  在里面添加下面内容:(注意下面的内容都是在上一步当中的数据库中添加创建过的)

auth required pam_mysql.so user=vsftpd passwd=mageedu host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2(加密方式类型)

account required pam_mysql.so user=vsftpd passwd=mageedu host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

6.创建用户:useradd -s /sbin/nologin -d /ftproot vuser

chmod go+rx /ftproot/

配置文件:在配置文件/etc/vsftpd/vsftpd.conf中添加pam_service_name=vsftpd.mysql

gusest_enable=YES

gusest_username=vuser

在此同时确保上面的配置正确。

7.这时使用另一台主机尝试是否可以成功登陆。

可以修改配置文件玩玩查看上传等功能。

8.如果只允许其中一个用户上传,则可以通过以下方法:

a、首先将主配置文件中的上传功能注释了

b、创建一个用户的专一配置文件目录/etc/vsftpd/vusers.conf.d在此目录下vim tom 在tom文件中添加anon_upload_enable=YES

vim jerry 在此文件中添加anon_upload_enable=NO

c、此时在主配置文件中要明确告诉vsftpd要使用用户配置目录,则在主配置文件中添加user_config_dir=/etc/vsftpd/vusers.conf.d/

d、重启服务

时间: 2024-10-14 22:00:20

vsftpd的基于pam_mysql的虚拟用户机制实现数据传输的相关文章

创建vsftpd的基于pam_mysql的虚拟用户机制

在centos7系统上实现搭建vsftp服务,基于pam_mysql的虚拟用户机制: 编译安装pam_mysql 准备环境: ]# yum -y groupinstall "Development Tools" "server Platform Development" ]# yum -y install pam-devel openssl-devel mariadb-devel mariadb-server ]# yum -y install vsftpd 解压p

vsftpd的基于pam_mysql的虚拟用户机制

虚拟用户:是ftp中常用的一种策略,因为ftp服务古老而且不安全,使用匿名用户不能有效的控制权限,而本地用户可以登录操作系统,极为不安全,所以引入了虚拟用户的概念,其只是将多个虚拟用户映射为一个本地用户,此用户可以设置不允许登录,从而加强了系统的安全性,本问主要介绍基于mysql的虚拟用户 配置pam_mysql 下载地址:pam-mysql.sourceforge.net # yum -y  groupinstall  "Development Tools" "Server

vsftpd基于pam_mysql的虚拟用户机制

一.虚拟用户概述 vsftpd使用虚拟用户时,需要为所有的虚拟用户创建一个系统用户,因为无论vsftpd使用的是哪一种用户类型(匿名用户.系统用户.虚拟用户),最终都是要映射为操作系统上的一个用户,而每一个文件资源都有各自的权限,只有操作系统上的用户才能根据权限模型判断是否能够访问该文件资源.这里仅介绍vsftpd基于pam_mysql的虚拟用户机制的使用. 二.vsftpd基于pam_mysql的虚拟用户机制 1.编译安装pam_mysql (1) 编译pam_mysql前要提供开发环境,并安

vsftpd的基于pam_mysql的虚拟用户配置示例      

第一步:安装vsftpd和mariadb ~]# yum install mariadb-server ~]# yum install vsftpd 因为中CentOS 7平台上/lib64/security/中没有pam_mysql模块驱动,需要编译安装pam_mysql这个模块. 准备编译环境 安装Development Tools 和 service platform Development这两个包组,另外需要安装依赖到的开发包pam-devel,openssl-devel,mariadb

vsftpd基于pam_mysql的虚拟用户认证

1.ftp用户 匿名用户:映射到某一个固定的系统用户,例如(ftp,vsftp,/var/ftp) 本地用户:系统用户,root及系统用户(0-999) 虚拟用户:nsswitch: name services switch  名称服务转换 PAM: Plugabl Plugable Authentication Modules  插入式认证模块本文主要讲解vsftpd基于pam_mysql的虚拟用户认证步骤. 2.准备环境 操作系统 主机名 IP地址 环境描述 CentOS 7.1 ch7 1

19、vftpd基于PAM_MYSQL进行虚拟用户的认证且每个用户有自己的独立目录及不同的访问权限

1.vsftp相关介绍FTP 是File Transfer Protocol(文件传输协议)的英文简称 两个连接:命令连接.数据连接(相对服务器来讲)FTP连接支持两种模式:主动模式(Port模式).被动模式(Passive模式)主动模式:服务器端通过20端口主动连接客户端,客户端监听在与服务器端建立命令连接的端口+1上,服务器工作在TCP/20被动模式:客户端使用自己与服务器端建立命令连接的端口+1上连接服务器端的随机端口,该随机端口在建立命令连接的时候已发给客户端 vsftp的用户有三种类型

vsftpd基于pam_mysql的虚拟用户访问

ftp:File Transfer Protocol,工作在应用层的文件传输协议,监听在tcp的21号端口:而ftp协议的实现有vsftpd.lftp.Filezilla.proftpd等等. ftp的用户一般由三类: 匿名用户:不需要账号和密码就能直接登录 本地用户:当前系统上非系统用户登录,即本地的普通用户 虚拟用户:借助于其他的存储方式系统来远程登录,而非本地用户 由于ftp的文件传输是明文的,不具有安全性:于是就有了一种安全的ftp协议的实现,那就是vsftpd vsftpd是ftp协议

vsftpd基于pam_mysql做虚拟用户认证

(1)下载epel源 [[email protected] ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  #下载阿里云的epel源 [[email protected] ~]# yum repolist (2)安装所需要的包 [[email protected] ~]# yum -y groupinstall "Development Tools" "Ser

创建vsftpd服务器基于mysql的虚拟用户认证

简单罗列基础命令,只分享我的想法! 一.目的 要求:配置允许虚拟用户访问的vsftpd服务器,虚拟用户存储在另一台MySQL的服务器上面,虚拟用户账号有两个分别是tom和jerry,密码是tom和jerry,要求对这两个账户的权限做一下限制(根据实际的要求,自己调节). 环境:MySQL服务器(172.16.49.1),CentOS 6.6和MariaDB-5.5.43.另一台是通过yum安装vsftpd(192.168.0.22),OS是CentOS 6.6. MySQL是通用二进制格式安装,