何为vsftpd

  vsftpd:very secure ftp daemon

  程序:/usr/sbin/vsftpd

  配置文件:/etc/vsftpd/vsftpd.conf

  其用户分为:匿名用户(映射至某一固定的系统用户),本地用户(root及系统用户),虚拟用户(存储在文件或其他服务器端数据库中的用户);


  以下将以CentOS 7 讲解具体配置过程:

  [此机制需要pam_mysql.so]

  主要分为以下几个步骤:

    1.运行环境准备和配置

    2.mysql数据库配置

    3.pam配置

    4.细节优化


  1.运行环境准备和配置

  由于CentOS 7yum源中没有pam-mysql,故需自己编译安装;

  首先安装开发环境:

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

  另外还需要的程序包有:openssl-devel  pam-devel  mariadb-devel

  下载好pam-mysql后解压缩,开始编译:

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

    # make && make install

  安装完成后,在/lib64/security目录下可以看到:

  


  2.数据库配置

  安装mariadb-server

  创建一个测试库/表,填入数据,如图所示:

  

  (此处用的数据库是test,表是vsftpd)

  并授权一个用户vsftpd,使其有查权限:

  mysql> GRANT select ON test.* TO vsftpd@localhost IDENTIFIED BY '123456';

  mysql> GRANT select ON test.* TO vsftpd@127.0.0.1 IDENTIFIED BY '123456';

  自行测试一下此用户,没问题进入下一步。


  3.pam配置

  # cd /etc/pam.d

  # vim vsftpd.mysql

  写入

auth required pam_mysql.so user=vsftpd passwd= host=localhost db=test table=vsftpd usercolumn=name passwdcolumn=passwd crypt=
account required pam_mysql.so user=vsftpd passwd= host=localhost db=test table=vsftpd usercolumn=name passwdcolumn=passwd crypt=

  其中:

pam_mysql.so  //相对路径,如果此模块置于/lib64/security目录下,则可直接写文件名,当然,写全路径也没问题;
user=vsftpd
passwd=123456 //授权登陆mysql时的用户
host=localhost //本地主机
db=test //存放虚拟用户的数据库名
table=vstfpd
usercolumn=name
passwdcolumn=passwd
crypt=2 //密码加密方式代号
//0:不加密
//1:使用crypt(3)加密
//2:mysql函数加密password();
//3:md5加密
//4:SHA1加密

  4.细节优化

  创建系统用户作为映射:

    # useradd -s /sbin/login -d /ftproot vuser

  修改其权限,使其他用户有读、执行权限:

    # chmod go+rx /ftproot

  编辑配置文件/etc/vsftpd/vsftpd.conf:

    

  

  添加: guest_enable=YES
      guest_username=vuser
  修改此项为:pam_service_name=vsftpd.mysql
  确保这些为YES:
      anonymous_enable=YES
      local_enable=YES
      write_enable=YES

  保存退出,启动服务:

    # systemctl start vsftpd.service

  效果如下:

  


vsftpd基于pam_mysql的虚拟用户机制的更多相关文章

  1. Linux上FTP部署:基于mariadb管理虚拟用户

    FTP原理 FTP 采用 Internet 标准文件传输协议 FTP 的用户界面, 向用户提供了一组用来管理计算机之间文件传输的应用程序.图1 FTP 的基本模型 FTP 是基于客户---服务器(C/ ...

  2. vsftpd服务安装与虚拟用户配置

    vsftpd的全名是“Very secure FTP Daemon” 一.安装vsftpd安装db4-util用于生成认证文件 yum -y install db4-utils 安装vsftpd yu ...

  3. 搭建vsftpd文件服务器并创建虚拟用户

    一.安装     1. 查看是否安装vsftpd         rpm -qa | grep vsftpd     2. 安装          yum -y install vsftpd      ...

  4. 构建基于虚拟用户的vsftpd服务器

    安装: [root@server ~]# yum install -y vsftpd [root@server ~]# rpm -ql vsftpd /etc/logrotate.d/vsftpd / ...

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

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

  6. CentOS平台部署vsftp(基于虚拟用户)

    1. 安装FTP 1 2 [root@task ~]# yum install vsftpd –y [root@task ~]# chkconfig vsftpd on          # 配置开机 ...

  7. CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户

    CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户 一.安装ftp服务 1.检查是否已经安装 # rpm -qa | grep ftp ftp-0.17-54.el6.x86_64 vs ...

  8. vsftpd 创建虚拟用户

    1.添加一个宿主用户:useradd vsftpd -s /sbin/nologin2.安装db4-utils,通过本底数据文件实现虚拟用户访问yum install db4-utils3.创建ftp ...

  9. CentOS6.3下搭建vsftpd(采用虚拟用户设置)

    CentOS6.3如果在安装的时候所有安装选项都打勾的话就含有单间vsftpd必备的软件:vsftpd.pam*.db4* 检查是否安装: [root@centos6 ~]# rpm -qa | gr ...

随机推荐

  1. 【转载】ANSYS动力学分析-瞬态分析

    原文地址:http://www.cnblogs.com/ylhome/archive/2009/12/02/1615172.html 三种求解方法 瞬态动力学分析可采用三种方法:完全(Full)法.缩 ...

  2. 转--Oracle 审计和测试操作

    http://blog.itpub.net/21605631/viewspace-759640/转 Oracle 审计和测试操作 :: 分类: Linux 1.1 相关参数 AUDIT_SYS_OPE ...

  3. Vmvare下Ubuntu安装Python3.4

    Ubuntu14.4下默认安装的Python版本是2.7.随着Python3.4的使用,现在大部分Python开发者都喜欢使用Py3.4.那么Ubuntu下应该怎么安装Python3.4呢? (1). ...

  4. Cookie初识篇

    一.什么是Cookie Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密).定义于RFC2109和2965都 ...

  5. api接口签名验证(MD5)

    不要急,源代码分享在最底部,先问大家一个问题,你在写开放的API接口时是如何保证数据的安全性的?先来看看有哪些安全性问题在开放的api接口中,我们通过http Post或者Get方式请求服务器的时候, ...

  6. Abstract和Virtual和interface , 派生类中重写 override / new关键字

    http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html C#中Abstract和Virtual 在C#的学习中,容易混淆virtua ...

  7. NSMutableAttributedString 富文本删除线的用法

    #import <UIKit/UIKit.h> //价格 NSString *priceStr = @"99元 剁手价66元"; NSMutableAttributed ...

  8. angular+bootstrap+MVC--之一,入门

    这篇直奔MVVM主题,本例实现一个bootstrap的下拉框. 展示了如下技术: 1.MVVM绑定(事件绑定,值绑定,循环绑定,循环绑定中嵌套事件并回传item), 2.angul多module, 建 ...

  9. Js操作DOM小练习_01

    1.页面引入jQuery文件和bootstrap文件: 2.贴上代码 <!DOCTYPE html> <html lang="en"> <head&g ...

  10. gerrit集成gitweb后,点击gitweb连接:not found(转载)

    From:http://blog.sina.com.cn/s/blog_4fb490ff01018i0v.html 需要添加refs/meta/config的read access权限.