zoukankan      html  css  js  c++  java
  • vsftpd基于pam_mysql的虚拟用户机制


    何为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=123456 host=localhost db=test table=vsftpd usercolumn=name passwdcolumn=passwd crypt=2
    account required pam_mysql.so user=vsftpd passwd=123456 host=localhost db=test table=vsftpd usercolumn=name passwdcolumn=passwd crypt=2

      其中:

    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

      效果如下:

      


  • 相关阅读:
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业01
    学期总结
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业03
  • 原文地址:https://www.cnblogs.com/trymybesttoimp/p/6126299.html
Copyright © 2011-2022 走看看