vsftpd基於mysql做虛擬使用者認證

來源:互聯網
上載者:User

標籤:vsftpd   虛擬使用者   

虛擬使用者:

     使用者帳號儲存於何處?

     檔案,MySQL,Redis, ...

                                    

    vsftpd的認證功能託管給pam:

          Pluggable Authencate Module,認證架構,認證庫;

          通過模組完成認證功能:/usr/lib64/security/

                                    

pam_mysql模組:

下載pam_mysql的源碼包官方下載http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz

(1)準備編譯安裝環境

    [[email protected] ~]#yum –y groupinstall “Development Tools”

    [[email protected] ~]#wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz

    [[email protected] ~]# tar xf pam_mysql-0.7RC1.tar.gz

    [[email protected] ~]# cd pam_mysql-0.7RC1/

    [[email protected] ~]# ./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security

                650) this.width=650;" src="http://www.178linux.com/ueditor/php/upload/image/20161015/1476504467309494.png" title="1476504467309494.png" alt="1.png" />

在編譯過程中如果出現此錯誤需要安裝mysql-devel開發包

      [[email protected] pam_mysql-0.7RC1]# yum -y install mysql-devel

                

                650) this.width=650;" src="http://www.178linux.com/ueditor/php/upload/image/20161015/1476504543117575.png" title="1476504543117575.png" alt="2.png" />

 

        

遇到此錯誤還需要安裝pam-devel的開發包

     650) this.width=650;" src="http://www.178linux.com/ueditor/php/upload/image/20161015/1476504666672754.png" title="1476504666672754.png" alt="3.png" />

       [[email protected] pam_mysql-0.7RC1]# yum -y pam-devel

到此檢查環境產生config檔案就完成,接下只需要make和make install

       [[email protected] pam_mysql-0.7RC1]# make

       [[email protected] pam_mysql-0.7RC1]# make install

編譯安裝完成之後查看/usr/lib64/security目錄中有的檔案

     650) this.width=650;" src="http://www.178linux.com/ueditor/php/upload/image/20161015/1476504755780358.png" title="1476504755780358.png" alt="4.png" />

                                                  

 

準備資料庫:

     vsftpd基於虛擬使用者認證是在CentOS7的主機上進行操作

安裝資料庫

       [[email protected] ~]# yum -y install mariadb-server

接下來啟動mysql服務即可

       [[email protected] ~]#systemctl start mariadb

       [[email protected]~]#ss –tnl     //鍵入此命令查看3306連接埠是否監聽

 

之後就需要講虛擬使用者認證的使用者和密碼放到資料庫當中,所以需要給vsftpd建立一個資料和相應的表,具體操作如下

建立資料庫

          mysql> CREATE DATABASE vsftpd;

使用新建立的資料庫,然後使用此資料庫然後建立表users

          mysql>USE vsftpd;

    mysql> CREATE TABLE vsftpd.users (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name CHAR(30) NOT NULL UNIQUE KEY,password CHAR(48));

     650) this.width=650;" src="http://www.178linux.com/ueditor/php/upload/image/20161015/1476504825879861.png" title="1476504825879861.png" alt="5.png" />

        

在users表上建立資料

     mysql>INSERT INTO users  (name,password) VALUES (‘tom’,PASSWORD(‘redhat’)),(‘jerry’,PASSWORD(‘redhat’));

             650) this.width=650;" src="http://www.178linux.com/ueditor/php/upload/image/20161015/1476504866201401.png" title="1476504866201401.png" alt="6.png" />

         

授權遠端使用者登入mysql

         mysql> GRANT ALL ON vsftpd.* TO ‘vsftpd‘@‘localhost‘ IDENTIFIED BY ‘mageedu‘;

   mysql> GRANT ALL ON vsftpd.* TO ‘vsftpd‘@‘127.0.0.1‘ IDENTIFIED BY ‘mageedu‘;

         mysql> FLUSH PRIVILEGES;  //重新整理授權使之生效

 

這裡需要對localhost和127.0.0.1兩個主機授權是因資料庫有時方向解析時解析不到ip地址導致使用者無法登入所以需要對兩個主機進行授權

    

        650) this.width=650;" src="http://www.178linux.com/ueditor/php/upload/image/20161015/1476504932740708.png" title="1476504932740708.png" alt="7.png" />

                           

 

vsftpd通過pam_mysql進行認證的設定檔使pam能夠利用pam-mysql這個模組來串連資料庫擷取資料庫中的使用者名稱及密碼 ,所以需要編輯:/etc/pam.d/vsftpd.mysql檔案,檔案內容如下

         auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

         account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

                                    

        user:串連mysql伺服器的使用者名稱,此使用者要有許可權訪問認證vsftpd服務的資料庫;

        passwd:上面的使用者的密碼;

        host:mysql伺服器主機地址;

        db:認證vsftpd服務的資料庫名稱;

        table:存放了使用者和密碼的表;

        usercolumn:使用者名稱對應的欄位;

        passwdcolumn:密碼對應的欄位;

        crypt:密碼加密方法;

                                              

準備匿名使用者映射的系統使用者帳號:

         # mkdir /ftproot

         # useradd  -d /ftproot  vuser   //建立使用者vuser並將使用者的家目錄設定為/ftproot

         # mkdir /ftproot/{pub,upload}   //在虛擬使用者的根目錄下建立一個公用目錄和一個上傳檔案的目錄

         # setfacl -m u:vuser:rwx  /ftproot/upload  //給用虛擬使用者添加存取控制清單,使用能夠上傳檔案

         650) this.width=650;" src="http://www.178linux.com/ueditor/php/upload/image/20161015/1476504986521461.png" title="1476504986521461.png" alt="8.png" />                    

配置vsftpd:vsftpd.conf

          pam_service_name=vsftpd.mysql

          guest_enable=YES

          guest_username=vuser

                                    

配置每匿名使用者有單獨的許可權設定

         vsftpd.conf,添加:

         user_config_dir=/etc/vsftpd/users_conf

        
                             

         建立目錄:

         # mkdir /etc/vsftpd/vusers_conf

                                              

           為每使用者提供設定檔:

               /etc/vsftpd/vusers_conf/{tom,jerry}

                                              

          配置許可權的指令:

               anon_upload_enable=YES

               anon_mkdir_write_enable=YES

               anon_other_write_enable=YES

 

測試:

         在另外一台主機登入ftp進行上傳檔案測試

         lftp -u tom,mageedu 10.1.48.11


            650) this.width=650;" src="http://www.178linux.com/ueditor/php/upload/image/20161015/1476505090710164.png" title="1476505090710164.png" alt="9.png" />


650) this.width=650;" src="http://www.178linux.com/wp-content/plugins/ueditor/ueditor/themes/default/images/spacer.gif" alt="spacer.gif" width="554" border="0" height="150" />

                                                       

       


本文出自 “營運生涯” 部落格,請務必保留此出處http://fszxxxks.blog.51cto.com/10122713/1862144

vsftpd基於mysql做虛擬使用者認證

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.