64532 发表于 2016-4-27 09:33:35

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

一、vsftpd简介

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。

二、安装vsftpd

安装vsftpdf服务,可通过yum命令安装,我的CentOS 7已安装,版本如下

   

三、数据库安装和配置

   基于mysql服务:


# yum -y groupinstall "Development Tools" "Server Platform Development"
# yum -y install pam-develmariadb-devel openssl-devel

下载pam-mysql驱动,并编译安装。
   (安装后模块路径:/usr/lib64/security/pam_mysql.so)

# wget pam-mysql.sourceforge.net/pam-mysql-0.7RC1.tar.gz
# tar xf pam-mysql-0.7RC1.tar.gz
# ./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security
# make && make install


   mariadb配置:


# systemctl start mariadb.service
# mysql


MariaDB [(none)]> CREATE DATABASE ftpdf;

MariaDB [(none)]> use ftpdf




      修改pam配置文件,在/etc/pam下配置


# vim /etc/pam.d/vsftpd.mysql
内容为:
auth required /usr/lib64/security/pam_mysql.so user=ftpdf passwd=mageedu host=localhost db=ftpdf table=users usercolumn=namepasswdcolumn=password crypt=2account required /usr/lib64/security/pam_mysql.so user=ftpdf passwd=mageedu host=localhost db=ftpdf table=users usercolumn=namepasswdcolumn=password crypt=2

         为虚拟用户创建映射用户

      # cd /etc/pam.d
      # useradd -s /sbin/nologin -d /ftproot vuser
      # ls -ld#查看权限,确保用户的家目录可以让其他用户能读能执行

      # chmod go-rx /ftproot


      配置mysql

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

1、修改pam认证模块名字为vsftpd.mysql

   


2、确保下面三项为YES

   

3、添加配置
    guest_enable=YES #是否允许来宾访问

    guest_username=vuser



注:anon_upload_enable=YES # 用户可上传文件


   接下来就可以启动服务,进行测试:


   




附加:单独用户的权限控制方案(以tom和jerry为例)

   1、修改主配置文件

                # vim /etc/vsftpd/vsftpd.conf


               anon_upload_enable=YES #注释掉这一行,不允许用户上传。


      2、创建配置目录,让用户使用不同的配置文件,实现每个虚拟用户的单配置文件使用


                  # cd /etc/vsftpd/

                  # mkdir vusers.conf.d

                  # cd vusers.conf.d
                  # vim tom

                  anon_upload_enable=YES #内容为tom用户允许上传

                  # cp tom jerry
                  # vim jerry
                  anon_upload_enable=NO #内容为jerry用户不允许上传


    3、编辑主配置文件,告诉其用创建的配置目录做加载配置


                # vim /etc/vsftpd/vsftpd.conf

               user_config_dir=/etc/vsftpd/vuser.conf.d # 主配置文件下面添加一行


            4、重启服务进行验证,tom可以上传文件,jerry不能。

             # systemctl restart vsftpd.service





页: [1]
查看完整版本: vsftpd的基于pam_mysql的虚拟用户机制