一           需要的软件包:

1. vsftpd:

2.MySQL

3.pam_mysql

4.pam-devel

5.openssl

6.tcp-wrappers

二           软件安装:

1.Openssl

使用yum  -y install openssl

2.MySQL

使用yum–y install mysql

3.pam_mysql

下载地址:http://colocrossing.dl.sourceforge.net/project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz

使用./configure–with-openssl 使用支持MD5加密算法

如果是使用源代码编译的mysql,还需要加./configure--with-mysql=/usr/local/mysql的安装路径

这个软件主要用途是使用pam模块对Mysql进行认证。在配置Pam文件的时候需要用到pam_mysql.so。源码编译完默认安装在/usr/lib/security/pam_mysql.so.因为在下面的pam文件中,我直接使用的pam_mysql.so文件,所以需要建立一个文件连接到/lib/security/中,使用ln –s /usr/lib/security/pam_mysql.so  /lib/security/pam_mysql.so。如果不建立这个文件的的连接到/lib/security/文件夹中,pam程序文件无法找到需要使用的pam认证文件。如果没有做这个文件连接,则在pam配置文件中就需要将pam_mysql.so改成/usr/lib/security/pam_mysql.so

4.pam-devel

使用yum–y install pam-devel进行安装即可。

5. tcp_wrappers

使用yum–y install tcp-wrappers安装tcp-wrappers

6.vsftpd

下载地址:https://security.appspot.com/downloads/vsftpd-3.0.2.tar.gz

源码编译前,需要更改一个文件,将安装包中的builddefs.h打开,将其中的#undefVSF_BUILD_TCPWRAPPERS中的undef改成#defineVSF_BUILD_TCPWRAPPERS,使支持tcp-wrapper

三           配置(我们以用户名为user1密码为user1例)

1.mysql配置

启动数据库mysql

shell>service mysqld start

设置mysql的管理员密码:

shell>mysqladmin -u root password ‘limg@4px.com’

用root登陆mysql:

shell>mysql –u root –p

输入密码:

shell>Enter password:limg@4px.com

创建ftp数据库:

mysql>create database ftp;

授权用户名为ftp,密码为111111的用户查询ftp数据库中的表:

mysql>grant select on ftp * to ‘ftp’@’localhost’identified by ‘111111’;

重新刷权限表到内存:

mysql>flush privilieges;

使用ftp数据库:

mysql>use ftp;

创建名为users的表:

mysql>create tables users(id int not null auto_incrementprimary key,name varchar(50) not null,passwd varchar(50) not null,unique(name))engine = myisam;

添加用为名为user1,密码user1的用户到表users中:

mysql>insert into user(name,passwd) value (‘user1’,md5(‘user1’));

退出数据库:

mysql>exit;

2.pam配置

建立vsftpd的pam文件:

shell>touch /etc/pam.d/vsftpd

打开vsftpd的pam文件:

shell>vi /etc/pam.d/vsftpd

编辑vsftpd的pam文件,添加两行认证信息:

auth required pam_mysql.so user=ftp passwd=111111host=localhost db=ftp table=users usercolumn=name passwdcolumn=passwd crypt=3

account required pam_mysql.so user=ftp passwd=111111host=localhost db=ftp table=users usercolumn=name passwdcolumn=passwd crypt=3

3.VSFTPD配置

vsftpd.conf编辑:

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/vsftpd.log

nopriv_user=vsftpd

ascii_download_enable=YES

chroot_local_user=YES

listen=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

guest_enable=YES

guest_username=vsftpd

local_root=/home/vsftpd/$USER

user_sub_token=$USER

virtual_use_local_privs=YES

user_config_dir=/etc/vsftpd_user_conf

force_local_data_ssl=NO

force_local_logins_ssl=NO

3.根据vsftpd.conf文件中设置所要做的相应配置

建立vsftpd用户,使其属于users组

shell>useradd –G users –s /bin/false –d /home/vsftpdvsftpd

建立$USER目录:

shell>mkdir /home/vsftpd/user1

赋于user1文件夹具有vsftp用户和users组权限:

shell>chown vsftpd.useers /home/vsftpd/user1

使user1文件夹只有vsftpd用户可读写:

shell>chmod 700 /home/vsftpd/user1

建立user_config_dir目录:指定每个用户的不同权限

shell>mkdir /etc/vsftpd_user_conf

建立user1用户的权限配置文件:

shell>touch /etc/vsftpd_user_conf/user1

编辑配置文件:

dirlist_enable=YES
download_enable=YES
local_root=/home/users/user1
write_enable=YES

