實現基於mysql驗證的vsftpd虛擬用戶 (centos6)

實現基於mysql驗證的vsftpd虛擬用戶 (centos6)mysql



    說明:本實驗在兩臺Cento主機上實現,一臺做爲FTP服務器,一臺做爲數據庫服務器linux

            FTP服務器ip:172.16.250.90sql

            Mysql服務器ip:172.16.252.16數據庫


1、安裝ftp服務器安裝包vim

        yum install vsftpd pam_mysqlcentos


2、數據庫服務器建立虛擬用戶賬號bash

    一、創建虛擬用戶數據庫    服務器

    mysql> create database vsftpd;
    mysql> show tables;
    mysql> grant select  on vsftpd.* to vsftpd@'172.16.%.%' identified by 'magedu';
    mysql> flush privileges;


    二、創建user表ide

    mysql> use vsftpd;
    mysql> CREATE TABLE USER (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,NAME CHAR(50)             BINARY NOT NULL,PASSWORD CHAR(48)BINARY NOT NULL);
    mysql> desc user;


    三、添加測試虛擬用戶函數

        mysql> inset into user(name,password) values('wang',password('magedu'));    
    mysql> inset into user(name,password) values('mage',password('magedu'));
    mysql>select * from user;


    3、在ftp服務器上配置vsftpd服務

        一、在ftp服務器上創建pam認證所需文件

            

[root@localhost log]# vim /etc/pam.d/vsftpd.mysql 
auth required /lib64/security/pam_mysql.so user=vsftpd passwd=magedu host=172.16.252.16 
db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=2   #此處與auth行爲一行
account required /lib64/security/pam_mysql.so user=vsftpd passwd=magedu host=172.16.252.16  
db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=2  #此處與account行爲一行

            auth 表示認證

            account 驗證賬號密碼正常使用

            required 表示認證要經過

            pam_mysql.so  模塊此處也能夠寫爲相對路徑,若該模塊爲編譯安裝路徑變化此處必須寫爲絕對路徑。其後

    參數皆爲給此模塊傳遞參數。

            user=vsftpd 登陸mysql的用戶

            passwd=magedu  登陸mysql的密碼

            host=172.16.252.16  mysql服務器地址(如mysql與vftpd爲同一服務器則爲localhost便可)

            db=vsftpd  鏈接mysql的那個庫

            table=users  鏈接庫裏的哪個表

            usercolumn=name 看成用戶名字段的字段名稱

            passwdcolumn=password 看成密碼字段的字段名稱

            crypt=2 密碼的加密方式爲mysql password() 函數加密

            注意 crypt爲加密方式,0表示不加密,1表示crypt(3)加密,2表示使用mysql password() 函數加密 ,3表示

    md5加密,4表示shd1加密。


  二、創建相應用戶和修改vsftpd文件

         useradd –s /sbin/nologin –d /var/ftproot vuser

        修改vsftp配置文件

        anonymous_enable=YES

        guest_enbale=YES  #開啓虛擬用戶登陸

        guest_username=vuser  #指定虛擬用戶映射的系統用戶身份

        pam_service_name=vsftpd.mysql  #指定使用mysql認證方式登陸 此項修改後原系統用戶將沒法登陸。


4、測試

        此時虛擬用戶wang及mage均可正常登陸。

        注意配置過程當中selinux 策略

        禁止selinux 或執行如下命令

        setsebool -P ftpd_connect_db 1

         setsebool -P ftp_home_dir 1

        chcon -R -t public_content_rw_t /var/ftproot/

相關文章
相關標籤/搜索