vsftp通過pam_mysql做虛擬用戶認證

vsftpd可以通過三種賬戶登錄系統:

  • 系統賬戶:系統本地賬戶登錄系統,默認進入的目錄是用戶家目錄,可以在所有有權限的路徑切換;

  • 匿名賬戶:匿名用戶登錄,然后映射為一個本地用戶;

  • 虛擬賬戶:既不是系統本地用戶也不是匿名用戶,而是通過pam做第三方認證的方法,支持文件和數據庫,ldap的認證,此處通過mysql進行實驗;

一、準備實驗環境

  1. 實驗在一臺虛擬機上進行,此虛擬機需要安裝vsftpd和mysql,此處采用的是centos7.3的系統。

    1. 安裝vsftpd和mariadb-server:

       yum install -y vsftpd mariadb-server
    2. 因為是通過pam_mysql進行用戶驗證,所以需要安裝pam_mysql模塊,但是默認系統yum源不提供,所以此處通過編譯安裝,此前需要先安裝如下環境:

       yum install -y mariadb-devel pam-devel  yum groupinstall -y "Develop Tools"
    3. 下載pam_mysql并進行編譯安裝,加壓縮之后切換到目錄內并執行如下命令:

       ./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security make && make install

二、具體實驗配置

  1. 首先需要在vsftpd的配置文件編輯/etc/vsftpd/vsftpd.conf如下選項:

     #通過mysql驗證的文件路徑# pam_service_name=vsftpd.mysql #允許虛擬賬號登錄# guest_enable=YES #虛擬用戶映射為本地的ftp用戶# guest_username=ftp #系統用戶權限單獨配置文件路徑# user_config_dir=/etc/vsftpd/vusers_config/
  2. mysql數據庫創建數據庫和數據表,并插入值,并授權指定用戶對庫有訪問權限;

         mysql> CREATE DATABASE vsftpd;     mysql> CREATE TABLE users (         -> id INT AUTO_INCREMENT NOT NULL,         -> name CHAR(30) BINARY NOT NULL,         -> password CHAR(48) BINARY NOT NULL,         -> PRIMARY KEY (id)         -> );     mysql> INSERT INTO users (name,password) VALUES ('tom',password('1234567a'));     mysql> INSERT INTO users (name,password) VALUES ('cat',password('1234567a'));     mysql> GRANT select ON vsftpd.* TO vsftpd@'%' IDENTIFIED BY 'mageedu';     mysql> FLUSH PRIVILEGES;
  3. 創建步驟1指定的pam_service_name文件,路徑在必須在/etc/pam.d下:

     auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=192.168.11.137 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2  account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=192.168.11.137 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
  4. 在/etc/vsftpd/vusers_config/目錄下創建和tom,jerry同名的文件,指定權限,此處權限如下:

     #tom允許所有權限# anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES #jerry不允許創建目錄# non_upload_enable=YES anon_mkdir_write_enable=NO anon_other_write_enable=YES
  5. 通過ftp登錄,然后測試即可。

原創文章,作者:王子豪,如若轉載,請注明出處:http://www.www58058.com/77736

(0)
王子豪王子豪
上一篇 2017-06-07 18:18
下一篇 2017-06-07 23:19

相關推薦

  • 一些鮮為人知的編程事實

    我的程序員經歷讓我明白了一些關于軟件開發的事情。下面是一些在編程中可能會讓人感到詫異的事情: 一個程序員用了大約只用了10%-20%的時間來編碼,而且大多數程序員,無論他的水平如何,其平均每天只有10-12行的代碼最終會進入最終的軟件產品中。這是因為,優秀的程序員會花費90%的時間來思考、調查、研究最佳的設計。而糟糕的程序員則會花費90%的時間來調試代碼,并…

    Linux干貨 2016-07-11
  • grep基本正則表達式以及擴展正則表達式

    基本正則表達式: grep:Globel serach REgular expression and print out the line 作用:文本搜索工具,根據用戶指定的“模式(過濾條件)”對目標文本逐行進行匹配檢查,打印匹配到的行 模式:由正則表達式的元字符及文本字符所編寫出的過濾條件 grep選項:       &nbs…

    Linux干貨 2016-08-08
  • 網絡接口配置-bonding

    網絡接口配置-bonding ?Bonding 就是將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址。 Bonding的工作模式 ?Mode 0 (balance-rr) 輪轉(Round-robin)策略:從頭…

    Linux干貨 2016-09-05
  • 文件管理命令及變量基礎

    文件管理工具:cp,    mv,     rm       cp命令:copy 源文件;目標文件 單源復制: cp [OPTION]….[-T]  SOURCE  DEST 多源復制:cp [OPTION] ….SOURCE…DIR…

    Linux干貨 2016-12-21
  • 網絡管理之網絡配置與網絡組

    網絡屬性配置 回顧: TCP/IP協議棧:物理層,數據鏈路層,網絡層,傳輸層,應用層,     鏈路數據層:以太網幀     網絡層:IP報文      傳輸層:TCP,UDP     應用…

    Linux干貨 2016-09-06
  • Ubuntu之apt-get光盤源配置小結

    Ubuntu配置本地apt源的方法:    1. 命令自動配置:        mount    /dev/cdrom   /mnt/cdrom        apt-cdrom   ident   &nbsp…

    Linux干貨 2016-03-09
欧美性久久久久