VSFTPD+MYSQL+PAM的更多相关文章

  1. Centos6.5部署vsftpd+mysql认证

    1.FTP传输原理 FTP,文件传输协议,是工作在应用层,基于TCP实现,依赖于互联网即可通讯. 1)连接模式 控制(命令)连接,用来通信,一直在线,客户端随机端口连接服务端TCP:21端口. 数据连 ...

  2. centos7下安装vsftpd与PAM虚拟用户

    Vsftp与PAM虚拟用户 使用yum 安装vsftp yum install vsftpd pam pam-* db4 db4-* 设置开机启动 chkconfig vsftpd on 创建一个保存 ...

  3. Vsftpd: 基于PAM认证的虚拟用户和匿名用户

    目录 环境说明效果说明及截图①. 安装组件②. 系统账户建立③. 编辑vsftpd的配置文件④. 生成虚拟用户的数据库文件⑤. 生成一个使用vsftpd_login.db数据文件的PAM认证文件⑥. ...

  4. 不在同一主机:vsftpd+pam+mysql

    配置环境:Centos7上的mariadb + Centos6上的vsftpd 一.安装所需要程序 1.安装vsftpd和pam_mysql(在centos6-->192.168.108.160 ...

  5. 同一主机配置:vsftpd+pam+mysql

    两种情况: 1.vsftpd和MySQL不在同一台主机上 vsftpd服务器和MySQL服务器不在同一台主机上时,vsftpd服务器需要安装pam_mysql. 在指定用户认证时,vsftpd需要链接 ...

  6. [CentOS] CentOS for vsftpd with MySQL Virtual user

    從ubuntu 12.04的安裝手法拿到CentOS來真的有些很大的不同 絕大部分的語法.概念都是差不多的,只是指令上有些差別,跟ubuntu 有不一樣的地方特別拿出來另外說明 要讓vsftpd與my ...

  7. vsftpd基于mysql的认证方式

    安装epel源: cd /etc/yum.repos.d wget http://mirrors.neusoft.edu.cn/epel/epel-release-latest-6.noarch.rp ...

  8. 实现基于pam认证的vsftpd

    1 需求 使用指定虚拟用户Allen与Barry登录ftp,认证的源是mysql服务器: Allen可以上传文件,Barry不可以上传文件: 2 环境 [root@centos7 ~]# cat /e ...

  9. 实现基于MYSQL验证的vsftpd虚拟用户访问

    一.配置mysql服务器 1.1 安装mysql # yum -y install mariadb-server # systemctl enable --now mariadb.service &a ...

随机推荐

  1. EasyUI Dialog 对话框默认不弹出和关闭清空对话框内容

    EasyUI中文网: http://www.jeasyui.net/plugins/181.html 默认不弹出:closed:true 模式化窗口(有遮罩):modal:true <div c ...

  2. 字符串加u的特殊需求

    #coding:utf-8 L = ['a','b','c'] S = [] for i in L: tmp = str(i).decode('utf-8') S.append(tmp) print ...

  3. Angular5学习札记

    1.使用cnpm安装jQuery和bootstrap后,页面没有加载的问题 -使用cnpm安装的路径和使用npm安装路径不一样,解决如下: 把css路径改成"../node_modules/ ...

  4. laravel中类似于thinkPHP中trace功能

    答案来自https://segmentfault.com/q/1010000007716945 一楼: 到 https://packagist.org 上搜索你想要的关键词,比如查debugbar 列 ...

  5. 异常检测(Anomaly Detection)

    十五.异常检测(Anomaly Detection) 15.1 问题的动机 参考文档: 15 - 1 - Problem Motivation (8 min).mkv 在接下来的一系列视频中,我将向大 ...

  6. Find Amir CodeForces 805C

    http://codeforces.com/contest/805/problem/C 题意:有n个学校,学校的编号是从1到n,从学校i到学校j的花费是(i+j)%(n+1),让你求遍历完所有学校的最 ...

  7. 爬取掌阅app免费电子书数据

    主要介绍如何抓取app数据及抓包工具的使用,能看到这相信你已经有爬虫基础了 编不下去了,主要是我懒,直接开干吧! 一.使用环境和工具 windows + python3 + Jsonpath + Ch ...

  8. ApplicationContext(三)BeanFactory 初始化

    ApplicationContext(三)BeanFactory 初始化 上节我们提到容器初始化的第一步首先进行了属性的检验,下面就要开始第二步:进行 beanFactory 的初始化工作了. App ...

  9. Python之路(第二十五篇) 面向对象初级:反射、内置方法

    [TOC] 一.反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它 ...

  10. 什么是DevOps?DevOps简明教程

    我希望每个测试人员经过..功能测试-接口测试-安全测试-自动化测试-性能测试的洗礼后 都可以进入DevOps阶段.具体什么以及为什么 我稍后会给你大家讲解...