1.方案分析

mysql:存储用户信息的,可以放vsftpd用户的信息

pam:可插入用户认证模块

VSFTPD:安全的ftp服务

2涉及到的知识点:

vsftp

软件安装.启动服务,监听端口,配置文件修改,权限设置

mysql

数据库基本操作.建库,简表,添加用户,添加授权

pam

PAM的设置

3配置实例

配置要点:

1.vsftp的配置文件相关选项的修改

/etc/vsftp/vsftpd.conf

2.pam配置文件的配置

/etc/pam/vsftpd

3.mysql用户的建立支持vsftpd来调用

建立数据库,授权给vsftpd用户

一、安装所需要程序

1、安装mysql和pam_mysql

# yum -y install vsftpd mysql-server mysql-devel pam_mysql

二、创建虚拟用户账号

1.准备数据库及相关表

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

mysql> create database vsftpd;

mysql> grant select on vsftpd.* to vsftpd@localhost identified by '123';

mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by '123';

mysql> flush privileges;

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)

-> );

2、添加测试的虚拟用户

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

mysql> insert into users(name,password) values('tom',password('abc'));

mysql> insert into users(name,password) values('jerry',password('abc'));

三、配置vsftpd

1.建立pam认证所需文件

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

添加如下两行

auth required /lib64/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

account required /lib64/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

注意:由于mysql的安装方式不同,pam_mysql.so基于unix sock连接mysql服务器时可能会出问题,此时,建议授权一个可远程连接的mysql并访问vsftpd数据库的用户。

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

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

# useradd -s /sbin/nologin -d /var/ftproot vuser

# chmod go+rx /var/ftproot

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

anonymous_enable=NO

local_enable=YES

write_enable=YES

anon_upload_enable=NO

anon_mkdir_write_enable=NO

chroot_local_user=YES

而后添加以下选项

guest_enable=YES

guest_username=vuser

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

pam_service_name=vsftpd

四、启动vsftpd服务

# service vsftpd start

# chkconfig vsftpd on

查看端口开启情况

# netstat -tnlp |grep :21

tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      23286/vsftpd

使用虚拟用户登录,验正配置结果,以下为本机的命令方式测试,你也可以在其它Win Box上用IE或者FTP客户端工具登录验正

# ftp 1.1.1.6

vsftpd pam mysql_vsftpd+mysql+pam实现基于数据库的安全的ftp服务相关推荐

  1. freemarker mysql 生成bean_基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(v6.6.6版)...

    TableGo_20191026 v6.6.6 正式发布,此次版本更新如下: 1.新增通过自定义模板生成Word文档的功能,可以使用FreeMarker模板生成自定义格式的数据库文档. 2.新增 Sw ...

  2. 基于Java实现的一个FTP服务

    资源下载地址:https://download.csdn.net/download/sheziqiong/85706472 资源下载地址:https://download.csdn.net/downl ...

  3. ftp服务----基于虚拟用户的创建

    虚拟用户是只创建一个系统账号将所有FTP账号映射到该用户访问FTP时使用的,需要为FTP传输服务单独建立用户数据库文件,这些帐号是在服务器系统中不存在的.虚拟的账号不直接使用系统账号安全性高,本地用户 ...

  4. Ubuntu 16.04安装vsftpd 并开启ftp服务

    sudo apt-get install vsftpd ftp的配置文件在 /etc/vsftpd.conf 可以使用下列命令来打开,关闭,重启ftp服务 sudo /etc/init.d/vsftp ...

  5. FTP服务学习笔记之基于MySQL+PAM的vsftpd虚拟用户

    基于mysql+PAM的vsftpd虚拟用户配置 一.实验说明 操作系统:Redhat5.8_X64bit 实验平台:VMware Workstation 所需要的软件包:pam_mysql-0.7R ...

  6. mariadb pam_mysql_FTP基于PAM和MySQL/MariaDB实现虚拟用户访问控制

    前言 vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序,特点是小巧轻快,安全易用,目前在开源操作系统中常用的FTP套件主要有proftpd.pureftp.ServU和wu-ftpd等 ...

  7. mysql pam 配置_pam_mysql 安装配置总结 (结合vsftpd)

    前一段时间,论坛里总有朋友问到pam-mysql的安装问题.比较典型的有: vsftp1.2+mysql4.1+pam_mysql0.5在RedHat AS4(32bit)下好像是有bug 还是mys ...

  8. springboot mysql行锁_SpringBoot基于数据库实现简单的分布式锁

    本文介绍SpringBoot基于数据库实现简单的分布式锁. 1.简介 分布式锁的方式有很多种,通常方案有: 基于mysql数据库 基于redis 基于ZooKeeper 网上的实现方式有很多,本文主要 ...

  9. mysql master-user_【MySQL】MySQL5.6数据库基于binlog主从(Master/Slave)同步安装与配置详解...

    主从数据库同步原理 image.png 主从数据库同步工作原理(流程): 当主库的数据发生修改时,数据更改的记录将写入到主库的二进制文件中,从库此时将会调用一个IO线程读取主库的二进制文件,并与中继日 ...

最新文章

  1. python爬虫工程师-Python-爬虫工程师-面试总结
  2. 在QT中结构体快速从二进制文件中读取数据
  3. java jpeg压缩解码_图片压缩(iOS)
  4. 37岁程序员失业投500份简历就3次面试猎头:超35岁不要
  5. python的for语句写新的字符串_Python:for循环遍历对象,而不是字符串
  6. 学习Linux的途径。
  7. JavaScript小技巧总结
  8. RSLogix 5000下载程序方法
  9. c++ 远程监控软件
  10. Gitlab代码库自动同步到Github
  11. 利用Python切头去尾
  12. 公众号快速注册并认证小程序
  13. python课程设计——当当网Python图书数据分析
  14. 【原创】我所认识的银行业务之旅(开篇)
  15. dxdiag 的使用
  16. larval框架的获取并存储(cache的使用)
  17. FileZilla FTP Server 安全加固
  18. 安卓动画壁纸实战:制作一个星空动态壁纸(带随机流星动画)
  19. 网络设备器出现黄色感叹号有线链接无线链接选项均消失
  20. Matlab入门基础 note1——赋值与小数

热门文章

  1. 利用100个小例子总结Python的知识要点!
  2. Python教程:网络爬虫快速入门实战解析
  3. 小白学Python——Anaconda安装
  4. python3中sort和sorted的区别详解
  5. 8月23号刚刚发布的 Flink 1.9 到底优化了哪些功能?
  6. 小程序如何实现tab切换,一部到位
  7. 保险条款精解(四)索赔——不可不看,因为您以前可能没听说过
  8. 漫步数学分析番外六(上)
  9. [pandas]方法总结
  10. 万能搜索监控ip工具_录像机搜不到摄像头IP可能是以下原因